微信公众号文章排版:把 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。

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

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

小夜