Summary
- 将 Markdown 文档转换为专业的 PDF 白皮书,采用苹果设计风格。
- 支持完整的 Markdown 语法(代码块、表格、引用、列表等)。
- 自动生成封面、目录、页眉页脚。
- 使用场景:技术文档、白皮书、教程、报告等需要专业排版的 Markdown 文档。
alchaincyf/huashu-skills
将 Markdown 文档转换为专业的 PDF 白皮书,采用苹果设计风格。 支持完整的 Markdown 语法(代码块、表格、引用、列表等)。 自动生成封面、目录、页眉页脚。 使用场景:技术文档、白皮书、教程、报告等需要专业排版的 Markdown 文档。
npx skills add alchaincyf/huashu-skills --skill huashu-md-to-pdf
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybr…
568.2K installsUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or bot…
216.8K installsUse this skill whenever the user wants to do anything with PDF files. This includes reading or …
192.4K installsUse this skill whenever the user wants to create, read, edit, or manipulate Word documents (.do…
184.5K installsUse this skill any time a spreadsheet file is the primary input or output. This means any task …
165K installsOther skills from alchaincyf/huashu-skills · top by installs.
npx skills add alchaincyf/huashu-skills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
master
Files included with this skill beyond the listing page.
SKILL.md
5,677 B
README.md
2,197 B
SUMMARY.md
3,765 B
将 Markdown 文档转换为专业的苹果设计风格 PDF 白皮书。
# 转换单个文件
python scripts/convert.py input.md
# 指定输出文件名
python scripts/convert.py input.md -o "我的白皮书.pdf"
# 自定义标题和作者
python scripts/convert.py input.md --title "技术白皮书" --author "花叔"
Markdown 里的相对路径图片,是相对 md 文件自身所在目录解析的,目录名和文件名带中文都可以:
 ← 和 md 文件同级的「图片」目录

找不到的图片会在转换时打印警告并列出路径。以前这种情况是静默跳过的,PDF 照样生成、只是没有图。
有用户报告生成的 PDF 在 macOS「预览」里是乱码,浏览器打开正常。这个问题还没有解决办法,原因也还没定位——在一台用 Arial Unicode MS 渲染中文的机器上复现不出来,而报告者的字体环境和 weasyprint 版本都不清楚。
不要试图用 weasyprint 的 fullfonts=True 绕过它。 实测:macOS 上的中文字体(PingFang.ttc、Songti.ttc、Hiragino Sans GB.ttc)都是 TrueType Collection,fullfonts=True 会把整个 collection 的原始字节塞进 PDF 的 /FontFile2(magic 是 ttcf 而不是合法的 \x00\x01\x00\x00),结果是文件暴涨到几十 MB,而且照样乱码——实测一段中文从 10 KB 变成 43 MB,渲染出来是「Oě 据⊤」。它让问题更糟,不是逃生出口。
碰到乱码时可以先试:升级 weasyprint、或在 CSS 里换一个非 collection 的字体。
你的 Markdown 文档应该遵循以下结构:
# 文档标题
## 1. 第一章
### 1.1 第一节
### 1.2 第二节
## 2. 第二章
### 2.1 第一节
关键规则:
## 1. 标题(数字 + 点 + 空格 + 标题)### 1.1 标题(数字.数字 + 空格 + 标题)如果需要自定义样式,可以修改 scripts/convert.py 中的 CSS 变量:
# 主色调
PRIMARY_COLOR = '#06c' # 苹果蓝
TEXT_COLOR = '#1d1d1f' # 主文本黑色
GRAY_COLOR = '#86868b' # 浅灰色
# 字体大小
COVER_TITLE_SIZE = '64pt'
H2_SIZE = '22pt'
H3_SIZE = '17pt'
BODY_SIZE = '11pt'
A: 确保你的 Markdown 使用了正确的章节格式:
## 1. 标题 而不是 ## 标题### 1.1 标题 而不是 ### 标题A: 确保使用三个反引号包裹: ````markdown
def hello():
print("Hello")
````
A: 使用标准的 Markdown 表格语法:
| 列1 | 列2 |
|-----|-----|
| 值1 | 值2 |
A: 编辑 scripts/convert.py 中的 CSS,修改 font-family 属性。
A: 检查是否有大量图片,考虑压缩图片或使用外链。
首次使用需要安装 Python 依赖:
pip3 install markdown2 weasyprint
如果遇到 WeasyPrint 安装问题(macOS):
brew install pango
pip3 install weasyprint
python scripts/convert.py tech-guide.md -o "技术指南.pdf"
python scripts/convert.py whitepaper.md --title "产品白皮书" --author "团队"
scripts/convert.py - 主转换脚本scripts/styles.css - CSS 样式定义(已嵌入脚本)templates/cover.html - 封面模板(已嵌入脚本)本 Skill 使用:
花叔出品 | AI Native Coder · 独立开发者
公众号「花叔」| 30万+粉丝 | AI工具与效率提升
代表作:小猫补光灯(AppStore付费榜Top1)·《一本书玩转DeepSeek》