将 Markdown 文稿转换为微信公众号兼容的 HTML 格式。支持 Claude 风格(简约橙)、橙韵风格(杂志卡片)、蓝色专业风格(商务数据)和贴纸风格(旋转贴纸)四种预设主题。自动处理公众号编辑器的 CSS 兼容性问题(div 转 table、代码块换行、表格背景色、字体继承等)。触发词:「公众号排版」「微信文章格式化」「WeChat article」「格式化为公众号」「转换为微信格式」「复刻排版」「模板复刻」「clone theme」。
Install
npx skillscat add vigorx777/wechat-article-formatter Install via the SkillsCat registry.
We need to produce a 2-3 sentence plain-text summary in English, objective, factual, no marketing language, no superlatives, no calls to action. Must be natural prose, no bullet points, no headings, no markdown. At most 60 words. No quotes. Just the summary text. We need to capture: skill converts Markdown to WeChat public account compatible HTML, solves formatting/CSS compatibility issues, used when publishing articles to WeChat public account, needing consistent styling, etc. We must keep under 60 words. Let's craft maybe ~45 words.
微信文章排版生成器 (WeChat Article Formatter)
本 Skill 旨在将 Markdown 文稿一键转换为微信公众号编辑器完美兼容的 HTML 格式,彻底解决粘贴后排版错乱、CSS 失效等痛点。
核心能力
- Markdown → 公众号 HTML: 自动转换标题、列表、引用、表格等 Markdown 元素。
- CSS 兼容性引擎: 自动执行
div转table、white-space预处理、字体显式声明等兼容性修复。 - 四主题支持: 预设 Claude 风格(简约橙)、橙韵风格(杂志卡片)、蓝色专业风格(商务数据)和 贴纸风格(旋转贴纸),用户触发后选择。
- 一键复制准备: 使用 Clipboard API 输出 HTML 格式,支持直接粘贴到公众号编辑器并保留样式。
工作流程(必须遵循)
快捷模式:一次性配置
用户可以在触发命令中直接指定所有参数,跳过交互式选择:
完整参数格式:
/wechat-format @article.md --theme 橙韵 --color #007AFF自然语言格式:
用橙韵风格、主色 #007AFF 排版 @article.md
使用蓝色专业风格排版 @report.md(使用默认色系)
用贴纸风格、主色 #10B981 排版 @tutorial.md参数说明:
| 参数 | 必需 | 说明 |
|---|---|---|
@file.md |
✅ | 要排版的 Markdown 文件 |
--theme / 主题名 |
❌ | 主题风格:Claude/橙韵/蓝色专业/贴纸 |
--color / 主色 |
❌ | 自定义主色(如 #007AFF),不指定则使用默认色系 |
识别规则:如果用户在触发命令中已包含主题和/或颜色信息,则跳过对应的交互式提问,直接执行转换。
交互模式:分步配置
如果用户仅提供文件而未指定参数,则进入交互式配置流程。
第一步:主题选择
触发 Skill 后,首先询问用户选择主题风格:
| 主题 | 特点 | 适用场景 |
|---|---|---|
| Claude 风格 | 简约橙色、左边框标题、清爽段落 | 技术分享、日常随笔、简短内容 |
| 橙韵风格 | 渐变头图、卡片布局、中文序号章节 | 深度解读、专题报道、长文精读 |
| 蓝色专业 | 蓝色渐变头图、白色卡片、数据感 | 数据分析、用户研究、商业报告 |
| 贴纸风格 | 旋转贴纸编号、渐变头图、卡片布局 | 教程指南、技术解析、趣味科普 |
提问示例:
请选择排版主题:
- Claude 风格 - 简约清爽,适合技术分享
- 橙韵风格 - 杂志卡片,适合深度解读
- 蓝色专业 - 商务数据,适合分析报告
- 贴纸风格 - 旋转贴纸,适合教程指南
输入 1、2、3 或 4,或直接说「Claude」/「橙韵」/「蓝色」/「贴纸」
第二步:色系选择
主题选择后,询问用户是否使用默认色系:
提问示例:
已选择「橙韵风格」,默认色系为暖橙色。
请选择色系:
- 使用默认色系 - 橙色渐变(推荐)
- 自定义主色 - 输入 HEX 色值(如
#007AFF)输入 1 使用默认,或直接输入色值自定义
各主题默认色系预览:
| 主题 | 默认主色 | 色系风格 |
|---|---|---|
| Claude 风格 | #D97757 |
温暖橙 |
| 橙韵风格 | #fb923c |
明亮橙 |
| 蓝色专业 | #2563eb |
专业蓝 |
| 贴纸风格 | #D97757 |
Claude 橙 |
色系派生:当用户提供自定义主色时,Claude 会自动基于该主色派生出完整色系(主色深、主色浅、背景浅等)。详见 references/themes.md 中的色系派生逻辑。
第三步:源文档预分析
在开始转换之前,必须先分析源 Markdown 文档,提取结构指纹:
| 指标 | 统计方式 | 示例 |
|---|---|---|
| H2 标题 | 统计所有 ## 开头的行,记录标题文本列表 |
["背景介绍", "核心方法", "实验结果", "总结"] |
| H3 标题 | 统计所有 ### 开头的行 |
数量:8 |
| 表格 | 统计每个表格的数据行数(不含表头和分隔行) | [5, 12, 3](3 个表格,分别 5/12/3 行) |
| 列表项 | 统计每个连续列表块的项数 | [6, 15, 4] |
| 图片 | 统计 ![ 开头的行数 |
数量:7 |
| 总行数 | 文档总行数 | 428 |
将这些指标记录为 结构指纹,转换完成后用于自动验证。
第四步:分段转换
根据用户选择的主题和色系,加载对应的样式规范:
- Claude 风格 → 参考 references/element-styles.md
- 橙韵风格 → 参考 references/chengyun-element-styles.md
- 蓝色专业 → 参考 references/blue-element-styles.md
- 贴纸风格 → 参考 references/sticker-element-styles.md
自定义色系处理:如果用户指定了自定义主色,Claude 需要在转换时将样式模板中的颜色值替换为派生后的色系。详见 references/themes.md 中的色系派生规则。
转换策略根据文档长度自动选择:
短文档(≤150 行):一次性转换
直接将整篇文档转换为 HTML,包含完整的页面结构(外层容器、头部区域、内容区域、尾部)。
长文档(>150 行):按 H2 分段转换
⚠️ 此流程是解决长文档内容丢失问题的核心机制,必须严格执行。
第一轮:生成页面骨架 + 前言
转换以下内容,生成包含完整页面结构的 HTML:
- 外层容器
<section>开标签 - 头部区域(渐变背景、标签、标题、副标题等)
- 白色内容卡片(前言/摘要段落)
- 封面图占位符(如有)
- 正文分隔线(如有)
- 不关闭 外层容器标签
输出时在末尾添加注释标记:<!-- SEGMENT_BOUNDARY -->
第二轮起:逐段转换 H2 章节
将源文档按 H2 标题(## )切分为独立段落。每个段落包含:
- 该 H2 标题
- 该 H2 下的所有内容(段落、列表、表格、代码块、图片等),直到下一个 H2 或文档末尾
逐段转换时:
- 每段只输出该章节的 HTML 片段(不含页面骨架)
- 保持图片占位符编号的全局连续性(如上一段用到
WECHATIMGPH_3,本段从WECHATIMGPH_4开始) - 每段末尾添加
<!-- SEGMENT_BOUNDARY -->注释
最后一轮:拼接与闭合
将所有片段按顺序拼接,移除所有 <!-- SEGMENT_BOUNDARY --> 注释,关闭外层容器标签,生成完整 HTML。
第五步:自动化验证(必做)
转换完成后,自动(非人工)执行以下验证,对比第三步的结构指纹:
| 检查项 | 方法 | 不通过时的处理 |
|---|---|---|
| H2 标题数量 | 统计生成 HTML 中的 H2 元素数,与原文 H2 列表逐一比对 | 定位缺失的 H2 标题,补充转换该章节 |
| H3 标题数量 | 统计生成 HTML 中的 H3 元素数 | 定位缺失的 H3,补充转换 |
| 表格行数 | 统计每个 <table> 中 <tr> 数量(减去表头行),与原文各表格行数对比 |
找到行数不足的表格,用原文数据补全 |
| 列表项数 | 统计 <li> 数量 |
找到截断的列表,补全缺失项 |
| 图片占位符数 | 统计 WECHATIMGPH_ 出现次数 |
补充缺失的图片占位符 |
验证流程:
- 执行上表所有检查项
- 如果全部通过 → 输出验证报告,继续下一步
- 如果有不通过项 → 自动修补(补充缺失内容),然后重新验证,直到全部通过
- 验证报告格式:
✅ 验证通过
- H2 标题:原文 4 个 ↔ HTML 4 个 ✓
- H3 标题:原文 8 个 ↔ HTML 8 个 ✓
- 表格行数:原文 [5, 12, 3] ↔ HTML [5, 12, 3] ✓
- 列表项:原文 25 个 ↔ HTML 25 个 ✓
- 图片:原文 7 个 ↔ HTML 7 个 ✓完整验证清单(含样式检查)见 references/verification-checklist.md。
第六步:输出文件
生成的产物存放在 .wechat-output/ 目录下,提供一键复制功能。
第七步:询问是否发布
HTML 生成完成后,询问用户是否要发布到公众号:
HTML 已生成到
.wechat-output/article.html是否要发布到微信公众号?
- 输入 是 或 发布 → 调用 CDP 脚本发布
- 输入 否 或直接回车 → 结束流程
如用户选择发布,则调用本地发布脚本 scripts/publish.ts 完成自动化发布。
快速开始
基础用法(交互式)
输入以下命令对 Markdown 文件进行排版:
/wechat-format @article.md快捷用法(一次性配置)
在命令中直接指定主题和色系,跳过交互式提问:
# 指定主题,使用默认色系
/wechat-format @article.md --theme 橙韵
# 指定主题和自定义主色
/wechat-format @article.md --theme 蓝色专业 --color #10B981模板复刻模式
从公众号文章 URL 复刻排版风格,生成新主题:
/wechat-clone-theme https://mp.weixin.qq.com/s/xxxxx自然语言格式:
复刻这篇公众号的排版:https://mp.weixin.qq.com/s/xxxxx自然语言用法
或者使用自然语言:
- "帮我把 @report.md 格式化为公众号文章"
- "用橙韵风格排版 @深度解读.md"
- "用蓝色专业风格排版 @数据分析报告.md"
- "用贴纸风格排版 @使用技巧.md"
- "用橙韵风格、主色 #007AFF 排版 @article.md"
- "使用 Claude 风格,主色 #10B981 格式化 @绿色主题.md"
直接发布 HTML 到公众号
命令
使用 /wechat-post-html 命令将已生成的 HTML 直接发布到微信公众号:
/wechat-post-html .wechat-output/article.html注意: 此命令接受 HTML 文件,不进行 Markdown 转换。如需从 Markdown 生成并发布,请使用 /wechat-format 命令。
用法示例
# 发布已生成的 HTML
/wechat-post-html .wechat-output/article.html
# 带 manifest 文件(包含图片映射)
/wechat-post-html .wechat-output/article.html --manifest .wechat-output/manifest.json
# 带封面图
/wechat-post-html .wechat-output/article.html --cover ./cover.png前置要求
| 要求 | 说明 |
|---|---|
| Google Chrome | 必须安装,用于 CDP 自动化 |
| Bun 运行时 | 用于执行 TypeScript 脚本 |
| 首次登录 | 首次运行会打开浏览器,需扫码登录微信公众号后台(会话会被保留) |
| 图片准备 | 如使用图片占位符,需确保 manifest.json 中的路径正确 |
发布脚本
本 Skill 内置 CDP 发布脚本,无需依赖外部 skill:
npx -y bun scripts/publish.ts --html <path> [options]参数说明:
| 参数 | 说明 |
|---|---|
--html <path> |
HTML 文件路径(必需) |
--manifest <path> |
manifest.json 文件路径(可选,包含图片映射) |
--cover <path> |
封面图路径(可选) |
--profile <dir> |
Chrome profile 目录(可选,用于保持登录状态) |
发布流程
执行发布脚本后,自动完成以下步骤:
- 启动 Chrome - 使用 CDP 协议启动浏览器
- 登录检测 - 如未登录,等待用户扫码
- 创建草稿 - 点击"写图文"进入编辑器
- 粘贴内容 - 通过临时标签页复制 HTML 并粘贴
- 替换图片 - 依次替换
WECHATIMGPH_N占位符为实际图片 - 上传封面 - 如提供封面图,上传到封面位置
- 保存草稿 - 保存为草稿(不自动发布上线)
manifest.json 格式
/wechat-format 生成的 manifest.json 包含文章元信息和图片映射,供 /wechat-post-html 消费:
{
"title": "文章标题",
"contentImages": [
{
"placeholder": "WECHATIMGPH_1",
"localPath": "./images/fig1.png",
"originalPath": "./images/fig1.png"
},
{
"placeholder": "WECHATIMGPH_2",
"localPath": "./images/fig2.png",
"originalPath": "./images/fig2.png"
}
]
}| 字段 | 说明 |
|---|---|
title |
从 Markdown 提取的文章标题(H1 或 frontmatter) |
contentImages |
图片占位符数组 |
placeholder |
占位符文本,格式为 WECHATIMGPH_N |
localPath |
图片本地路径(相对于 .wechat-output/) |
originalPath |
图片在原 Markdown 中的路径 |
故障排查
| 问题 | 解决方案 |
|---|---|
| Chrome 未找到 | 安装 Chrome 或设置环境变量 CHROME_PATH |
| 未登录 | 首次运行会打开浏览器,扫码登录后会话会被保留 |
| 粘贴失败(macOS) | 检查辅助功能权限:系统偏好设置 → 安全性与隐私 → 隐私 → 辅助功能,添加终端应用 |
| 粘贴失败(内容为空) | 确保 HTML 文件包含 id="output" 的容器元素 |
| 图片替换失败 | 确认 manifest.json 中的图片路径正确且文件存在 |
| Bun 未安装 | 运行 npm install -g bun 或使用 npx -y bun |
主题详情
- Claude 风格(简约橙): 简约橙色主题,适合技术分享、深度思考类文章。详见 references/element-styles.md。
- 橙韵风格(杂志卡片): 渐变头图+卡片布局,适合深度解读、专题报道类文章。详见 references/chengyun-element-styles.md。
- 蓝色专业风格(商务数据): 蓝色渐变头图+白色卡片,适合数据分析、商业报告类文章。详见 references/blue-element-styles.md。
- 贴纸风格(旋转贴纸): 旋转贴纸编号+渐变头图,适合教程指南、技术解析类文章。详见 references/sticker-element-styles.md。
公众号 CSS 兼容性规范
转换时必须遵循 references/css-compatibility.md 中的兼容性规则(容器替换、背景色声明、代码块处理、字体继承等)。
输出文件说明
生成的产物将存放在 .wechat-output/ 目录下:
article.html: 可直接用浏览器打开并复制的预览页面。raw-content.txt: 纯 HTML 代码片段。
复制功能实现规范
生成的预览 HTML 必须包含标准复制函数(Clipboard API 主方案 + execCommand 降级)。详见 references/copy-function.md。
已知限制与注意事项
HTML 输出规范
生成的 HTML 必须满足以下要求才能正常发布:
| 要求 | 说明 |
|---|---|
| 容器 ID | 内容容器必须使用 id="output"(发布脚本依赖此 ID) |
| 样式内联 | 所有样式必须写在元素 style 属性中 |
| 图片占位符 | 格式为 WECHATIMGPH_N(N 从 1 开始) |
| ⚠️ 预览辅助元素禁入内容区 | 预览提示文字(如"微信公众号预览 · 贴纸风格")和复制按钮必须放在 #output 容器和 .preview-wrapper 外部,使用 position: fixed 定位。预览标签放左上角,复制按钮放右侧悬浮。这些元素不属于文章内容,绝不能出现在文章主体区域内 |
| ⚠️ 封面图位置 | 封面图(WECHATIMGPH_1)必须放在开篇白色卡片(前言段落)之后,不能放在前言之前。正确顺序:头部渐变区域 → 白色内容卡片(前言) → 封面图 → 正文分隔线 → 正文内容 |
macOS 权限问题
发布脚本使用 osascript 发送键盘事件(Cmd+V),首次运行需要授予辅助功能权限:
- 打开 系统偏好设置 → 安全性与隐私 → 隐私 → 辅助功能
- 添加你的终端应用(Terminal、iTerm2、VS Code 等)
- 重启终端后重试
检查权限状态:
# 查看当前授权的应用
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \
"SELECT client FROM access WHERE service='kTCCServiceAccessibility'"验证清单
转换完成后按 references/verification-checklist.md 逐项检查。
模板复刻模式
通过公众号文章 URL,自动分析提取排版风格,生成可复用的新主题。
触发方式
命令格式:
/wechat-clone-theme https://mp.weixin.qq.com/s/xxxxx自然语言格式:
复刻这篇公众号的排版:https://mp.weixin.qq.com/s/xxxxx
模板复刻:https://mp.weixin.qq.com/s/xxxxxURL 限制:仅支持
https://mp.weixin.qq.com/s/开头的公众号文章链接,其他 URL 将被拒绝。
第一步:URL 校验与抓取
校验 URL:必须是
https://mp.weixin.qq.com/s/开头,否则拒绝并提示用户提供正确的公众号文章链接。抓取文章 HTML:使用 webfetch 工具抓取文章内容,请求时设置标准浏览器 User-Agent。
异常处理:
- 返回 403 → 提示文章可能已被删除或需要登录才能访问
- 超时 → 重试一次,仍失败则提示网络问题
- 内容为空或非 HTML → 提示 URL 无效或文章内容不可用
提取文章标题:从
<h1>标签或<title>元素中提取,作为后续主题命名的参考信息。
第二步:样式分析与提取
对抓取到的 HTML 进行系统性样式分析,提取以下四类信息:
A. 配色方案提取
扫描所有内联 style 属性中的颜色声明(color、background-color、background、border-color、border-left 等),以及 <style> 标签中的规则(辅助参考)。
将提取的颜色归类,输出配色方案表:
| 色彩角色 | 色值 | 用途说明 |
|---|---|---|
| 主色 | #xxxx |
标题、强调、边框等核心元素 |
| 主色深 | #xxxx |
深色变体,用于悬停/对比 |
| 主色浅 | #xxxx |
浅色变体,用于背景/填充 |
| 强调色 | #xxxx |
高亮文字、链接、胶囊 |
| 背景浅 | #xxxx |
内容卡片背景 |
| 背景深 | #xxxx |
页面整体背景 |
| 正文色 | #xxxx |
段落正文颜色 |
| 标题色 | #xxxx |
各级标题颜色 |
| 辅助色 | #xxxx |
次要信息、引用文字 |
同时提取渐变定义(linear-gradient 的方向、色标值)用于头部区域重建。
B. 页面结构提取
识别页面的整体层级架构:
- 头部区域:渐变背景/纯色背景、标签胶囊、主标题、副标题等
- 内容卡片:白色或浅色圆角卡片,padding、border-radius、box-shadow(注意兼容性转换)
- 正文区域:文章正文段落、章节标题的排列方式
- 尾部:分隔线、版权信息、结尾装饰等(如有)
为每个结构层记录:容器标签类型、padding、margin、border-radius、background、宽度约束等参数。
绘制页面结构示意图(ASCII art),与现有主题格式保持一致,示例:
┌─────────────────────────────────────────────────┐
│ 外层容器 (section, max-width: 677px) │
│ ┌─────────────────────────────────────────────┐ │
│ │ 头部渐变区域 (background: linear-gradient) │ │
│ │ ┌─────────────────────────────────────────┐ │ │
│ │ │ 标签胶囊 + 主标题 + 副标题 │ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────┐ │
│ │ 内容白色卡片 (background: #ffffff) │ │
│ │ H2 章节 │ H3 小节 │ 段落 │ 列表 │ 表格 │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘C. 元素样式提取(15 类)
逐一提取以下 15 类元素的内联样式参数,与现有主题格式对齐:
| 序号 | 元素 | 关注参数 |
|---|---|---|
| 1 | 外层容器 | max-width、font-family、background |
| 2 | 头部区域 | background(渐变)、padding、border-radius |
| 3 | 头部标签/胶囊 | background、color、border-radius、padding、font-size |
| 4 | 主标题(H1) | font-size、font-weight、color、letter-spacing、margin |
| 5 | 章节标题(H2) | 装饰方式(左边框/序号方块/渐变背景)、font-size、color |
| 6 | 小节标题(H3) | font-size、font-weight、color、margin、装饰细节 |
| 7 | 段落(p) | font-size、line-height、letter-spacing、color、text-align |
| 8 | 强调文字(strong) | color、font-weight、背景色(如有) |
| 9 | 行内代码(code) | background、color、border-radius、padding、font-size |
| 10 | 代码块 | background、color、padding、border-radius、font-size |
| 11 | 引用块(blockquote) | border-left、background、color、padding |
| 12 | 无序列表(ul/li) | list-style、color、padding-left、line-height |
| 13 | 有序列表(ol/li) | list-style 或自定义序号、color、padding |
| 14 | 表格(table/th/td) | background、color、border、padding、font-size |
| 15 | 分隔线(hr) | border、background、height |
| 16 | 图片占位符 | 使用 WECHATIMGPH_N 格式(N 从 1 开始) |
D. 字号规范提取
统计各主要元素的 font-size 值,输出字号规范表:
| 元素 | 字号 |
|---|---|
| 正文段落 | 15px |
| H2 标题 | 18px |
| ... | ... |
第三步:缺失元素推导补全
目标文章中可能不包含所有 15 类元素。对未出现的元素执行推导:
推导规则:
- 颜色:基于已提取的配色方案,按
references/themes.md中的 HSL 派生逻辑推算色彩角色映射 - 间距:与已提取元素保持风格一致(如整体偏紧凑或偏宽松)
- 圆角:与已提取的卡片/胶囊圆角参数保持一致
- 结构模式:参照现有主题中该元素的典型实现
标注规则: 在生成的文档中,对推导补全的元素 HTML 模板添加 <!-- 推导补全 --> 注释,与实际提取的元素区分。
第四步:CSS 兼容性检查
对所有提取和推导的样式执行 references/css-compatibility.md 合规检查:
| 违规项 | 处理方式 |
|---|---|
display: flex / display: grid |
改为 table 布局 |
div 上的 background-color |
改为 table 或 section 元素 |
box-shadow |
移除或降级为 border |
transform |
保留但标注兼容性风险 |
var(--xxx) CSS 变量 |
替换为实际色值 |
@media 媒体查询 |
移除 |
white-space: pre-wrap in 代码块 |
改用 section + br + 方式 |
th/td 未声明 font-size |
显式添加 font-size |
tr 上的 background-color |
移至 td/th 上声明 |
第五步:预览确认
将分析结果完整展示给用户,包含以下内容:
- 配色方案表(主色/辅助色/背景色等,含具体色值)
- 页面结构示意图(ASCII art,反映实际抓取的结构)
- 各元素样式预览(展示关键元素的 HTML 模板片段)
- 推导补全标注(说明哪些元素未在原文出现,系推导生成)
- 推荐主题名称(基于视觉特征命名,如「渐变紫卡片」「极简黑白」「深蓝科技」)及推荐适用场景
- 主题冲突检测:检查
references/目录是否已存在同名文件({theme-name}-element-styles.md),若冲突则提示用户选择新名称
询问用户:
- 主题名称是否满意?或请输入自定义名称
- 样式是否需要调整?
- 确认后将写入文件,是否继续?
等待用户确认后再执行第六步写入操作。
第六步:写入与注册
用户确认后,依次完成以下操作:
1. 生成主题文档
创建 references/{theme-name}-element-styles.md,格式完全对齐现有主题文档结构:
- 配色方案表
- 色系派生变量表
- 字号规范表
- 页面结构示意图(ASCII art)
- 15 类元素 HTML 模板(推导补全的标注
<!-- 推导补全 -->) - 约束与规范(参照
references/css-compatibility.md)
2. 更新主题注册表
在 references/themes.md 末尾新增主题条目,参照现有条目格式,包含:
- 主题名称和一句话描述
- 来源文章 URL(复刻自:...)
- 配色方案摘要
- 核心元素样式说明
- 页面结构 ASCII art
- 适用场景
3. 更新 SKILL.md
- 在「第一步:主题选择」表格中新增该主题的行(名称、特点、适用场景)
- 在「第四步:分段转换」的主题→样式文件映射列表中新增对应条目
注意:模板复刻模式仅产出主题文档,不自动触发排版发布流程。如需使用新主题排版文章,请使用
/wechat-format命令并选择该主题。