Skip to content

Bastandern/MD2StyledDoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

md 转 Word(针对 Obsidian 格式的转换器)

项目简介

本项目用于将基于 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 的图片,脚本会从此目录读取图片并插入到文档中。

使用说明

  1. 将要转换的 Obsidian 风格的 Markdown 文件放到任意位置(推荐放在当前目录或同级目录)。
  2. 如果需要将图片嵌入到 Word 中,请把所有相关图片复制到仓库下的 image 文件夹。脚本会根据 Markdown 中的图片引用名称去 image/ 下查找并粘贴。
  3. 确保项目根目录存在 reference.docx,该文件包含了要应用到生成文档的标题、正文、表格等样式定义。
  4. 运行核心脚本(示例):
python super_convert.py <input.md>
  • 处理完成后会生成 .docx 文件;打开该文档并在 Word 中手动更新目录(右键“更新域”→“更新整个目录”)。

依赖与安装

  • Python 3.x: 脚本运行的核心环境。

  • Pandoc (版本 3.8.3 或更高): 用于执行 MarkdownWord 的核心格式转换。

  • 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 插件语法或其他扩展语法的支持)。

About

一个基于 Python 和 Pandoc 的自动化文档转换与排版增强工具。它旨在打破 Markdown 与专业 Word 报告之间的隔阂,特别针对 Obsidian 用户和需要提交标准实验报告的开发者设计。

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages