aws-wechat-article-formatting
公众号排版|Markdown 转 HTML|排版主题|段落样式 — 公众号一键排版工具,Markdown 文稿转微信后台可粘贴 HTML,多主题、多字号、段落样式切换,所见即所得。面向公众号编辑、独立作者、排版岗。触发词:「排版」「版式」「美化」「格式化」「字号」「段落样式」「换个排版主题」「换…
它会碰到什么
逐条看命中(30 条严重或高危)
- 严重
references/branches.md:29cred-paths内置组件在 [components/](components/),用户自定义放 `.aws-article/presets/components/<名>.yaml`。组件还可**按骨架整套替换**:`components/<骨架名>/<组件名>.yaml`。
- 严重
references/branches.md:52cred-paths脚本**不直接读** `.aws-article/config.yaml`——全局的 `custom_format_preset` / `default_format_preset` 候选池由 main 在「本篇准备」阶段收敛后写回 `article.yaml`。
- 严重
references/branches.md:54cred-paths智能体在对话里帮用户选主题时按:用户口述 → 本篇 `article.yaml.default_format_preset` → `.aws-article/presets/formatting/` 自定义 → 内置 `亲和`。
- 严重
references/branches.md:56cred-paths主题名须对应内置模版或 `.aws-article/presets/formatting/<名>.yaml`。字段说明见 [articlescreening-schema.md](../../aws-wechat-article-main/references/articlescreening-schema.md)。
- 严重
references/branches.md:64cred-paths在 `.aws-article/presets/formatting/` 下新建主题文件即可。快速起步是导出一套现成的改:
- 严重
references/branches.md:67cred-paths{python} {baseDir}/scripts/format.py --export-theme 亲和 > .aws-article/presets/formatting/my-brand.yaml - 严重
references/branches.md:70cred-paths`format.py` 还会检查用户家目录 `~/.aws-article/presets/formatting/`(跨项目共享的自定义主题,**只读预设文件,不读凭证**)。不需要这个能力可清空 / 不创建该目录。
- 严重
references/branches.md:78cred-paths- **名片 / 小程序**的 `embeds` 以 `.aws-article/config.yaml` 为准。
- 严重
references/presets/README.md:5cred-paths不传 `--theme` 时,**`format.py`** 只读取与 `article.md` 同目录 **`article.yaml`** 的 **`default_format_preset`**(不直接读 `.aws-article/config.yaml`;全局 `custom_format_preset`
- 严重
references/presets/README.md:23cred-paths`templates/` 下另外四套(活力 / 手账 / 硬朗 / 技术)不进内置搜索路径,经网站 `.aws` 预设包下发到
- 严重
references/presets/README.md:24cred-paths`.aws-article/presets/formatting/`。两处 YAML 是网站系统预设的**唯一真源**——网站仓库
- 严重
references/presets/README.md:33cred-paths在 `.aws-article/presets/formatting/` 下创建 `.yaml` 文件即可:
- 严重
references/presets/README.md:36cred-paths# .aws-article/presets/formatting/my-brand.yaml
- 严重
references/presets/README.md:78cred-paths{python} format.py --export-theme default > .aws-article/presets/formatting/my-brand.yaml - 严重
references/presets/templates/README.md:4cred-paths这四套由 aiworkskills.cn 的预设包(`.aws`)下发到用户的 `.aws-article/presets/formatting/`。
- 严重
references/presets/templates/README.md:4cred-paths这四套由 aiworkskills.cn 的预设包(`.aws`)下发到用户的 `.aws-article/presets/formatting/`。
- 严重
references/presets/templates/README.md:18cred-paths本地要直接用:复制到 `.aws-article/presets/formatting/` 即可。
- 严重
scripts/format.py:8cred-paths1. .aws-article/presets/formatting/<主题名>.yaml(用户自定义)
- 严重
scripts/format.py:39cred-paths# 内置只留四套默认模版(亲和 / 资讯 / 书卷 / 杂志);其余四套由网站以 .aws 预设包下发到用户目录。
- 严重
scripts/format.py:48cred-pathsPath(".aws-article/presets/formatting"), - 严重
scripts/format.py:49cred-pathsPath.home() / ".aws-article" / "presets" / "formatting",
- 严重
scripts/format.py:58cred-pathsUSER_COMPONENTS_DIR = Path(".aws-article/presets/components") - 严重
scripts/format.py:171cred-pathsf"创建自定义主题:在 .aws-article/presets/formatting/ 下新建 {name}.yaml" - 严重
scripts/format.py:371cred-paths合并:.aws-article/config.yaml(顶层,不含 writing_model/image_model)
- 严重
scripts/format.py:376cred-pathscfg_path = Path(".aws-article/config.yaml") - 严重
scripts/format.py:380cred-pathsprint(f"[WARN] 未在当前工作目录下找到 .aws-article/config.yaml(当前目录:{Path.cwd()})," - 严重
scripts/format.py:1850cred-pathshelp="以 YAML 导出主题(合并默认变量与样式),可重定向到 .aws-article/presets/formatting/<名>.yaml 后修改",
- 严重
SKILL.md:26cred-paths- **文件读(仓库内)**:`.aws-article/config.yaml`、本篇 `article.yaml`、`article.md`、可选 `closing.md`、`.aws-article/presets/formatting/<名>.yaml`
- 严重
SKILL.md:26cred-paths- **文件读(仓库内)**:`.aws-article/config.yaml`、本篇 `article.yaml`、`article.md`、可选 `closing.md`、`.aws-article/presets/formatting/<名>.yaml`
- 严重
SKILL.md:27cred-paths- **文件读(仓库外)**:`~/.aws-article/presets/formatting/`(跨项目共享的自定义主题;**只读预设文件,不读凭证**)
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
排版
公众号一键排版 —— 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 - 文件读(仓库外):
~/.aws-article/presets/formatting/(跨项目共享的自定义主题;只读预设文件,不读凭证) - 文件写:本篇
article.html - shell:仅
{python} {baseDir}/scripts/format.py
单独安装可直接使用:format.py 零依赖、纯本地,无跨 skill 脚本调用。文档里指向 ../aws-wechat-article-main/references/*.md 的链接在套件未装齐时会断,但排版功能本身可用。
路由
一键发文且未明确只要排版 → [aws-wechat-article-main](../aws-wechat-article-main/SKILL.md)。
配置检查 ⛔
任何操作前先按 [首次引导 · 检测顺序](../aws-wechat-article-main/references/first-time-setup.md) 执行,通过后才继续(或用户明确书面确认「本次不检查」)。单独启用本 skill 时同样。
内置模版
排版 = 模版(骨架:标题装饰、导语、金句卡、图片处理、分隔、文末)× 配色(一组主色/次色,派生色自动重算)。名字即用途,选之前先看「适合」:
| 模版 | 适合 | 不适合 | 配色(第一个是默认) |
|------|------|--------|---------|
| 亲和 | 教程、职场、面向新手的解释性长文 | 严肃议题、极简冷硬的品牌 | 黛紫 / 松绿 / 靛蓝 |
| 资讯 | 快讯、评测、行业观察 | 抒情散文、碎片化短段 | 墨绿 / 绛红 / 藏青 |
| 书卷 | 人文、读书、历史、深度长文 | 工程文档、数据密集的评测 | 朱砂 / 黛蓝 / 苍绿 |
| 杂志 | 品牌故事、人物访谈、生活方式 | 没有配图的稿子、信息型短文 | 石青 / 驼褐 / 铁锈 |
不传 --theme 时的内置默认是 亲和。
另外四套不随 skill 内置,在 aiworkskills.cn 选好模版和配色后随 .aws 预设包下发到 .aws-article/presets/formatting/(见 [assets skill](../aws-wechat-article-assets/SKILL.md)):活力(产品发布、增长复盘)、手账(个人笔记、复盘)、硬朗(观点、宣言)、技术(工程实践、代码讲解)。网站上选的配色会烘进 YAML 顶层 variables,落地后不需要额外配置。
选之前先跑一次,判据、色值、每套配色的口径都在输出里,别只按名字猜:
{python} {baseDir}/scripts/format.py --list-themes
说不清就看:--preview 把样张渲成并列对照页(每栏 375px,与真机同宽),用浏览器打开。
{python} {baseDir}/scripts/format.py --preview 亲和 -o preview.html # 该模版的每套配色并列
{python} {baseDir}/scripts/format.py --preview -o preview.html # 所有模版的默认色并列
线上同一批预览:https://aiworkskills.cn/format-previews/<骨架>/<配色序号>.html,骨架名见 --list-themes。
换配色:--scheme <配色名>,或本篇 article.yaml 写 default_format_scheme: [松绿](单元素列表,由 main 的本篇预设落盘步骤写入)。
图注只认显式写的 title ⛔

括号里路径之后引号中的才是图注。alt 冒号后那段是画面指令,不会显示给读者。
早先的实现拿画面指令兼任图注,产出过这种东西:图上画着一个人站在 99.9 的牌子前望向远方,图注写「开发者站在巨型 99.9 分数牌前,视线越过分数望向复杂而开放的城市与工作现场」——把读者眼睛已经看见的复述一遍,零信息;图没生成出来时更会同一句话出现两次(破图 alt 一次、图注一次)。
没写 title 就不出图注,这是有意的:绝大多数图不需要图注,错的图注比没有更糟。图注该补充画面之外的东西——数据出处、一句判断、反常识的细节。
出不出图注还受合并配置的 caption_style 控制:有图注 全出、无图注 全不出、关键图有 只有信息位的图(信息图 / 实证)出。
从标准 markdown 认形态(主路径)
写作侧只产出标准 markdown,识别结构是排版层的事。让写手同时掌握标准 markdown 和一套私有语法就是耦合,而且那套语法只有本套件认得,稿子换个工具就废了。
渲染器会认这些形态,作者不用写任何特殊语法:
| 作者写的标准 markdown | 排版层做的事 |
|---|---|
| 加粗 | 上本模版的重点色或荧光底——正文里唯一的扫读落点 |
| - 标签:说明 | 标签在视觉上提出来(真稿里 62% 的列表项是这个形状) |
| - [ ] / - [x] | 换成该骨架的三态图标 |
| > 金句。 —— 出处 | 排成金句卡(正文位、带破折号出处的引用) |
| > 引文 | 前面补一个大引号 |
|  | 四角标 + 图注 |
| --- | 装饰分隔 |
| ## | 标题装饰(笔锋 / 折角块) |
只认形态,不推断语义。 有序列表在 markdown 里只表示「枚举」不表示「顺序」,所以不会因为看见 1. 2. 3. 就渲染成「第一步 第二步」——那是替作者断言一个他没说的顺序。真稿实测:三组多项有序列表里只有一组真有先后。
::: 组件语法排版侧仍然认,但写手不再产出——细则见 [branches.md「一」](references/branches.md)。
工作流
排版进度:
- [ ] 第0步:⛔ 配置检查
- [ ] 第1步:确定模版与配色
- [ ] 第2步:转换
- [ ] 第3步:核对输出
第1步:确定模版与配色
--theme 显式指定最优先;不传则读本篇 article.yaml 的 default_format_preset(单元素列表),再无则内置默认 亲和。完整解析顺序与配色的同套规则见 [branches.md「二」](references/branches.md)。
第2步:转换
在仓库根执行(路径按实际本篇目录调整):
# 不传 --theme:读本篇 default_format_preset,否则 亲和
{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 资讯 --scheme 绛红 -o drafts/YYYYMMDD-slug/article.html
# 自定义主色 / 字号
{python} {baseDir}/scripts/format.py article.md --color '#C0392B'
{python} {baseDir}/scripts/format.py article.md --font-size 15px
文末 {embed:…} 的合并规则见 [branches.md「四」](references/branches.md)——占位符与配置对不上会直接失败。
第3步:核对输出
- 正文不含文章标题(
article.md的首个#被跳过,标题在后台单独填)。 - 配图标记还是
placeholder时保留为<img>,等 [images skill](../aws-wechat-article-images/SKILL.md) 替换——终审前必须全部换成真实路径。 - 其余输出特性(
closing.md追加、预格式化范围、表格对齐)见 [branches.md「五」](references/branches.md)。
选项
| 选项 | 说明 | 默认值 |
|------|------|--------|
| --theme <名称> | 模版;省略则按本篇配置 → 内置 亲和 | 亲和 |
| --scheme <配色名> | 模版的配色(见 --list-themes);省略则读本篇 default_format_scheme,再无则模版默认色 | 模版默认 |
| --color <hex> | 自定义主色 | 主题默认 |
| --font-size <px> | 正文字号(同时覆盖主题 p / li 里的字号) | 16px |
| -o <路径> | 输出路径 | 同名 .html |
| --list-themes | 列出模版:长相、适合/不适合、每套配色的色值与口径 | |
| --preview [模版名] | 渲成并列对照页(给模版名则并列它的每套配色,不给则并列所有模版) | |
| --export-theme <名称> | 以 YAML 导出主题,可作为自定义主题起点 | |
| --no-preformat | 跳过 Markdown 预格式化 | |
分支与细则
::: 组件与查找顺序、主题解析完整顺序、自定义主题、{embed:…} 合并规则、输出细节、设计新版式前的微信 HTML 限制 → [references/branches.md](references/branches.md)。
过程文件
| 读取 | 产出 |
|------|------|
| article.md、.aws-article/config.yaml + 同目录 article.yaml(默认模版与 embeds)、closing.md(可选) | article.html |
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
skills/aws-wechat-article-formatting/SKILL.md