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.docx、document_V1_normalized.md |
| 文件名含版本号 | document_V3.md |
document_V4.docx、document_V4_normalized.md |
| 目录中已有 V1 | document.md |
document_V2.docx、document_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.docx、document_V1_normalized.md - 第二次转换:
document_V2.docx、document_V2_normalized.md - 带版本输入:
document_V3.md→document_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 库开发。
推奨ツール
別のキーワードを試すか、フィルタを外してください。
インストール
npx skillfish add pickle-an/md-to-docx-skill