{"id":"cc3f56f6-a4d7-474c-bfd8-8a87a69296c0","shortId":"WsjHHG","kind":"skill","title":"aws-wechat-article-formatting","tagline":"公众号排版｜Markdown 转 HTML｜排版主题｜段落样式 — 公众号一键排版工具，Markdown 文稿转微信后台可粘贴 HTML，多主题、多字号、段落样式切换，所见即所得。面向公众号编辑、独立作者、排版岗。触发词：「排版」「版式」「美化」「格式化」「字号」「段落样式」「换个排版主题」「换个版式」「转 HTML」「弄好看点」「调整格式」。换预设包/品牌包/整套主题配色请走 aws-wechat-article-assets；需要多环节串联（写+审+排+配图+发）请走 aws-wechat-article-main。","description":"# 排版\n\n**公众号一键排版** —— Markdown 转微信后台可粘贴 HTML，多主题、多字号、所见即所得。\n\n> **套件说明** · 本 skill 属 `aws-wechat-article-*` 一条龙套件（共 9 个 slug，入口 `aws-wechat-article-main`）。跨 skill 的相对引用依赖同一 `skills/` 目录，建议一并 `clawhub install` 全套。源码：<https://github.com/aiworkskills/wechat-article-skills>\n\n## 能力披露（Capabilities）\n\n本 skill 为**纯本地** Markdown → HTML 转换，零网络、零凭证。\n\n- **凭证**：无\n- **网络**：无\n- **文件读（仓库内）**：`.aws-article/config.yaml`、本篇 `article.yaml`、`article.md`、可选 `closing.md`、`.aws-article/presets/formatting/<名>.yaml`\n- **文件读（仓库外）**：`format.py` 还会检查用户家目录 `~/.aws-article/presets/formatting/`（跨项目共享的自定义排版主题；**只读预设文件，不读凭证**）。不需要这个能力可清空 / 不创建该目录\n- **文件写**：本篇 `article.html`\n- **shell**：仅 `python3 {baseDir}/scripts/format.py`\n\n## 配套 skill（informational）\n\n本 skill 是 `aws-wechat-article-*` 一条龙公众号套件的**排版环节**（入口 `aws-wechat-article-main`）。\n\n- **单独安装可直接使用**：本 skill 的脚本 `format.py` 零依赖、纯本地，无跨 skill 脚本调用。\n- 工作流文档中会链接到 `../aws-wechat-article-main/references/*.md`（首次引导等）。套件未装齐时，链接跳转会断，但排版功能本身可用。\n\n完整 9 slug 清单见 [源码仓库](https://github.com/aiworkskills/wechat-article-skills)。\n\n## 路由\n\n一键发文且未明确只要排版 → [aws-wechat-article-main](../aws-wechat-article-main/SKILL.md)。\n\n将 Markdown 文章转换为微信公众号兼容的 HTML，所有样式 inline。\n\n## 脚本目录\n\n**Agent 执行**：确定本 SKILL.md 所在目录为 `{baseDir}`。\n\n| 脚本 | 用途 |\n|------|------|\n| `scripts/format.py` | Markdown → 微信兼容 HTML |\n\n## 配置检查 ⛔\n\n任何操作执行前，**必须**按 **[首次引导](../aws-wechat-article-main/references/first-time-setup.md)** 执行其中的 **「检测顺序」**。**单独启用本 skill** 时同上。检测通过后才能进行以下操作（或用户明确书面确认「本次不检查」）：\n\n\n## 内置主题\n\n| 主题 | 风格 | 适用场景 |\n|------|------|---------|\n| `default` | 经典蓝 — 沉稳大气，色块小标题 | 科技、商业、通用 |\n| `grace` | 优雅紫 — 柔和圆润，左边框小标题 | 文化、美学 |\n| `modern` | 暖橙 — 活力大胆，色块小标题 | 自媒体、创业 |\n| `simple` | 极简黑 — 极度克制，大量留白 | 思想深度、学术 |\n\n每个主题包含：标题样式（h1-h4）、段落、引用块、列表、分割线、图片、代码块、链接、强调色等完整规则。\n\n## 工作流\n\n```\n排版进度：\n- [ ] 第0步：配置检查（见本节「配置检查」）⛔\n- [ ] 第1步：确定主题（与合并配置 / 用户指定）\n- [ ] 第2步：转换\n- [ ] 第3步：输出 HTML\n```\n\n### 第1步：确定主题\n\n主题解析顺序（**`format.py` 行为**与智能体择一）：\n\n1. **命令行** `--theme <名称>`：显式指定时**始终优先**。\n2. **未传 `--theme`**：`format.py` 仅读取 **与 `article.md` 同目录的 `article.yaml`** 中 **`default_format_preset`**（**须为 YAML 列表**：`[]` 或单元素 `[主题名]`）；为空则用内置主题名 **`default`**。\n3. 智能体在对话中帮用户选主题时，按：用户口述 → 本篇 `article.yaml.default_format_preset` → `.aws-article/presets/formatting/` 自定义 → 内置 `default`。`custom_* / default_*` 候选池解析由 main 在“本篇准备”阶段完成并写回 `article.yaml`。\n\n主题名须对应 **内置主题** 或 **`.aws-article/presets/formatting/<名>.yaml`**。字段说明见 [articlescreening-schema.md](../aws-wechat-article-main/references/articlescreening-schema.md)（与仓库 `config.yaml` 顶层字段对齐）。\n\n### 第2步：转换\n\n在**仓库根**执行（路径按实际本篇目录调整）：\n\n```bash\n# 不传 --theme：使用合并配置中的 default_format_preset，否则 default\npython {baseDir}/scripts/format.py drafts/YYYYMMDD-slug/article.md -o drafts/YYYYMMDD-slug/article.html\n\n# 显式指定主题（覆盖配置）\npython {baseDir}/scripts/format.py drafts/YYYYMMDD-slug/article.md --theme grace -o drafts/YYYYMMDD-slug/article.html\n\n# 自定义主色 / 字号\npython {baseDir}/scripts/format.py article.md --theme modern --color \"#A93226\"\npython {baseDir}/scripts/format.py article.md --font-size 15px\n\n# 列出可用主题\npython {baseDir}/scripts/format.py --list-themes\n```\n\n### 嵌入元素 `{embed:...}`\n\n- **`format.py`**：**名片 / 小程序** 的 `embeds` 以 **`.aws-article/config.yaml`** 为准；**仅「往期链接」**：本篇 `article.yaml` 可写 **`embeds.related_articles`**，与全局 **`related_articles` 深度合并**（用于每篇不同推荐）。合并结果中非空 **`embeds`** 时解析 `{embed:profile|miniprogram|miniprogram_card|link:名称}`；否则不对嵌入占位符做替换（视为无配置）。\n- 与 [writing 结构模板](../aws-wechat-article-writing/references/structure-template.md) 中的占位说明一致。\n\n### 第3步：输出 HTML\n\n输出的 HTML 特性：\n- 所有样式 inline（微信编辑器兼容）\n- **正文不含文章标题**：Markdown 中第一个 `#`（h1）在转换时被跳过，标题在公众号后台单独填写，正文不重复\n- 配图标记 `![类型：描述](placeholder)` 保留为 `<img>` 标签，待 images skill 替换\n- 图注自动从标记描述中提取\n- 同目录存在 **`closing.md`** 时，`format.py` 会追加到文末（脚本既有行为）\n\n## 选项\n\n| 选项 | 说明 | 默认值 |\n|------|------|--------|\n| `--theme <名称>` | 主题；**省略则按合并配置 → default** | 见上文 |\n| `--color <hex>` | 自定义主色 | 主题默认 |\n| `--font-size <px>` | 字号 | 16px |\n| `-o <路径>` | 输出路径 | 同名 .html |\n| `--list-themes` | 列出可用主题 | |\n\n## 自定义主题\n\n在 `.aws-article/presets/formatting/` 下新建主题文件即可。\n\n主题文件格式和扩展方式详见：[references/presets/README.md](references/presets/README.md)\n\n## 过程文件\n\n| 读取 | 产出 |\n|------|------|\n| `article.md`、**`.aws-article/config.yaml` + 同目录 `article.yaml`**（默认主题与 `embeds`）、`closing.md`（可选） | `article.html` |","tags":["aws","wechat","article","formatting","skills","aiworkskills","agent-skills","ai-skills","ai-writing","chinese-nlp","codex","content-automation"],"capabilities":["skill","source-aiworkskills","skill-aws-wechat-article-formatting","topic-agent-skills","topic-ai-skills","topic-ai-writing","topic-chinese-nlp","topic-codex","topic-content-automation","topic-content-creation","topic-copywriting","topic-llm","topic-markdown-to-html","topic-openclaw","topic-wechat"],"categories":["wechat-article-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/aiworkskills/wechat-article-skills/aws-wechat-article-formatting","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add aiworkskills/wechat-article-skills","source_repo":"https://github.com/aiworkskills/wechat-article-skills","install_from":"skills.sh"}},"qualityScore":"0.469","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 39 github stars · SKILL.md body (4,233 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:58:26.872Z","embedding":null,"createdAt":"2026-04-21T19:04:11.572Z","updatedAt":"2026-05-18T18:58:26.872Z","lastSeenAt":"2026-05-18T18:58:26.872Z","tsv":"'/.aws-article/presets/formatting':132 '/aiworkskills/wechat-article-skills':95 '/aiworkskills/wechat-article-skills)':188 '/aws-wechat-article-main/references':175 '/aws-wechat-article-main/references/articlescreening-schema.md':353 '/aws-wechat-article-main/references/first-time-setup.md':221 '/aws-wechat-article-main/skill.md':196 '/aws-wechat-article-writing/references/structure-template.md':453 '/config.yaml':116,424,532 '/presets/formatting':125,330,348,520 '/scripts/format.py':145,374,382,392,400,409 '1':293 '15px':405 '16px':505 '2':299 '3':319 '9':74,182 'a93226':397 'agent':204 'articl':4,42,54,71,81,115,124,155,162,194,329,347,423,432,435,519,531 'article.html':140,539 'article.md':119,305,393,401,528 'article.yaml':118,307,341,429,534 'article.yaml.default':324 'articlescreening-schema.md':352 'asset':43 'aw':2,40,52,69,79,114,123,153,160,192,328,346,422,518,530 'aws-articl':113,122,327,345,421,517,529 'aws-wechat-articl':68,152 'aws-wechat-article-asset':39 'aws-wechat-article-format':1 'aws-wechat-article-main':51,78,159,191 'basedir':144,209,373,381,391,399,408 'bash':363 'capabl':97 'card':445 'clawhub':89 'closing.md':121,483,537 'color':396,498 'config.yaml':355 'custom':334 'default':234,309,318,333,335,367,371,496 'drafts/yyyymmdd-slug/article.html':377,387 'drafts/yyyymmdd-slug/article.md':375,383 'emb':414,419,439,441,536 'embeds.related':431 'font':403,502 'font-siz':402,501 'format':5,310,325,368 'format.py':130,168,290,302,415,485 'github.com':94,187 'github.com/aiworkskills/wechat-article-skills':93 'github.com/aiworkskills/wechat-article-skills)':186 'grace':241,385 'h1':262,467 'h1-h4':261 'h4':263 'html':9,15,33,60,103,200,215,286,457,459,510 'imag':478 'inform':148 'inlin':202,462 'instal':90 'link':446 'list':411,512 'list-them':410,511 'main':55,82,163,195,337 'markdown':7,13,58,102,198,213,465 'md':176 'miniprogram':443,444 'modern':247,395 'o':376,386,506 'placehold':474 'preset':311,326,369 'profil':442 'python':372,380,390,398,407 'python3':143 'references/presets/readme.md':523,524 'relat':434 'scripts/format.py':212 'shell':141 'simpl':253 'size':404,503 'skill':66,84,86,99,147,150,166,172,225,479 'skill-aws-wechat-article-formatting' 'skill.md':207 'slug':76,183 'source-aiworkskills' 'theme':295,301,365,384,394,412,492,513 'topic-agent-skills' 'topic-ai-skills' 'topic-ai-writing' 'topic-chinese-nlp' 'topic-codex' 'topic-content-automation' 'topic-content-creation' 'topic-copywriting' 'topic-llm' 'topic-markdown-to-html' 'topic-openclaw' 'topic-wechat' 'wechat':3,41,53,70,80,154,161,193 'write':451 'yaml':127,313,350 '一条龙公众号套件的':156 '一条龙套件':72 '一键发文且未明确只要排版':190 '下新建主题文件即可':521 '不传':364 '不创建该目录':137 '不读凭证':135 '不需要这个能力可清空':136 '与':304,450 '与仓库':354 '与全局':433 '与合并配置':280 '与智能体择一':292 '个':75 '中':308 '中的占位说明一致':454 '中第一个':466 '为':100 '为准':425 '为空则用内置主题名':317 '主题':231,494 '主题名':316 '主题名须对应':342 '主题文件格式和扩展方式详见':522 '主题解析顺序':289 '主题默认':500 '产出':527 '仅':142,426 '仅读取':303 '仓库内':112 '仓库外':129 '仓库根':360 '代码块':269 '以':420 '任何操作执行前':217 '优雅紫':242 '会追加到文末':486 '但排版功能本身可用':180 '使用合并配置中的':366 '保留为':475 '候选池解析由':336 '入口':77,158 '全套':91 '公众号一键排版':57 '公众号一键排版工具':12 '公众号排版':6 '共':73 '内置':332 '内置主题':230,343 '写':45 '凭证':107 '分割线':267 '列出可用主题':406,514 '列表':266,314 '创业':252 '单独启用本':224 '单独安装可直接使用':164 '发':49 '只读预设文件':134 '可写':430 '可选':120,538 '合并结果中非空':438 '同名':509 '同目录':533 '同目录存在':482 '同目录的':306 '名':126,349 '名片':416 '名称':296,447,493 '否则':370 '否则不对嵌入占位符做替换':448 '命令行':294 '品牌包':37 '商业':239 '图注自动从标记描述中提取':481 '图片':268 '在':338,359,516 '在转换时被跳过':468 '多主题':16,61 '多字号':17,62 '大量留白':256 '套件未装齐时':178 '套件说明':64 '始终优先':298 '字号':28,389,504 '字段说明见':351 '学术':258 '完整':181 '审':46 '将':197 '小程序':417 '属':67 '嵌入元素':413 '工作流':272 '工作流文档中会链接到':174 '左边框小标题':244 '建议一并':88 '弄好看点':34 '引用块':265 '强调色等完整规则':271 '往期链接':427 '待':477 '微信兼容':214 '微信编辑器兼容':463 '必须':218 '思想深度':257 '或':344 '或单元素':315 '或用户明确书面确认':228 '所在目录为':208 '所有样式':201,461 '所见即所得':19,63 '执行':205,361 '执行其中的':222 '按':219,321 '换个排版主题':30 '换个版式':31 '换预设包':36 '排':47 '排版':24,56 '排版主题':10 '排版岗':22 '排版环节':157 '排版进度':273 '描述':473 '整套主题配色请走':38 '文件写':138 '文件读':111,128 '文化':245 '文稿转微信后台可粘贴':14 '文章转换为微信公众号兼容的':199 '无':108,110 '无跨':171 '时':484 '时同上':226 '时解析':440 '是':151 '显式指定主题':378 '显式指定时':297 '智能体在对话中帮用户选主题时':320 '暖橙':248 '替换':480 '未传':300 '本':65,98,149,165 '本次不检查':229 '本篇':117,139,323,428 '本篇准备':339 '极度克制':255 '极简黑':254 '柔和圆润':243 '标签':476 '标题在公众号后台单独填写':469 '标题样式':260 '格式化':27 '检测通过后才能进行以下操作':227 '检测顺序':223 '正文不含文章标题':464 '正文不重复':470 '段落':264 '段落样式':11,29 '段落样式切换':18 '每个主题包含':259 '沉稳大气':236 '活力大胆':249 '深度合并':436 '清单见':184 '源码':92 '源码仓库':185 '版式':25 '特性':460 '独立作者':21 '用于每篇不同推荐':437 '用户口述':322 '用户指定':281 '用途':211 '的':418 '的相对引用依赖同一':85 '的脚本':167 '目录':87 '省略则按合并配置':495 '确定主题':279,288 '确定本':206 '科技':238 '第0步':274 '第1步':278,287 '第2步':282,357 '第3步':284,455 '类型':472 '纯本地':101,170 '经典蓝':235 '结构模板':452 '网络':109 '美化':26 '美学':246 '能力披露':96 '脚本':210 '脚本既有行为':487 '脚本目录':203 '脚本调用':173 '自媒体':251 '自定义':331 '自定义主色':388,499 '自定义主题':515 '色块小标题':237,250 '行为':291 '覆盖配置':379 '见上文':497 '见本节':276 '视为无配置':449 '触发词':23 '说明':490 '请走':50 '读取':526 '调整格式':35 '跨':83 '跨项目共享的自定义排版主题':133 '路径':507 '路径按实际本篇目录调整':362 '路由':189 '转':8,32 '转微信后台可粘贴':59 '转换':104,283,358 '输出':285,456 '输出的':458 '输出路径':508 '过程文件':525 '还会检查用户家目录':131 '适用场景':233 '选项':488,489 '通用':240 '配图':48 '配图标记':471 '配套':146 '配置检查':216,275,277 '链接':270 '链接跳转会断':179 '阶段完成并写回':340 '零依赖':169 '零凭证':106 '零网络':105 '需要多环节串联':44 '面向公众号编辑':20 '顶层字段对齐':356 '须为':312 '风格':232 '首次引导':220 '首次引导等':177 '默认主题与':535 '默认值':491","prices":[{"id":"59eea1ec-739e-4ca9-ab73-0a73986b2612","listingId":"cc3f56f6-a4d7-474c-bfd8-8a87a69296c0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"aiworkskills","category":"wechat-article-skills","install_from":"skills.sh"},"createdAt":"2026-04-21T19:04:11.572Z"}],"sources":[{"listingId":"cc3f56f6-a4d7-474c-bfd8-8a87a69296c0","source":"github","sourceId":"aiworkskills/wechat-article-skills/aws-wechat-article-formatting","sourceUrl":"https://github.com/aiworkskills/wechat-article-skills/tree/main/skills/aws-wechat-article-formatting","isPrimary":false,"firstSeenAt":"2026-04-21T19:04:11.572Z","lastSeenAt":"2026-05-18T18:58:26.872Z"}],"details":{"listingId":"cc3f56f6-a4d7-474c-bfd8-8a87a69296c0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"aiworkskills","slug":"aws-wechat-article-formatting","github":{"repo":"aiworkskills/wechat-article-skills","stars":39,"topics":["agent-skills","ai-skills","ai-writing","chinese-nlp","codex","content-automation","content-creation","copywriting","llm","markdown-to-html","openclaw","wechat","wechat-api","wechat-official-account"],"license":"apache-2.0","html_url":"https://github.com/aiworkskills/wechat-article-skills","pushed_at":"2026-05-06T01:47:51Z","description":"微信公众号 AI 运营助手 | 选题、写稿、审稿、排版、配图、发布全流程 Skill，支持 OpenClaw / Claude Code / Cursor / Codex","skill_md_sha":"ca4018dac6023e8b2cadced9e4f8851709932e3f","skill_md_path":"skills/aws-wechat-article-formatting/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/aiworkskills/wechat-article-skills/tree/main/skills/aws-wechat-article-formatting"},"layout":"multi","source":"github","category":"wechat-article-skills","frontmatter":{"name":"aws-wechat-article-formatting","description":"公众号排版｜Markdown 转 HTML｜排版主题｜段落样式 — 公众号一键排版工具，Markdown 文稿转微信后台可粘贴 HTML，多主题、多字号、段落样式切换，所见即所得。面向公众号编辑、独立作者、排版岗。触发词：「排版」「版式」「美化」「格式化」「字号」「段落样式」「换个排版主题」「换个版式」「转 HTML」「弄好看点」「调整格式」。换预设包/品牌包/整套主题配色请走 aws-wechat-article-assets；需要多环节串联（写+审+排+配图+发）请走 aws-wechat-article-main。"},"skills_sh_url":"https://skills.sh/aiworkskills/wechat-article-skills/aws-wechat-article-formatting"},"updatedAt":"2026-05-18T18:58:26.872Z"}}