# md2doc **Repository Path**: grepsu/md2doc ## Basic Information - **Project Name**: md2doc - **Description**: 将Markdown格式文件生成符合公文标准的Word文件。 体验地址:https://md2.sujx.net - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://md2.sujx.net - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-08 - **Last Updated**: 2026-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Markdown 公文格式转换器 将 Markdown 转换为符合国家标准 GB/T 9704-2012 的党政机关公文 Word 文档(`.docx`),并支持将 Word / 电子书(`.doc .docx .azw .mobi .epub .txt`)反向转换为 Markdown。 体验地址:[https://md2.sujx.net](https://md2.sujx.net) ## 功能特性 - **双向转换**:Markdown ⇄ Word / 电子书 - **MD → DOCX**:生成 Word 现代格式(`.docx`)公文,兼容 Office 2007+ / WPS / Pages - **DOC / 电子书 → MD**:支持 `.doc .docx .azw .mobi .epub .txt` 一键转 Markdown - **实时预览**:输入区与公文预览区左右并列,PC 双栏 / 移动端自动堆叠 - **知乎风格主题**:蓝白扁平配色,简洁克制 - **自动格式化**:按公文标准设置字体、字号、行距、页边距、页码 - **隐私保护**:转换后服务端即时清理上传与输出文件 - **Docker 一键部署**:镜像内置 Pandoc、LibreOffice、Calibre ## 公文格式标准 | 层级 | 编号格式 | 字体 | 字号 | |------|----------|------|------| | 标题 | - | 方正小标宋简体 | 二号(22pt) | | 一级标题 | 一、 | 黑体(加粗) | 三号(16pt) | | 二级标题 | (一) | 楷体_GB2312(加粗) | 三号(16pt) | | 三级标题 | 1. | 仿宋_GB2312(加粗) | 三号(16pt) | | 四级标题 | (1) | 仿宋_GB2312 | 三号(16pt) | | 正文 | - | 仿宋_GB2312 | 三号(16pt) | - 行距:固定值 28.9 磅 - 页边距:上 3.7cm / 下 3.5cm / 左 2.8cm / 右 2.6cm - 页码:宋体 四号,单页右空一字 ## 技术栈 - **后端**:Python 3.12 + Flask + Gunicorn - **MD → DOCX 流水线**:Pandoc(MD → docx)→ python-docx(公文格式化,直接输出 docx) - **DOC/电子书 → MD 流水线**: - `.docx .epub .txt` → Pandoc 直接转 Markdown - `.doc` → LibreOffice 转 docx → 再由 Pandoc 转 Markdown - `.azw .mobi` → Calibre `ebook-convert` 先转 epub → 再由 Pandoc 转 Markdown - **前端**:原生 HTML / CSS / JavaScript(marked.js 渲染预览,内联 SVG 图标) - **部署**:Docker + Docker Compose(镜像约 1.3GB,含 LibreOffice + Calibre) ## 快速开始 ### 本地运行(需安装 pandoc + LibreOffice + Calibre) ```bash pip install -r requirements.txt python app.py ``` 访问 http://localhost:5000 ### Docker 部署(推荐) ```bash docker-compose up -d ``` 访问 http://localhost:8050 ## 使用说明 ### MD → DOCX(公文生成) 1. 在左侧编辑区输入 Markdown 内容,右侧实时预览公文效果(移动端自动改为上下布局) 2. 也可点击工具栏「上传」按钮选择 `.md` / `.txt` 文件 3. 点击「开始转换」,等待转换完成 4. 点击「下载 DOCX」获取文件 ### DOC / 电子书 → MD(反向转换) 1. 在「Word / 电子书转 Markdown」区上传支持的文件(`.doc .docx .azw .mobi .epub .txt`) 2. 点击转换,等待服务端处理 3. 下载生成的 `.md` 文件 ## 项目结构 ``` md2doc/ ├── app.py # Flask Web 主程序 ├── converter.py # 文档转换引擎(pandoc + LibreOffice + Calibre) ├── formatter.py # docx 公文格式后处理 ├── requirements.txt # Python 依赖 ├── Dockerfile # Docker 构建文件 ├── docker-compose.yml # Docker Compose 编排 ├── .gitignore # Git 忽略规则 ├── templates/ │ └── index.html # 前端页面(知乎蓝白主题) ├── static/ │ └── favicon.png # 网站图标 └── output/ # 输出目录(运行时生成) ``` ## 环境要求 - Python 3.12+ - Pandoc - LibreOffice(Docker 内预装,用于 .doc → md 中转) - Calibre(Docker 内预装,用于 azw/mobi → md 中转) - Docker(可选,推荐) ## 隐私保护 - 转换完成后文件自动从服务器删除 - 上传内容仅在内存与临时目录中处理 - 不留存任何用户文档 --- *本工具仅供技术交流与学习使用。*