用途:将单个或多个 Markdown 文件转换为带样式的 PDF,默认样式中性,可用自有品牌样式表覆盖。
主要能力:基于 WeasyPrint 与 Python markdown 库渲染;内置 assets/style.css 提供系统字体(不外部抓取字体)、中性灰阶标题、等宽代码块、A4 页面与合理页边距、页脚页码。支持 -o 指定输出目录、--css 覆盖默认样式表,支持 *.md 通配符。
使用方式:通过 uv run 运行转换脚本:uv run "${SKILL_DIR}/scripts/convert.py" <files...> [-o output_dir] [--css custom.css]。${SKILL_DIR} 为包含该 SKILL.md 的目录;脚本按自身位置解析 assets/style.css,任意路径均可用;依赖(markdown、weasyprint)写在 convert.py 顶部内联脚本元数据中,uv run 会读取并安装。步骤:先从请求中确定目标 .md 文件,未指定则查看当前目录并询问要转换哪些;再运行转换;最后报告生成了哪些 PDF 及其位置。
资源加载限制:WeasyPrint 会加载 Markdown(含其中原始 HTML)及 --css 文件引用的图片、样式表与字体,但脚本仅允许 https: 与 data: 两种 scheme。其他 scheme(http:、file:、ftp:)会导致转换中止并报 refused to load <url> 且退出码为 1,不写出 PDF。仅在信任文档时才用 --allow-scheme http 或 --allow-scheme file(可重复)。相对路径如图片 logo.png 不会被解析,因为 HTML 没有 base URL。
配套与已知问题:netresearch-branding-skill 提供 markdown-pdf.css 品牌资源,但该品牌 CSS 需要 .page-header 与 .page-footer 包裹元素,本脚本不生成,传入后会得到缺少 logo 和页脚但无报错的 PDF;如需合规输出需自行包裹 HTML 后直接调用 weasyprint。另有已知陷阱:引导句后紧跟列表、中间无空行时,python-markdown(不同于 CommonMark)不会将其渲染为列表,而是原样输出,且不报错、不影响退出码。建议完成转换前把第一页渲染为 PNG 检查(pymupdf/fitz:page.get_pixmap(dpi=150).save(...)),不要仅凭 ✓ converted 提示判断。输出格式示例:✓ converted README.md → README.pdf (12.3 KB)。
其他信息(含具体收费、价格、平台等)资料暂未提供。