导入已有站点¶
简介¶
命令行工具 pelican-import 用于将其他软件生成的文章转换成reStructuredText或Markdown格式。支持导入下面这些格式:
Blogger XML export
Dotclear export
Medium export
Tumblr API
WordPress XML export
RSS/Atom feed
从HTML转换到reStructuredText或Markdown是依赖 Pandoc 完成的。对于Dotclear,若原帖子是由Markdown语法写的,则无需转换(因为Pelican本就支持Markdown)。
备注
和Pelican不同,在Wordpress中可以将一篇文章同时放在多个分类中。在导入时,各个分类会以逗号分隔,你必须自己手动进行处理。或者也可以使用例如 More Categories 这样的插件,使得文章可以同时存在于多个分类中。
备注
要导入的内容中可能会包含指向原站点的图片链接,你可能希望将他们全部下载下来,然后再重新手动调整这些链接。
依赖¶
pelican-import 需要用到一些其他依赖,这些依赖只会被 pelican-import 用到:
为了能够导入WordPress和Dotclear的内容,需要 BeautifulSoup4 与 lxml 。安装方法与其他Python包相同(
pip install BeautifulSoup4 lxml)为了能够导入订阅源,需要 Feedparser (
pip install feedparser)还需要 Pandoc ,参照 Pandoc官方网站 进行安装。
用法¶
pelican-import [-h] [--blogger] [--dotclear] [--tumblr] [--wpfile] [--feed]
[-o OUTPUT] [-m MARKUP] [--dir-cat] [--dir-page] [--strip-raw] [--wp-custpost]
[--wp-attach] [--disable-slugs] [-b BLOGNAME]
input|api_key
位置参数¶
input需要读取的输入文件
api_key(只会在Tumblr中用到)从 https://www.tumblr.com/oauth/apps 中获取到的api_key
可选参数¶
- -h, --help
显示此帮助信息并退出
pelican-import- --blogger
输入是否为Blogger XML格式(默认:False)
- --dotclear
输入是否为Dotclear格式(默认:False)
- --medium
输入是否为Medium格式(默认:False)
- --tumblr
输入是否为Tumblr API格式(默认:False)
- --wpfile
输入是否为WordPress XML格式(默认:False)
- --feed
输入是否为订阅源格式(默认:False)
- -o OUTPUT, --output OUTPUT
输出路径(默认:content)
- -m MARKUP, --markup MARKUP
输出格式,可选值为:
rst、markdown、asciidoc(默认:rst)- --dir-cat
是否要将输出文件按分类名放到各文件夹中(默认:False)
- --dir-page
将识别为页面的文件放入“pages/” 子文件夹中(仅在blogger和wordpress中有用)(默认:False)
- --filter-author
仅导入某个作者的帖子
- --strip-raw
删除无法转换的HTML代码,例如嵌入的flash或iframe(默认:False)
- --wp-custpost
将wordpress中的自定义类型博文放到对应文件夹中。如果同时还使用了 --dir-cat 选项,输出转换后文件时会创建诸如“/post_type/category/” 的文件夹(只在wordpress中有效)
- --wp-attach
下载作为附件上传到WordPress的文件。文件会以列表形式添加到帖子的开头,并且到这些文件的链接都会进行更新。另外,即使某些文件没有在任何帖子中用到,也同样会被下载。文件会被下载到输出文件夹下,并保持原始路径,例如“output/wp-uploads/date/postname/file.jpg” 。(仅在wordpress中有效,且需要互联网连接)
- --disable-slugs
不保存导入推文的slug,会导致Pelican的URL和原推文不一致。(默认:False)
- -b BLOGNAME, --blogname=BLOGNAME
Tumblr API中使用的博客名
例子¶
导入Blogger:
$ pelican-import --blogger -o ~/output ~/posts.xml
导入Dotclear:
$ pelican-import --dotclear -o ~/output ~/backup.txt
导入Medium:
$ pelican-import --medium -o ~/output ~/medium-export/posts/
Medium中导出的是一个zip文件。请先解压之,然后再将其中的“posts”子目录传给此工具。 https://help.medium.com/hc/en-us/articles/115004745787-Export-your-account-data 中有更详细的导出指导。
导入Tumblr:
$ pelican-import --tumblr -o ~/output --blogname=<blogname> <api_key>
导入WordPress:
$ pelican-import --wpfile -o ~/output ~/posts.xml
导入Medium(例子中使用了RSS订阅源):
$ python -m pip install feedparser $ pelican-import --feed https://medium.com/feed/@username
备注
RSS订阅源可能只会返回最新的帖子,而不是所有帖子。
测试¶
可以使用下面的文件作为样例进行测试: