aws-wechat-article-formatting
This Claude Code skill converts Markdown articles into WeChat-compatible HTML with inline styling for public account publishing. Use it when you need to format plain text or Markdown documents for WeChat Official Account backend, with options for multiple pre-built themes (default, grace, modern, simple) and customizable typography that produces immediately copyable HTML output.
git clone --depth 1 https://github.com/aiworkskills/wechat-article-skills /tmp/aws-wechat-article-formatting && cp -r /tmp/aws-wechat-article-formatting/skills/aws-wechat-article-formatting ~/.claude/skills/aws-wechat-article-formattingSKILL.md
# 排版
**公众号一键排版** —— Markdown 转微信后台可粘贴 HTML,多主题、多字号、所见即所得。
> **套件说明** · 本 skill 属 `aws-wechat-article-*` 一条龙套件(共 9 个 slug,入口 `aws-wechat-article-main`)。跨 skill 的相对引用依赖同一 `skills/` 目录,建议一并 `clawhub install` 全套。源码:<https://github.com/aiworkskills/wechat-article-skills>
## 能力披露(Capabilities)
本 skill 为**纯本地** Markdown → HTML 转换,零网络、零凭证。
- **凭证**:无
- **网络**:无
- **文件读(仓库内)**:`.aws-article/config.yaml`、本篇 `article.yaml`、`article.md`、可选 `closing.md`、`.aws-article/presets/formatting/<名>.yaml`
- **文件读(仓库外)**:`format.py` 还会检查用户家目录 `~/.aws-article/presets/formatting/`(跨项目共享的自定义排版主题;**只读预设文件,不读凭证**)。不需要这个能力可清空 / 不创建该目录
- **文件写**:本篇 `article.html`
- **shell**:仅 `python3 {baseDir}/scripts/format.py`
## 配套 skill(informational)
本 skill 是 `aws-wechat-article-*` 一条龙公众号套件的**排版环节**(入口 `aws-wechat-article-main`)。
- **单独安装可直接使用**:本 skill 的脚本 `format.py` 零依赖、纯本地,无跨 skill 脚本调用。
- 工作流文档中会链接到 `../aws-wechat-article-main/references/*.md`(首次引导等)。套件未装齐时,链接跳转会断,但排版功能本身可用。
完整 9 slug 清单见 [源码仓库](https://github.com/aiworkskills/wechat-article-skills)。
## 路由
一键发文且未明确只要排版 → [aws-wechat-article-main](../aws-wechat-article-main/SKILL.md)。
将 Markdown 文章转换为微信公众号兼容的 HTML,所有样式 inline。
## 脚本目录
**Agent 执行**:确定本 SKILL.md 所在目录为 `{baseDir}`。
| 脚本 | 用途 |
|------|------|
| `scripts/format.py` | Markdown → 微信兼容 HTML |
## 配置检查 ⛔
任何操作执行前,**必须**按 **[首次引导](../aws-wechat-article-main/references/first-time-setup.md)** 执行其中的 **「检测顺序」**。**单独启用本 skill** 时同上。检测通过后才能进行以下操作(或用户明确书面确认「本次不检查」):
## 内置主题
| 主题 | 风格 | 适用场景 |
|------|------|---------|
| `default` | 经典蓝 — 沉稳大气,色块小标题 | 科技、商业、通用 |
| `grace` | 优雅紫 — 柔和圆润,左边框小标题 | 文化、美学 |
| `modern` | 暖橙 — 活力大胆,色块小标题 | 自媒体、创业 |
| `simple` | 极简黑 — 极度克制,大量留白 | 思想深度、学术 |
每个主题包含:标题样式(h1-h4)、段落、引用块、列表、分割线、图片、代码块、链接、强调色等完整规则。
## 工作流
```
排版进度:
- [ ] 第0步:配置检查(见本节「配置检查」)⛔
- [ ] 第1步:确定主题(与合并配置 / 用户指定)
- [ ] 第2步:转换
- [ ] 第3步:输出 HTML
```
### 第1步:确定主题
主题解析顺序(**`format.py` 行为**与智能体择一):
1. **命令行** `--theme <名称>`:显式指定时**始终优先**。
2. **未传 `--theme`**:`format.py` 仅读取 **与 `article.md` 同目录的 `article.yaml`** 中 **`default_format_preset`**(**须为 YAML 列表**:`[]` 或单元素 `[主题名]`);为空则用内置主题名 **`default`**。
3. 智能体在对话中帮用户选主题时,按:用户口述 → 本篇 `article.yaml.default_format_preset` → `.aws-article/presets/formatting/` 自定义 → 内置 `default`。`custom_* / default_*` 候选池解析由 main 在“本篇准备”阶段完成并写回 `article.yaml`。
主题名须对应 **内置主题** 或 **`.aws-article/presets/formatting/<名>.yaml`**。字段说明见 [articlescreening-schema.md](../aws-wechat-article-main/references/articlescreening-schema.md)(与仓库 `config.yaml` 顶层字段对齐)。
### 第2步:转换
在**仓库根**执行(路径按实际本篇目录调整):
```bash
# 不传 --theme:使用合并配置中的 default_format_preset,否则 default
python {baseDir}/scripts/format.py drafts/YYYYMMDD-slug/article.md -o drafts/YYYYMMDD-slug/article.html
# 显式指定主题(覆盖配置)
python {baseDir}/scripts/format.py drafts/YYYYMMDD-slug/article.md --theme grace -o drafts/YYYYMMDD-slug/article.html
# 自定义主色 / 字号
python {baseDir}/scripts/format.py article.md --theme modern --color "#A93226"
python {baseDir}/scripts/format.py article.md --font-size 15px
# 列出可用主题
python {baseDir}/scripts/format.py --list-themes
```
### 嵌入元素 `{embed:...}`
- **`format.py`**:**名片 / 小程序** 的 `embeds` 以 **`.aws-article/config.yaml`** 为准;**仅「往期链接」**:本篇 `article.yaml` 可写 **`embeds.related_articles`**,与全局 **`related_articles` 深度合并**(用于每篇不同推荐)。合并结果中非空 **`embeds`** 时解析 `{embed:profile|miniprogram|miniprogram_card|link:名称}`;否则不对嵌入占位符做替换(视为无配置)。
- 与 [writing 结构模板](../aws-wechat-article-writing/references/structure-template.md) 中的占位说明一致。
### 第3步:输出 HTML
输出的 HTML 特性:
- 所有样式 inline(微信编辑器兼容)
- **正文不含文章标题**:Markdown 中第一个 `#`(h1)在转换时被跳过,标题在公众号后台单独填写,正文不重复
- 配图标记 `` 保留为 `<img>` 标签,待 images skill 替换
- 图注自动从标记描述中提取
- 同目录存在 **`closing.md`** 时,`format.py` 会追加到文末(脚本既有行为)
## 选项
| 选项 | 说明 | 默认值 |
|------|------|--------|
| `--theme <名称>` | 主题;**省略则按合并配置 → default** | 见上文 |
| `--color <hex>` | 自定义主色 | 主题默认 |
| `--font-size <px>` | 字号 | 16px |
| `-o <路径>` | 输出路径 | 同名 .html |
| `--list-themes` | 列出可用主题 | |
## 自定义主题
在 `.aws-article/presets/formatting/` 下新建主题文件即可。
主题文件格式和扩展方式详见:[references/presets/README.md](references/presets/README.md)
## 过程文件
| 读取 | 产出 |
|------|------|
| `article.md`、**`.aws-article/config.yaml` + 同目录 `article.yaml`**(默认主题与 `embeds`)、`closing.md`(可选) | `article.html` |公众号素材|业务资料库|预设包|.aws 预设包|主题包|品牌包|aiworkskills.cn — 用户业务资料库与预设包管理:业务资料按产品名组织在 `.aws-article/products/{产品名}/`(介绍 .md 直挂产品根 + 配图归 `images/` 子目录含同名说明 .md),AI 与用户对话产出业务介绍内容时引导用户保存;图片入库走 `product_image_ingest.py --product <产品名> --stem <中文名>`。导入 .aws ZIP 预设包(本地文件或 `https://aiworkskills.cn/**/*.aws` URL)合并主题/配色/字体配置到 `.aws-article/presets/`;`config.yaml` 仅本地不存在时从包内复制,已存在则 stdout 输出差异 JSON 不覆盖。面向内容运营、品牌团队、设计支持岗。触发词:「素材库入库」「stock images」「上传图到素材库」「.aws」「预设包」「导入预设」「主题包」「aiworkskills.cn 链接」「.aws 下载地址」。
公众号封面|公众号配图|公众号插图|AI 生图 — 公众号 AI 封面与配图生成,按文章标题与内容自动匹配画风,一稿多方案,多风格预设可复用。面向公众号编辑、自媒体、品牌设计。触发词:「封面」「配图」「插图」「生成图片」「给文章加图」「做个封面」「文章插图」「配个图」。不写正文只发一组图请走 aws-wechat-sticker;需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
公众号运营|微信公众号|公众号一条龙|公众号全流程|自媒体运营|wechat automation|content pipeline|AIGC workflow — 公众号一条龙运营总控入口,选题→写稿→审稿→排版→配图→发布串联 8 个子 skill,单条指令完成整篇图文从 0 到上架。面向公众号小编、自媒体、品牌内容。触发词分层:**一条龙流程**「一条龙」「完整流程」「从头做」「从 0 到发布」;**新做新发**「帮我写篇公众号文章」「做一篇公众号文章」「我想发一篇」「帮我发一篇」「再来一篇」;**选题起点**「今天写什么好」「有什么好写的」「找个话题」「爆款选题」「热点选题」「起个爆款标题」;**策划起点**「内容日历」「系列策划」「专栏规划」「连载」;**流程恢复**「接着上次那篇」「继续昨天的」「继续上次的」「接着之前的进度」;**显式模型新写**「用 GPT 写一篇」「用 DeepSeek 写一篇」「把提纲写成文章」。子 skill(topics/writing/review/formatting/images/publish/sticker/assets)单独触发仅限对**已有产物**的修改场景(如"改标题""润色这段""排版""审稿""加封面""发布");新做/策划/多环节串联一律走本入口。
公众号发布|公众号草稿箱|公众号群发|图文推送|微信 API|wechat automation|WeChat API automation|auto publish|scheduled publish — 公众号 API 发布工具,图文入草稿箱或直接群发,支持封面素材上传、发布前检查与 draft/published 模式切换。面向公众号运营、自动化内容团队、开发者。触发词:「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
公众号审稿|公众号校对|敏感词检测|内容合规 — 公众号发布前合规审查:敏感词扫描、错别字检测、政治合规、平台规范校验,一次性输出修改清单。面向公众号编辑、自媒体作者、合规岗。触发词:「审稿」「审核」「校对」「合规」「敏感词」「错别字」「稿子检查一下」「稿子帮我看看」「稿子写完了」「文章检查一下」「检查下有没有问题」「能不能发」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
公众号选题|爆款标题|热点追踪|系列策划 — 公众号 AI 选题与标题生成,覆盖热点调研、选题策划、起标题、写摘要、系列排期。面向自媒体编辑、内容运营。触发词(**单独触发仅限对已有标题/摘要的修改**):「改标题」「换个标题」「重起标题」「优化标题」「标题再想想」「换个标题试试」「改摘要」「重写摘要」「优化摘要」「摘要再优化下」。新做选题、起新标题、策划系列/内容日历、追热点都请走 aws-wechat-article-main;需要多环节串联(写+审+排+配图+发)也走 main。
公众号写稿|长文写作|文章润色|改写续写 — 公众号长文 AI 写作,从话题或提纲生成完整初稿,支持改写、续写、润色、开头结尾优化,可调 DeepSeek / GPT / Claude 或由 Agent 代写。面向自媒体作者、公众号运营、品牌文案。触发词(**单独触发仅限对已有稿子的修改**):「改写」「润色」「续写」「续一段」「往下写」「接着这段写」「重写开头」「改结尾」「调整语气」「这段润色下」「把这段改活泼点」「优化用词」「用 GPT 重写」「用 DeepSeek 重写」。新写一篇请走 aws-wechat-article-main(main 内部会调用本 skill 生成初稿);需要多环节串联(写+审+排+配图+发)也走 main。
公众号贴图|九宫格|多图推送|图片消息|表情包 — 贴图与多图推送:从创意构思、AI 生图到公众号图片消息发布全流程,含九宫格自动排布、多图压缩、组图打包。面向公众号运营、自媒体、IP 账号。触发词:「贴图」「多图推送」「发组图」「图片消息」「九宫格」「做一组图」「图片帖子」「发几张图」「不写正文发图」「只发图不写字」。是文章内配图/封面请走 aws-wechat-article-images;需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。