微信公衆號文章排版:把 Markdown 轉成公衆號可用的內聯 HTML

前言

公衆號後臺對富文本的限制很多:不能依賴頁面級 <style>、class 和腳本,複製粘貼時樣式也容易丟。若你平時用 Markdown 寫稿,再手工在後臺調字號、列表和引用,往往要反覆預覽。

下面介紹 SkillHub 社區技能「微信公衆號文章排版」(座標 @user_5dda6a29/wechat-typeset-pro)。它在 Agent 側約定一套工作流,並用 Python 腳本把 Markdown 渲染爲微信兼容的內聯樣式 HTML,支持多主題預覽與可選草稿箱推送。

這是什麼

一句話定位:微信公衆號專業排版技能——Markdown → 精美、微信編輯器可接受的 HTML。

  • 出品與託管:社區發佈者 user_5dda6a29,來源 community,分類 content-creation,當前版本 1.0.0。
  • 分發地址:SkillHub 技能頁,API 座標頁 https://api.skillhub.cn/user_5dda6a29/wechat-typeset-pro。
  • 社區數據(頁面統計):評分 100000,下載 5409,安裝 361;標籤含 requires_api_key=true(與可選的微信開放平臺憑證相關,見下文)。

技能本體爲通用 SKILL.md 格式,並附帶 scripts/format.py、scripts/publish.py 與 themes/ 下主題 JSON。

核心功能

以下能力均來自技能說明與腳本職責,可按需選用。

排版引擎(format.py)

  • 將 Markdown 轉爲純內聯樣式 HTML,適配微信編輯器限制。
  • 30 套主題(如 terracotta、bytedance、newspaper、github、wechat-native 等),默認主題在 config.json 中爲 newspaper。
  • 主題畫廊:用真實文章渲染多個主題,在瀏覽器中切換並複製到公衆號後臺。
  • 內置增強:CJK 間距、加粗標點修復、列表用 section 模擬、外鏈轉腳註、代碼高亮、深色模式屬性、多種 callout、圖說、對話氣泡、圖片畫廊、時間線、步驟、對比卡片、表格斑馬紋等。
  • 擴展容器語法::::dialogue、:::gallery、:::timeline、:::steps、:::compare、:::quote,以及 > [!tip] / > [!important] 等塊。

推送(publish.py,可選)

  • 將排版結果或指定 Markdown 推送到公衆號草稿箱。
  • 需配置 WECHAT_APP_ID、WECHAT_APP_SECRET(優先從環境變量讀取,說明文檔提到可從 ~/.openclaw/.env 加載)。

Agent 側工作流

技能約定 Agent 在用戶提到「排版」「微信排版」「公衆號排版」等意圖時:

  1. 確認文章路徑與內容;
  2. 必要時做結構化預處理(只加 Markdown 標記,不改措辭);
  3. 按內容類型套用容器與 callout,並推薦主題;
  4. 調用 format.py 打開畫廊或指定主題;
  5. 用戶確認後複製 HTML;若要求推送,再調用 publish.py。

輸出目錄默認 ~/WorkBuddy/wechat-typeset-pro(與 config.json 中 output_dir 一致)。

安裝與啓用

方式一:讓 Agent 按 SkillHub 文檔安裝

在支持 Skill 的客戶端中,可將官方頁面給出的提示詞發給 Agent:

請根據 https://skillhub.cn/install/skillhub.md,安裝 `@user_5dda6a29/wechat-typeset-pro`。

方式二:skillhub CLI

先按 SkillHub 安裝說明 安裝 CLI,再安裝到當前 Agent 的 skills 目錄(未指定 --dir 時默認 ./skills/,可能不會被客戶端識別)。

command -v skillhub && skillhub --version

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

skillhub install @user_5dda6a29/wechat-typeset-pro --dir <skills 目錄>

常用 skills 路徑(摘自官方安裝文檔):

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

安裝完成後,在對話中用自然語言觸發排版流程即可;具體是否自動加載技能取決於各客戶端的 Skill 機制。

配置

技能目錄下的 config.json 可設置 output_dir、settings.default_theme、settings.auto_open_browser 等。微信 AppID / AppSecret 建議放在環境變量,而非寫入配置文件:

變量 用途
WECHAT_APP_ID 微信公衆號 AppID
WECHAT_APP_SECRET 微信公衆號 AppSecret

排版腳本依賴 Python 3,並 import markdown(見 format.py);運行前需保證本機 Python 環境與依賴可用。

典型用法

將 {baseDir} 替換爲技能安裝目錄(即 SKILL.md 所在路徑)。

打開主題畫廊(推薦)

用真實文章渲染多主題,在瀏覽器中選擇並複製:

python3 {baseDir}/scripts/format.py \
  --input "文章路徑.md" \
  --gallery \
  --recommend newspaper magazine ink

直接指定主題

python3 {baseDir}/scripts/format.py \
  --input "文章路徑.md" \
  --theme terracotta

常用 format.py 參數:--output / -o 輸出目錄,--no-open 不自動打開瀏覽器,--format 取 wechat / html / plain。

推送到草稿箱(需微信憑證)

從排版輸出目錄推送:

python3 {baseDir}/scripts/publish.py \
  --dir "排版輸出目錄" \
  --cover "封面圖路徑(可選)"

從 Markdown 一鍵排版並推送:

python3 {baseDir}/scripts/publish.py \
  --input "文章.md" \
  --theme terracotta

--dry-run 僅排版不推送;--title、--author 可覆蓋元信息。

適用場景與注意

適合誰

  • 用 Markdown 寫公衆號長文,希望統一版式、少在後臺手工調樣式;
  • 需要在多種視覺主題間對比,再粘貼到微信後臺;
  • 已具備公衆號開發憑證,希望把成稿推到草稿箱再人工發佈。

限制與注意

  • 成稿是內聯 HTML,複雜交互與外部樣式表仍不適合公衆號;
  • 畫廊模式說明爲用真實文章渲染多個主題供選擇,主題總數爲 30 套,具體畫廊展示數量以腳本實現爲準;
  • requires_api_key=true 主要體現在草稿箱推送所需的微信開放平臺憑證;僅本地排版與複製可不配置;
  • config.json 示例中含 vault_root 等路徑,跨機器使用時需按自己的目錄調整;
  • 技能可被 wechat-content-studio 等其它技能的排版流程調用,若你已有內容生產鏈路,可把它當作排版子步驟。

結尾

「微信公衆號文章排版」把 Markdown、30 套主題、畫廊預覽和可選草稿推送收進一個 Skill + 腳本包,適合把「寫稿」和「公衆號可粘貼的 HTML」拆開處理。安裝與座標見 SkillHub 技能頁,API 入口 https://api.skillhub.cn/user_5dda6a29/wechat-typeset-pro。

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

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

小夜