本文将介绍如何将 WordPress 的文章导出的 XML 文件转换成 Markdown 文件。
起因是我发现 Github 的排名还不错,想着能不能把网站给同步过去。搜了搜插件库,只有从 Github 往 WordPress 同步的,但没找到能同步过去的。所以暂时只能先把 WordPress 导出为 Markdown 文件,再上传到 Github Page 去。
WordPress 是一个功能强大的内容管理系统,对于不会技术的人来说特别友好。我从工作开始就一直偏爱用 WordPress。但对于只想写点文章的人来说,可能会显得过于笨重。页面加载慢、主题/插件管理复杂。如果你想要更简洁的工具,使用静态网页生成器可能是个好选择。而将 WordPress 文章导出为 Markdown 格式后,你就可以使用像 Hugo、Jekyll 或 Gatsby 这样的轻量级生成器来发布博客。
导出 WordPress
登录 WordPress 后台,进入“工具” -> “导出”。
选择“所有内容”或你想要的特定内容(如文章、页面等)。
点击“下载导出的文件”,会得到一个 XML 文件。
其实这里我还尝试了几个插件 WP export to Hugo,wp export to Jekyll。但用的时候,总是会超时。导出到 Hugo 这个插件我还在文章稍微少点的站上导出成功了,但是 Jekyll 我是没成功过。我估计可能是我导出的内容太多了。我写了300多篇文章,导出来的 XML 文件有 11 MB,一共20多万行。
将 XML 文件转换为 Markdown
我们需要使用 wordpress-export-to-markdown
工具来将导出的 XML 文件转换为 Markdown 文件。具体的操作可以看看项目的说明。
1. 首先需要安装 Node.js。这一步不多说了,下载安装就行了。要看你是否安装成功,打开命令行工具,输入 node -v
和 npm -v
,能返回版本号即可。
2. 将该项目下载到本地并解压。
3. 为了方便起见,将 WordPress 导出的文件重命名为export.xml
并将其放入运行该脚本的同一目录中(该工具查找的默认文件名)。
4. 打开命令行工具,在工具所在的目录中,运行下面的命令
npx wordpress-export-to-markdown
脚本开始运行,会询问一些如何存储数据的问题。你自己根据情况回答。
? Path to WordPress export file? (export.xml) *要解析的文件名
? Path to output folder? (output) *保存的文件夹名
? Create year folders? (y/N) y *创建年份文件夹
? Create month folders? (y/N) N *创建月份文件夹
? Create a folder for each post? (Y/n) Y *每篇文章都创建文件夹
? Prefix post folders/files with date? (y/N) y *在文件/文件夹前加上日期
? Save images attached to posts? (Y/n) Y *保存文章的图片
? Save images scraped from post body content? (Y/n) Y *保存从帖子正文抓取的图像
回答完之后,脚本就开始解析 xml 文件并开始转换文章,同时下载图片。
完成后,每篇文章的文件夹里将包含一个 images
文件夹和 index.md
文件。
直接用 VS Code 打开,还可以预览。
写在后面
Markdown 文件转换好后,你想怎么处理都行啦,传到其他的静态网页生成器去,或者是去训练自己的 AI(把文章喂给 ChatGPT,干净的 markdown 比 xml 文件要好的多啦。),不过这又衍生出了一个问题。我还是在 WordPress 上写东西,那么新的文章我怎么才能同步过去呢。
另外用这个脚本也还是会面临一些问题。比如我的文章中使用了短代码来写了一些机场的价格,方便修改。但是脚本只能读到短代码。