本项目用于将基于 Obsidian 风格的 Markdown 文件转换为 Word (.docx) 文档。它对 Obsidian 常见的文件结构和 Markdown 语法有针对性处理,包含图片处理、表格美化、列表修正、标题编号与目录生成等功能,便于将笔记直接导出为可交付的 Word 文档。
- 针对 Obsidian 的 MD 格式进行转换并尽量保留格式。
- 图片处理:在需要把图片嵌入到 Word 时,请将所有图片复制到仓库下的
./image目录(脚本会从该目录读取并粘贴图片)。 - 表格美化:可对生成的 Word 文档中的表格进行样式化处理。
- 标题处理:根据
reference.docx中的样式设置为各级标题自动添加编号并应用样式。 - 列表处理:处理无序列表与有序列表的转换(支持常见嵌套)。
- 目录:会在文档中插入目录占位,需要在 Word 中手动更新目录以显示页码。
- super_convert.py : 核心转换脚本。运行后会按
reference.docx中设置的样式处理 MD 文件(包括标题编号、列表转换、图片粘贴、表格美化、将文件名作为总标题、插入目录占位等)。 - format_tables.py : 对
docx文档中的表格进行美化。 - fix_lists.py : 作为转换的辅助脚本,用于修正和预处理列表格式。
reference.docx: (请放置在同目录)作为样式参考文件,脚本会按照其中定义的样式来应用到生成的文档中。image/: 存放需要被嵌入 Word 的图片,脚本会从此目录读取图片并插入到文档中。
- 将要转换的 Obsidian 风格的 Markdown 文件放到任意位置(推荐放在当前目录或同级目录)。
- 如果需要将图片嵌入到 Word 中,请把所有相关图片复制到仓库下的
image文件夹。脚本会根据 Markdown 中的图片引用名称去image/下查找并粘贴。 - 确保项目根目录存在
reference.docx,该文件包含了要应用到生成文档的标题、正文、表格等样式定义。 - 运行核心脚本(示例):
python super_convert.py <input.md>- 处理完成后会生成
.docx文件;打开该文档并在 Word 中手动更新目录(右键“更新域”→“更新整个目录”)。
-
Python 3.x: 脚本运行的核心环境。 -
Pandoc(版本 3.8.3 或更高): 用于执行Markdown到Word的核心格式转换。 -
python-docx: 用于在转换后对Word文档进行高级美化(如设置表格底纹、居中、修复标题制表符等)。
安装 Pandoc:需从 Pandoc官网 下载并安装,并确保将其添加到系统环境变量 PATH 中。 安装 Python 库:
pip install python-docx- 请确保
image/中图片的文件名与 Markdown 中引用一致(大小写敏感视操作系统而定)。 - 生成的 Word 文档会在合适的地方插入目录占位,需在 Word 中手动更新目录以显示准确页码。
reference.docx可自定义样式(标题级别、正文、表格样式等),脚本会尽量按其样式应用。- 如果表格样式不符合预期,可调整
reference.docx中的表格样式然后重新运行format_tables.py或完整转换流程。
- 图片未显示:请确认图片已复制到
image/,且 Markdown 中引用路径/文件名正确。 - 样式不生效:请打开
reference.docx检查对应样式名(如 Heading 1/Heading 2 等)是否被正确定义。
欢迎提交 issue 或 PR 改进脚本(如增强对 Obsidian 插件语法或其他扩展语法的支持)。