PA

pickle-an/md-to-docx-skill

Code review
66 stars Качество 70 Тренд 70

Markdown 自动转正式 Word格式的Agent Skill

Обзор

一个强大的 Markdown 转 Word 文档转换器 Agent Skill,能够将 Markdown 文件自动转换为专业格式的 Word 文档(.docx)。 - ✅ 用户想要将 Markdown 文件转换为 Word 文档 - ✅ 用户要求从 Markdown 内容创建 Word 文档 - ✅ 用户提及 .md 到 .docx 的转换 - ✅ 用户需要格式化的文档输出 - 智能识别文件名中的版本号并自动递增 - 支持扫描目录中已有版本并自动编号 - 统一管理 .docx 和 _normalized.md 文件的版本号 - 符合中文文档规范的字体和字号设置 - 智能段落排版(首行缩进、行间距) - 标题自动分页控制 - 表格样式美化 - 代码块高亮显示 - 可选封面页生成 - 首次转换:document_V1.docx、document_V1_normalized.md - 第二次转换:document_V2.docx、document_V2_normalized.md - 带版本输入:document_V3.md → document_V4.docx - 📄 技术文档转换为正式 Word 文档 - 📋 项目报告自动化生成 - 📝 会议纪要格式化输出 - 📚 知识库文档标准化 - 📖 书籍章节排版 - 继承页面设置(边距、纸张大小) - 继承样式定义(标题 1-6、正文) - 添加新内容前清除模板内容 - 自动创建空白文档 - 使用默认页面设置(A4,2.54cm 边距) - 以编程方式创建样式 - 应用一致的格式

README

md-to-docx-skill

一个强大的 Markdown 转 Word 文档转换器 Agent Skill,能够将 Markdown 文件自动转换为专业格式的 Word 文档(.docx)。

Samples

📌 何时调用

在以下情况下调用此 Skill:

  • ✅ 用户想要将 Markdown 文件转换为 Word 文档
  • ✅ 用户要求从 Markdown 内容创建 Word 文档
  • ✅ 用户提及 .md.docx 的转换
  • ✅ 用户需要格式化的文档输出

🔄 处理流程

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   输入 MD 文件   │ ──▶ │  版本号管理处理  │ ──▶ │  格式规范化处理  │ ──▶ │   解析 MD 元素   │ ──▶ │  生成 Word 文档  │
└─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘
                                                      │
                                            ┌─────────┴─────────┐
                                            ▼                   ▼
                                      ┌───────────┐       ┌───────────┐
                                      │ 保存规范化 │       │ 应用模板   │
                                      │ 后的文件   │       │ 样式       │
                                      └───────────┘       └───────────┘

✨ 核心特性

🔄 自动版本管理

  • 智能识别文件名中的版本号并自动递增
  • 支持扫描目录中已有版本并自动编号
  • 统一管理 .docx_normalized.md 文件的版本号
场景 输入文件 输出文件
文件名无版本号 document.md document_V1.docxdocument_V1_normalized.md
文件名含版本号 document_V3.md document_V4.docxdocument_V4_normalized.md
目录中已有 V1 document.md document_V2.docxdocument_V2_normalized.md

🛠️ Markdown 格式规范化

自动修复常见的 Markdown 格式问题:

