【pandoc实践】将wordpress文章批量导出为Markdown格式

如何将wordpress文章批量导出为Markdown格式,这里建议用pandoc这个工具,之前的文章里有简单描述使用说明:

关于如何安装和使用在这里就不做过度赘述。

首先需要在wp后台将文章进行导出,从【工具】-【文章】实现:

img

因为下载的是xml格式,需要转换格式,这里就需要【pandoc】这个软件,按之前的教程安装即可:

首先需要使用管理员打开PowerShell,可以使用命令查看是否安装成功:

img

然后查找至自己刚刚下载的文章路径,这里我的路径是 cd C:\Users\杨东旭\Documents\MD文档\文章复制

cd [自己的文章.xml文件路径]

可以通过命令,将xml直接转换为markdown:

pandoc -f docbook -t markdown -o output.md WordPress.2025-07-16.xml

但是有时候如果发现直接转换效果不佳,可以先将 XML 转换为中间格式(如 HTML),再转换为 Markdown:

pandoc -f docbook -t html -o temp1.html WordPress.2025-07-18.xml

具体的操作可参考截图:

img

当然,如果 XML 包含多篇文章,可能需要先拆分文件。可以使用 Python 脚本提取每篇文章后再单独转换:

import xml.etree.ElementTree as ET

# 解析XML文件
tree = ET.parse('input.xml')
root = tree.getroot()

# 提取所有文章
posts = []
for item in root.findall('.//item'):
    title = item.find('title').text
    content = item.find('content:encoded', namespaces={'content': 'http://purl.org/rss/1.0/modules/content/'}).text
    posts.append({'title': title, 'content': content})

# 保存每篇文章为单独文件
for i, post in enumerate(posts):
    with open(f'article_{i}.html', 'w', encoding='utf-8') as f:
        f.write(post['content'])

然后对每个生成的 HTML 文件执行 Pandoc 转换:

for file in article_*.html; dopandoc -f html -t markdown -o "${file%.html}.md" "$file"done

最后,通过添加参数调整输出格式,例如:

pandoc -f docbook -t markdown_strict --wrap=preserve -o output.md input.xml

--wrap=preserve:保留原始文本换行。

markdown_strict:使用严格的 Markdown 格式。


将html文件可以通过这个网址实现在线转为MD格式,右侧点击【Import HTML】即可,如下图:

img

然后点击【Export as Markdown】导出为.md文件

当然更简单点通过wp插件库中,安装插件直接导出 Markdown:

  • WP to Markdown:将现有文章批量转换为 Markdown 文件。
  • Markdown Export:导出单个或多篇文章为 Markdown。

不过我没找到好用的插件,只能采用如上方式,欢迎在留言区交流。

posted @ 2025-09-04 17:28  crockery  阅读(41)  评论(0)    收藏  举报