【pandoc实践】如何将wordpress文章批量导出为Markdown格式
如何将wordpress文章批量导出为Markdown格式,这里建议用pandoc这个工具,之前的文章里有简单描述使用说明:
关于如何安装和使用在这里就不做过度赘述。
首先需要在wp后台将文章进行导出,从【工具】-【文章】实现:
因为下载的是xml格式,需要转换格式,这里就需要【pandoc】这个软件,按之前的教程安装即可:
首先需要使用管理员打开PowerShell,可以使用命令查看是否安装成功:
然后查找至自己刚刚下载的文章路径,这里我的路径是 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
具体的操作可参考截图:
当然,如果 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').textcontent = item.find('content:encoded', namespaces={'content': 'http://purl.org/rss/1.0/modules/content/'}).textposts.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】即可,如下图:
然后点击【Export as Markdown】导出为.md文件
当然更简单点通过wp插件库中,安装插件直接导出 Markdown:
- WP to Markdown:将现有文章批量转换为 Markdown 文件。
- Markdown Export:导出单个或多篇文章为 Markdown。
不过我没找到好用的插件,只能采用如上方式,欢迎在留言区交流。