如何把 WordPress 导出为 Markdown

wordpres export to markdown 学习笔记

本文将介绍如何将 WordPress 的文章导出的 XML 文件转换成 Markdown 文件。

起因是我发现 Github 的排名还不错,想着能不能把网站给同步过去。搜了搜插件库,只有从 Github 往 WordPress 同步的,但没找到能同步过去的。所以暂时只能先把 WordPress 导出为 Markdown 文件,再上传到 Github Page 去。

WordPress 是一个功能强大的内容管理系统,对于不会技术的人来说特别友好。我从工作开始就一直偏爱用 WordPress。但对于只想写点文章的人来说,可能会显得过于笨重。页面加载慢、主题/插件管理复杂。如果你想要更简洁的工具,使用静态网页生成器可能是个好选择。而将 WordPress 文章导出为 Markdown 格式后,你就可以使用像 Hugo、Jekyll 或 Gatsby 这样的轻量级生成器来发布博客。

Sponsored links
Sponsored links

导出 WordPress

登录 WordPress 后台,进入“工具” -> “导出”。

wordpress
WordPress工具 → 导出

选择“所有内容”或你想要的特定内容(如文章、页面等)。

export all content 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 -vnpm -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 文件并开始转换文章,同时下载图片。

export process screenshot
脚本正在下载文章中的图片

完成后,每篇文章的文件夹里将包含一个 images 文件夹和 index.md 文件。

converted markdown files
按照文章类保存的md文件和图片文件

直接用 VS Code 打开,还可以预览。

vscode preview markdown
VS Code 预览 Markdown 文件

写在后面

Markdown 文件转换好后,你想怎么处理都行啦,传到其他的静态网页生成器去,或者是去训练自己的 AI(把文章喂给 ChatGPT,干净的 markdown 比 xml 文件要好的多啦。),不过这又衍生出了一个问题。我还是在 WordPress 上写东西,那么新的文章我怎么才能同步过去呢。

另外用这个脚本也还是会面临一些问题。比如我的文章中使用了短代码来写了一些机场的价格,方便修改。但是脚本只能读到短代码。

Rate this post
Subscribe
Notify of
guest
0 评论
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x