问题类型 示例 修复
未闭合的代码块 ```python 无闭合 自动添加闭合```
标题后无空格 ###标题 ### 标题
标题中的中文数字 ## 一、核心原理 ## 1. 核心原理
标题中的中文数字 ### (一)技术细节 ### (1) 技术细节
无序列表无空格 -项目 - 项目
有序列表无空格 1.项目 1. 项目
分隔线变体 ------ ---
不匹配的粗体标记 **只有开头 移除无效标记
不匹配的斜体标记 *只有开头 移除无效标记
缺少表格分隔行 表格无`
表格列数不一致 行的列数不同 自动填充/截断
多个连续空行 3+ 个连续空行 压缩为 1 个
标题前缺少空行 文本直接在标题前 添加空行
段落首行空格 带首行空格的文本 移除首行空格

📝 完整的 Markdown 支持

元素 语法 支持程度
标题 # ~ ###### 完全支持
段落 纯文本 完全支持
粗体 **文本** 完全支持
斜体 *文本* 完全支持
粗体+斜体 ***文本*** 完全支持
无序列表 - 项目 / * 项目 完全支持
有序列表 1. 项目 完全支持
表格 `
代码块 ```代码``` 完全支持
行内代码 `代码` 完全支持
链接 [文本](url) 完全支持
图片 ![替代文本](路径) 完全支持
引用块 > 引用 完全支持
分隔线 --- 完全支持
删除线 ~~文本~~ 完全支持
换行 `` 或 \\ 完全支持

🎨 专业文档格式

  • 符合中文文档规范的字体和字号设置
  • 智能段落排版(首行缩进、行间距)
  • 标题自动分页控制
  • 表格样式美化
  • 代码块高亮显示
  • 可选封面页生成

📦 安装依赖

pip install python-docx

🚀 使用方法

基本转换

将此 Markdown 文件转换为 Word:
[提供 .md 文件路径或内容]

使用自定义模板

使用此模板将 Markdown 转换为 Word:
Markdown:[路径或内容]
模板:[.docx 模板路径]

带封面页

转换为带封面页的 Word:
[Markdown 内容]
标题:[文档标题]
版本:[版本号]
日期:[日期]

参数说明

参数 类型 必填 描述
markdown_content 字符串 Markdown 文本或文件路径
output_path 字符串 输出 .docx 文件路径
template_path 字符串 自定义 .docx 模板路径
version 字符串 封面页版本号(未提供则自动生成)
date 字符串 封面页日期
normalize 布尔值 启用格式规范化(默认:true)
save_normalized 布尔值 保存规范化后的 MD 文件(默认:true)
use_versioning 布尔值 启用自动版本编号(默认:true)

📁 项目结构

md-to-docx-skill/
├── skill/
│   └── SKILL.md              # Skill 详细说明文档
├── md_to_docx.py             # 主转换脚本
├── markdown_normalizer.py    # Markdown 格式规范化
├── version_manager.py        # 自动版本编号
├── create_template.py        # 模板生成脚本(可选)
└── template.docx             # 默认 Word 模板(可选)

📋 输出文件

转换后,生成以下文件:

文件 描述
document_V{n}.docx 带版本号的最终 Word 文档
document_V{n}_normalized.md 带版本号的规范化 Markdown

版本号示例:

  • 首次转换:document_V1.docxdocument_V1_normalized.md
  • 第二次转换:document_V2.docxdocument_V2_normalized.md
  • 带版本输入:document_V3.mddocument_V4.docx

🎯 文档格式规范

字体规范

元素类型 中文字体 英文字体 字号 说明
正文 宋体 Times New Roman 12pt(小四) 标准正文字号
一级标题 宋体 Times New Roman 22pt(二号) 大标题
二级标题 宋体 Times New Roman 16pt(三号) 章节标题
三级标题 宋体 Times New Roman 15pt(小三) 小节标题
四级标题 宋体 Times New Roman 14pt(四号) 条目标题
五级标题 宋体 Times New Roman 14pt(四号) 子条目标题
代码块 Consolas Consolas 9pt(小五) 略小于正文
行内代码 Consolas Consolas 12pt(小四) 与正文同字号

段落规范

属性 设置值 说明
首行缩进 0.74cm 约两个汉字宽度
行间距 1.5 倍 提升阅读舒适度
段前间距 0pt 保持紧凑排版
段后间距 0pt 保持紧凑排版

标题规范

