如果你是一名博客或网站的管理者,并且使用 WordPress 作为你的内容管理系统,那么你一定会遇到一些烦恼。比如说,你想要离线备份你的文章,或者你想要将你的文章,以及相应的分类、标签、评论等数据迁移到 GitHub Pages 或其他静态网站托管服务之中,却不知道如何做到。
WordPress2Jekyll 就是一个可以帮助你完成这些工作的 npm 包,它可以将 WordPress 的文章以 Markdown 格式输出,并且能够保留文章中的图片、视频等资源。本文将为大家介绍如何正确地使用 WordPress2Jekyll 实现文章的迁移和备份。
安装和使用
在使用 WordPress2Jekyll 之前,你需要确保你的电脑上已经安装了 node.js 和 npm。如果你还没有安装,可以先官网下载相应的软件包安装。安装完成后,打开命令行工具,输入以下命令进行安装:
npm install -g wordpress2jekyll
然后,你需要在 WordPress 后台中为你的账户生成一个授权密钥,方法如下:
- 进入 WordPress 后台管理界面,在左侧侧边栏中找到“用户”→“个人资料”,滚动到页面底部找到密钥区域
- 点击“WordPress.com 次要信息”下的“显示”按钮,可以找到你的密钥
- 复制授权密钥,以备在使用 WordPress2Jekyll 时使用
在完成安装和密钥生成之后,就可以运行 WordPress2Jekyll 了,命令如下:
wordpress2jekyll --url=<WordPress地址> --username=<用户名> --password=<密码> --dest=<本地目标文件夹> --key=<WordPress授权密钥>
其中,只有 --dest
参数是必须的,其他参数都是可以选择性地使用的。你需要指定一个本地的目标文件夹,用于存储迁移后的数据文件。在运行命令后,WordPress2Jekyll 会自动地将文章、页面、分类、标签、评论等数据文件以 Markdown 格式导出,并且保存在指定的目标文件夹中。
如果你在命令行中不想手动输入 username、password 和 key,可以将它们写在一个 .env
文件中,WordPress2Jekyll 会自动加载该文件的内容并使用。具体写法如下:
WORDPRESS_URL=<WordPress地址> WORDPRESS_USERNAME=<WordPress用户名> WORDPRESS_PASSWORD=<WordPress密码> WORDPRESS_KEY=<WordPress授权密钥>
数据转换细节
在使用 WordPress2Jekyll 进行数据迁移时,需要注意以下几个细节问题:
1. 分类和标签
WordPress 中存在分类和标签两种文章分类方式,但是 Jekyll 中只有一个分类的概念。因此,在导出文章时,WordPress2Jekyll 会将实际上的分类和标签都转换为 Jekyll 格式的分类。
2. LaTeX 公式支持
WordPress 中有插件可以支持 LaTeX 数学公式的显示,但是在 Jekyll 中需要使用第三方的公式渲染器进行渲染。如果你的文章中包含 LaTeX 公式,建议在使用 WordPress2Jekyll 导出时同时下载并安装 Jekyll mathjax 插件。
3. 引用链接
WordPress 中的文章可以在文章中直接插入链接。但是在 Jekyll 中推荐使用引用式链接,即将链接写在文末赋予一个编号。WordPress2Jekyll 会自动地将文章中的直接链接转换成引用式链接。
示例代码
在安装和使用 WordPress2Jekyll 之后,你可以在命令行中键入以下命令,查看一下现有的文章和分类等信息:
wordpress2jekyll --url=<WordPress地址> --username=<用户名> --password=<密码> --key=<WordPress授权密钥> --dry-run
可以将 --dry-run
参数去掉,执行导出操作即可。
最后,附上示例代码:
# 安装 WordPress2Jekyll 包 npm install -g wordpress2jekyll # 在 WordPress 后台生成授权密钥 user → profile → API key # 在命令行中执行以下命令进行文章迁移 wordpress2jekyll --url=<WordPress地址> --username=<用户名> --password=<密码> --dest=<本地目标文件夹> --key=<WordPress授权密钥>
希望这篇文章对于想要了解 WordPress2Jekyll 的前端开发者们有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005680d81e8991b448e42f8