关于 md-to-pdf
md-to-pdf 是将 Markdown 文件转换为 PDF 的技能,面向需要生成可打印或分享文档的人。它通过 crossnote 和 Chrome/Puppeteer 渲染图表、数学公式及代码,并加入页码。
主要功能
- 01转换 Markdown 文件为 PDF
- 02渲染 Mermaid 图表
- 03渲染 KaTeX 数学公式
- 04GitHub 风格代码高亮
- 05自动添加页码
适用场景
- 01将 README 转为 PDF
- 02生成用于分享的规格文档
- 03批量转换 docs 中的 Markdown 文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ steveclarke/ dotfiles --skill md-to-pdf安装后在 Claude Code 中输入/md-to-pdf确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignorepackage.jsonscripts/md-to-pdfmd-to-pdf.cjs详细介绍
Markdown 转 PDF
使用 crossnote(与 mcp-printer 使用相同的引擎)将 Markdown 文件转换为排版精美的 PDF。
功能
- Mermaid 图表 — 流程图、时序图等
- 数学公式 — KaTeX 渲染
- 语法高亮 — GitHub 主题
- 页码 — 页脚自动显示第 X / Y 页
- GitHub-light 主题 — 简洁且针对打印优化的样式
用法
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs input.md # Creates input.pdf
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs input.md output.pdf # Custom output name
选项
| 标志 | 描述 |
|---|---|
-o FILE | 指定输出文件名 |
要求
- Chrome 或 Chromium — 在 macOS/Linux 上自动检测
- Node.js — 用于运行脚本
- 依赖项 — 在技能目录中运行一次
npm install
工作原理
- 使用 crossnote(Markdown Preview Enhanced 引擎)
- 将页码配置注入 front-matter
- 通过 Chrome/Puppeteer 渲染
- 开箱即支持 Mermaid、数学公式和代码高亮
示例
# Quick conversion
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs README.md
# Spec document for sharing
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs spec.md spec-v2.pdf
# Multiple files
for f in docs/*.md; do ~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs "$f"; done
Mermaid 示例
在 Markdown 中添加:
```mermaid
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Do something]
B -->|No| D[Do something else]
```
图表会在 PDF 中渲染为图形。
打印
如果用户想打印 PDF,请在生成后使用 /print 技能。
工作流决策:
| 用户意图 | 操作 |
|---|---|
| “转换为 PDF” | 保留 PDF |
| “打印这份 Markdown” | 生成 PDF → 使用 /print 打印 → 删除 PDF |
| “创建 PDF 并打印” | 保留 PDF,同时打印 |
如果目标是打印(而不是 PDF 文件本身),请在打印后删除 PDF:
# Generate, print, cleanup
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs doc.md
~/.claude/skills/print/scripts/print doc.pdf
rm doc.pdf
/print 技能会自动处理双面打印和黑白打印的默认设置。
别名(可选)
添加到 shell 配置文件中:
alias md-to-pdf='~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs'
评论
支持 Markdown