标题级别 Markdown 语法 字号 样式特点
文档标题 # 标题 22pt(二号) 加粗、居中、可生成封面页
一级标题 ## 标题 22pt(二号) 加粗、段前自动分页
二级标题 ### 标题 16pt(三号) 加粗、不分页
三级标题 #### 标题 15pt(小三) 加粗、不分页
四级标题 ##### 标题 14pt(四号) 加粗、不分页
五级标题 ###### 标题 14pt(四号) 加粗、不分页

表格规范

属性 设置值 说明
表格样式 Table Grid 带边框的标准表格
对齐方式 居中 表格整体居中显示
列宽 自动计算 根据内容智能分配
表头背景 #D9D9D9 浅灰色背景突出表头
表头对齐 居中 表头文字居中对齐
单元格对齐 左对齐 数据内容左对齐

代码块规范

属性 设置值 说明
字体 Consolas 等宽字体,代码清晰
字号 9pt 略小于正文
背景色 #F5F5F5 浅灰色背景区分代码
左缩进 0.5cm 突出代码块层次
语言标签 斜体显示 [python]

行内代码规范

属性 设置值 说明
字体 Consolas 等宽字体
字号 同正文 保持行高一致
背景色 #F0F0F0 浅灰背景突出显示

引用块规范

属性 设置值 说明
左边框 #6366F1 紫色竖线标识
边框宽度 1.5pt 清晰可见
左右缩进 1cm 突出引用内容
字体样式 斜体 区分引用文字

列表规范

属性 设置值 说明
左缩进 0.74cm × 层级 支持多级嵌套缩进
行间距 1.5 倍 与正文保持一致
无序列表符号 实心圆点
有序列表格式 1. 2. 3. 数字加点

分隔线规范

属性 设置值 说明
样式 底部边框 段落下方的横线
颜色 #CCCCCC 浅灰色
段前段后间距 6pt 保持适当间隔

封面页规范

元素 设置值 说明
标题字号 22pt 与一级标题一致
标题样式 加粗、居中 突出文档标题
版本信息 12pt、居中 格式:版本:V1
日期信息 12pt、居中 格式:编制日期:2024年01月01日
前置空行 3 行 标题上方留白
后置空行 14 行 标题与版本信息间距

分页控制

规则 说明
一级标题前分页 每个一级标题自动另起一页
其他标题不分页 二级及以下标题保持连续
封面页后分页 封面页结束后自动分页

💡 使用场景

  • 📄 技术文档转换为正式 Word 文档
  • 📋 项目报告自动化生成
  • 📝 会议纪要格式化输出
  • 📚 知识库文档标准化
  • 📖 书籍章节排版

🔧 高级功能

格式规范化示例

输入(含问题):

# 测试文档
## 一、表格测试
| 列1|列2|列3
|数据1|数据2|数据3
###标题无空格
-项目1无空格

规范化输出:

# 测试文档

## 1. 表格测试

|列1|列2|列3|
|---|---|---|
|数据1|数据2|数据3|

### 标题无空格

- 项目1无空格

版本号管理

场景 输入文件 输出文件
首次转换 document.md document_V1.docx
已有 V1 document.md document_V2.docx
带版本输入 document_V3.md document_V4.docx

🎨 模板支持

使用自定义模板

如果提供了模板:

  • 继承页面设置(边距、纸张大小)
  • 继承样式定义(标题 1-6、正文)
  • 添加新内容前清除模板内容

内置样式(无模板)

本 Skill 可独立运行,无需外部模板文件。

如果未提供模板或模板文件不存在:

  • 自动创建空白文档
  • 使用默认页面设置(A4,2.54cm 边距)
  • 以编程方式创建样式
  • 应用一致的格式

这意味着本 Skill 可以在任何安装了 Python 和 python-docx 的环境中独立运行,无需依赖外部模板文件。

📖 详细文档

查看 SKILL.md 获取完整的功能说明、参数配置和实现细节。

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🙏 致谢

本项目基于 python-docx 库开发。

View this README on GitHub

Рекомендуемые инструменты

Попробуйте другой запрос или уберите фильтр.

Установка

npx skillfish add pickle-an/md-to-docx-skill