adibaba/delicious-export

del.icio.us 导出文件的解析器

v1.2.2 2017-08-27 15:21 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:20:18 UTC


README

社交书签服务 Delicious (del.icio.us) 已被 Pinboard 收购(参见 博客文章),目前处于只读模式。您可以导出您的 delicious 书签并保存为 HTML 文件。此脚本解析这些文件。

功能

  • 备份私有书签(或排除它们)
  • 创建结构化的 HTML 文件
  • 使用 PHP 生成 JSON 文件
  • 拆分意外用空格分开的标签
  • 包括或排除书签的备注/描述
  • 按大小或名称排序标签
  • 包括不带标签的书签
  • 指定日期/时间的格式
  • 调整模板或扩展 PHP 类(无私有方法)

示例

准备

  • 安装 PHP
  • GitHub 上下载最新的 DeliciousExport 发布版
    解压缩 ZIP 文件。
  • del.icio.us/export 下载您的书签。
    将下载的 delicious.html 复制到 src 文件夹中。
  • src 文件夹中创建一个包含以下示例代码的 run.php 文件并保存。
    打开控制台(Windows:按 [Win] + [R],输入 cmd)。
    导航到 src 目录并输入 php run.php

创建结构化的 HTML 书签文件

<?php
require_once 'HtmlParser.php';
require_once 'Generator.php';

$parser = new Adibaba\DeliciousExport\HtmlParser('delicious.html');
$parser->parse();

$generator = new Adibaba\DeliciousExport\Generator();
$generator->setHtmlParser($parser);
file_put_contents('bookmarks.html', $generator->generate());
?>

创建 JSON 书签文件

<?php
require_once 'HtmlParser.php';
$parser = new Adibaba\DeliciousExport\HtmlParser('delicious.html');
file_put_contents('bookmarks.json', json_encode($parser->parse()->getBookmarks()));
?>

HTML 解析器选项:拆分标签

标签 'php code' 将变为两个标签 'php' 和 'code'。

<?php
require_once 'HtmlParser.php';
$parser = new Adibaba\DeliciousExport\HtmlParser('delicious.html');
$parser->setSplitTags(true);
file_put_contents('bookmarks.json', json_encode($parser->parse()->getBookmarks()));
?>

HTML 生成器选项

以下选项为默认值。

<?php
require_once 'HtmlParser.php';
require_once 'Generator.php';

$parser = new Adibaba\DeliciousExport\HtmlParser('delicious.html');
$parser->parse();

$generator = new Adibaba\DeliciousExport\Generator();
$generator->setHtmlParser($parser)

// Templates
->setTemplateMain('./templateMain.htm')
->setTemplateTag('<li><a href="#_TAG_">_TAG_<span>_TAG_SIZE_</span></a></li>', false)
->setTemplateCollection('<h1 id="_TAG_">_TAG_</h1><ul>_BOOKMARKS_</ul>', false)
->setTemplateBookmark('./templateBookmark.htm')
->setTemplateBookmarkNote('<pre>_BOOKMARK_NOTE_</pre>', false)
->setTemplateBookmarkTag('<span><a href="#_BOOKMARK_TAG_">_BOOKMARK_TAG_</a></span>', false)

// Default tag for bookmarks without specified tag
->setDefaultNoTags('No-Tags')

// Specifies, if bookmark notes/descriptions are added
->setIncludeNotes(true)

// Specifies, if only public bookmarks should be included
->setIncludePrivateBookmarks(true)

// Specifies, if HTML entities should be encoded
->setEncodeHtml(true)

// Sets representation for date/time
->setDateFormat('Y-m-d');

file_put_contents('bookmarks.html', $generator->generate());
?>

与 PHP 对象一起工作

<?php
require_once 'HtmlParser.php';
$parser = new Adibaba\DeliciousExport\HtmlParser('delicious.html');
$parser->parse();

// Bookmarks
print_r($parser->getBookmarks());

// Tags, sorted by name
print_r($parser->getTags());

// Tags, sorted by size
print_r($parser->getTags(true));

// Bookmarks without tags
print_r($parser->getBookmarkIdsWithoutTags());
?>