背景
markdown是开发者手中的利器,很多的开发平台都支持markdown编辑,但是凡事有例外微信公众号平台就不支持markdown编写并且只能导入docx的文档。但是我们在cdsn中写好文章之后导出的是markdown, 在微信公众号平台上还有要重新写一遍。
pandoc介绍
Pandoc是一款功能强大的文本转换工具,它能够将多种标记和文字处理格式进行转换,包括但不限于Markdown、HTML、LaTeX和Word docx等。这款软件不仅支持广泛的格式转换,还提供了高度定制化的功能,以满足用户的不同需求。
Pandoc的核心优势在于其模块化设计,它由一组读取器组成,能够解析给定格式的文本并产生文档的本地方法表示(抽象语法树或AST)。同时,它还拥有一组写入器,负责将这个本地方法表示转换成目标格式。这种设计使得Pandoc在添加新的输入或输出格式时非常灵活,只需添加相应的读取器或写入器即可。
此外,Pandoc还支持使用过滤器来处理文档,用户可以运行自定义的Pandoc过滤器来修改中间的AST,进一步丰富了文档的处理方式。无论是添加脚注、修改样式,还是进行其他复杂的文档操作,Pandoc都能轻松应对。
Pandoc还具备跨平台特性,可以在Windows、MacOS和Linux等操作系统上运行,这使得用户无论使用何种设备,都能轻松利用Pandoc进行文本转换工作。同时,作为一款命令行工具,Pandoc易于集成进自动化工作流,为开发者提供了极大的便利。
总的来说,Pandoc是一款功能全面、操作简便、高度定制化的文本转换工具。
python中使用pandoc
安装完成之后在命令行中输入pandoc 检查是否安装成功
python安装pypandoc
pip install pypandoc
python代码
import os
import pypandoc
md_file_dir = r"D:\data\导出数据"
docx_file_dir =r"D:\temp\导出docx"
os.makedirs(docx_file_dir, exist_ok=True)
for root, _, files in os.walk(md_file_dir):
for filename in files:
if filename.endswith(".md"):
try:
print(filename)
md_file = os.path.join(root, filename)
docx_file = os.path.join(docx_file_dir, filename.replace("md", "docx"))
pypandoc.convert_file(md_file, 'docx', format='md',
outputfile=docx_file)
print(f"Converted '{md_file}' to '{docx_file}'") # 打印转换状态
except Exception as e:
print(f"Converted error:{e}" )
请添加图片描述
如图所示转化成docx成功
导入微信公众号也是能识别的。