Markdown轉換PDF:把 Markdown 排版成本地 A4 PDF

前言

寫方案、紀要或歸檔材料時,Markdown 便於版本管理,但對外交付往往還要 PDF。手工複製到 Word 再導出,或臨時拼一條 Pandoc/LaTeX 流水線,都容易在樣式和中文路徑上踩坑。下面介紹 SkillHub 上的社區 Skill「Markdown轉換PDF」(座標 @user_09b3713d/md2pdf):裝到 Agent 的 skills 目錄後,可按固定流程把 .md 轉成帶版式的本地 PDF。

這是什麼

「Markdown轉換PDF」是 SkillHub community 源、分類 office-efficiency 的技能,發佈者爲 user_09b3713d。平臺簡介只有一句:將 Markdown 格式轉換爲 PDF 格式。實際安裝包內的 SKILL.md 將其定位爲 MD2PDF——通用文檔轉換:任意 Markdown → A4 打印就緒 PDF,經 python-markdown 排版 HTML,再用 Chrome/Edge/Chromium 無頭打印,並用 pypdf 做頁數校驗。標籤標明 requires_api_key=false,調用不依賴額外 API Key。

平臺頁面(截至抓取)顯示版本 v1.0.0,評分 100000,下載 2739,安裝 31。

核心功能

以下能力來自已安裝包內的 SKILL.md 與 scripts/md2pdf.py,可與本地文件覈對:

  1. 三種風格模板:formal(正式黑白)、business(商務藍)、academic(學術襯線),對應 styles/formal.css、styles/business.css、styles/academic.css。
  2. Markdown 結構:支持表格、圍欄代碼塊、引用塊(markdown 擴展 tables、fenced_code)。
  3. 轉換鏈路:md → 排版 HTML → 瀏覽器無頭 --print-to-pdf → PDF;默認去掉 PDF 頁眉頁腳;異常時腳本對舊版 Chrome 有重試邏輯。
  4. 環境自愈:Python 3.8+;缺 markdown、pypdf 時腳本嘗試自動 pip install(首次需聯網);瀏覽器自動探測,也可用 --browser 指定路徑。
  5. Agent 側約定:調用技能時先讓用戶選風格模板(用戶已明確指定時可跳過);生成後把 PDF 呈現給用戶。

安裝與啓用

先做環境檢查,再把技能裝進當前 Agent 識別的 skills 目錄(SkillHub 文檔強調必須用 --dir,否則默認 ./skills/ 可能不被加載)。

1、檢查 SkillHub CLI

command -v skillhub && skillhub --version

未安裝時可按官方安裝說明執行完整安裝(示例爲推薦方式):

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

2、安裝本 Skill

搜索可見座標與安裝方式;安裝命令爲:

skillhub install md2pdf --namespace user_09b3713d --dir <你的 Agent skills 目錄>

常用目錄(來自 SkillHub 安裝文檔):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或項目下的 .agents/skills/

安裝成功後,包會落在類似 @user_09b3713d/md2pdf/ 的子目錄中,內含 SKILL.md 與 scripts/md2pdf.py。修改 skills 後按你所用客戶端的要求重啓或刷新 Agent,使技能生效。

典型用法

在對話裏:用戶提出「把這份 md 導出 PDF」時,Agent 按 SKILL.md 先用問答讓用戶選 formal / business / academic,再執行腳本。

命令行一鍵轉換(路徑替換爲本機安裝目錄):

python <skill目錄>/scripts/md2pdf.py "<輸入.md>" "<輸出.pdf>" --style <formal|business|academic>

說明:

  • 省略 --style 時默認爲 formal。
  • 省略輸出 PDF 路徑時,PDF 寫在源 .md 同目錄,文件名爲 原名_風格.pdf。
  • 腳本會打印中間 .print.html 路徑,便於預覽或排障。

排障或只要 HTML 時,可按 SKILL.md 分步:先 md→HTML(拼接模板必須用 __BODY__/__CSS__ 佔位符 replace,不要用 % 格式化或 f-string,避免 CSS 中的 %、{} 衝突),再手動調用瀏覽器無頭打印。

適用場景與注意

適合:需要把報告、紀要、方案、論文類 Markdown 保存爲本地 PDF、且希望有固定 A4 版式與三種預設風格的場景;本機可安裝 Chrome/Edge/Chromium 或願意用 --browser 指定。

注意:

  • 依賴無頭瀏覽器;探測不到瀏覽器時會報錯,需本機安裝或顯式指定。
  • 首次運行可能觸發 pip 裝依賴,需網絡與可寫的 Python 環境。
  • SKILL.md 提到 WorkBuddy、PowerShell 輸出等特殊環境時的處理方式;其他 Agent 若 stdout 不回傳,可把輸出重定向到文件再讀取。
  • SkillHub 上另有同名或相近的 md2pdf 技能(不同 namespace),安裝時務必使用 @user_09b3713d/md2pdf 對應的 install md2pdf --namespace user_09b3713d。

結尾

「Markdown轉換PDF」把「選模板 → md 轉 HTML → 無頭打印 PDF → 校驗」收成一條可復現鏈路,適合在 Agent 裏處理日常的 Markdown 交付。安裝與優先源說明見 SkillHub 安裝文檔;技能頁見 SkillHub - Markdown轉換PDF,線索地址 https://api.skillhub.cn/user_09b3713d/md2pdf。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