{"id":"cc3f56f6-a4d7-474c-bfd8-8a87a69296c0","shortId":"WsjHHG","kind":"skill","title":"aws-wechat-article-formatting","tagline":"给公众号文章排版，转换为可直接粘贴到微信后台的格式，支持多套主题。当用户提到「排版」「版式」「美化」「格式化」「字号」「段落样式」「换个主题」「转 HTML」「弄好看点」「调整格式」时使用。","description":"# 排版\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.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 14 github stars · SKILL.md body (3,197 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-04-22T01:02:22.309Z","embedding":null,"createdAt":"2026-04-21T19:04:11.572Z","updatedAt":"2026-04-22T01:02:22.309Z","lastSeenAt":"2026-04-22T01:02:22.309Z","tsv":"'/aws-wechat-article-main/references/articlescreening-schema.md':187 '/aws-wechat-article-main/references/first-time-setup.md':55 '/aws-wechat-article-main/skill.md':30 '/aws-wechat-article-writing/references/structure-template.md':287 '/config.yaml':258,366 '/presets/formatting':164,182,354 '/scripts/format.py':208,216,226,234,243 '1':127 '15px':239 '16px':339 '2':133 '3':153 'a93226':231 'agent':38 'articl':4,28,163,181,257,266,269,353,365 'article.html':373 'article.md':139,227,235,362 'article.yaml':141,175,263,368 'article.yaml.default':158 'articlescreening-schema.md':186 'aw':2,26,162,180,256,352,364 'aws-articl':161,179,255,351,363 'aws-wechat-article-format':1 'aws-wechat-article-main':25 'basedir':43,207,215,225,233,242 'bash':197 'card':279 'closing.md':317,371 'color':230,332 'config.yaml':189 'custom':168 'default':68,143,152,167,169,201,205,330 'drafts/yyyymmdd-slug/article.html':211,221 'drafts/yyyymmdd-slug/article.md':209,217 'emb':248,253,273,275,370 'embeds.related':265 'font':237,336 'font-siz':236,335 'format':5,144,159,202 'format.py':124,136,249,319 'grace':75,219 'h1':96,301 'h1-h4':95 'h4':97 'html':18,34,49,120,291,293,344 'imag':312 'inlin':36,296 'link':280 'list':245,346 'list-them':244,345 'main':29,171 'markdown':32,47,299 'miniprogram':277,278 'modern':81,229 'o':210,220,340 'placehold':308 'preset':145,160,203 'profil':276 'python':206,214,224,232,241 'references/presets/readme.md':357,358 'relat':268 'scripts/format.py':46 'simpl':87 'size':238,337 'skill':59,313 'skill-aws-wechat-article-formatting' 'skill.md':41 'source-aiworkskills' 'theme':129,135,199,218,228,246,326,347 '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,27 'write':285 'yaml':147,184 '一键发文且未明确只要排版':24 '下新建主题文件即可':355 '不传':198 '与':138,284 '与仓库':188 '与全局':267 '与合并配置':114 '与智能体择一':126 '中':142 '中的占位说明一致':288 '中第一个':300 '为准':259 '为空则用内置主题名':151 '主题':65,328 '主题名':150 '主题名须对应':176 '主题文件格式和扩展方式详见':356 '主题解析顺序':123 '主题默认':334 '产出':361 '仅':260 '仅读取':137 '仓库根':194 '代码块':103 '以':254 '任何操作执行前':51 '优雅紫':76 '会追加到文末':320 '使用合并配置中的':200 '保留为':309 '候选池解析由':170 '内置':166 '内置主题':64,177 '分割线':101 '列出可用主题':240,348 '列表':100,148 '创业':86 '单独启用本':58 '可写':264 '可选':372 '合并结果中非空':272 '同名':343 '同目录':367 '同目录存在':316 '同目录的':140 '名':183 '名片':250 '名称':130,281,327 '否则':204 '否则不对嵌入占位符做替换':282 '命令行':128 '商业':73 '图注自动从标记描述中提取':315 '图片':102 '在':172,193,350 '在转换时被跳过':302 '大量留白':90 '始终优先':132 '字号':14,223,338 '字段说明见':185 '学术':92 '将':31 '小程序':251 '嵌入元素':247 '工作流':106 '左边框小标题':78 '弄好看点':19 '引用块':99 '强调色等完整规则':105 '当用户提到':9 '往期链接':261 '待':311 '微信兼容':48 '微信编辑器兼容':297 '必须':52 '思想深度':91 '或':178 '或单元素':149 '或用户明确书面确认':62 '所在目录为':42 '所有样式':35,295 '执行':39,195 '执行其中的':56 '按':53,155 '换个主题':16 '排版':10,22 '排版进度':107 '描述':307 '支持多套主题':8 '文化':79 '文章转换为微信公众号兼容的':33 '时':318 '时使用':21 '时同上':60 '时解析':274 '显式指定主题':212 '显式指定时':131 '智能体在对话中帮用户选主题时':154 '暖橙':82 '替换':314 '未传':134 '本次不检查':63 '本篇':157,262 '本篇准备':173 '极度克制':89 '极简黑':88 '柔和圆润':77 '标签':310 '标题在公众号后台单独填写':303 '标题样式':94 '格式化':13 '检测通过后才能进行以下操作':61 '检测顺序':57 '正文不含文章标题':298 '正文不重复':304 '段落':98 '段落样式':15 '每个主题包含':93 '沉稳大气':70 '活力大胆':83 '深度合并':270 '版式':11 '特性':294 '用于每篇不同推荐':271 '用户口述':156 '用户指定':115 '用途':45 '的':252 '省略则按合并配置':329 '确定主题':113,122 '确定本':40 '科技':72 '第0步':108 '第1步':112,121 '第2步':116,191 '第3步':118,289 '类型':306 '经典蓝':69 '结构模板':286 '给公众号文章排版':6 '美化':12 '美学':80 '脚本':44 '脚本既有行为':321 '脚本目录':37 '自媒体':85 '自定义':165 '自定义主色':222,333 '自定义主题':349 '色块小标题':71,84 '行为':125 '覆盖配置':213 '见上文':331 '见本节':110 '视为无配置':283 '说明':324 '读取':360 '调整格式':20 '路径':341 '路径按实际本篇目录调整':196 '路由':23 '转':17 '转换':117,192 '转换为可直接粘贴到微信后台的格式':7 '输出':119,290 '输出的':292 '输出路径':342 '过程文件':359 '适用场景':67 '选项':322,323 '通用':74 '配图标记':305 '配置检查':50,109,111 '链接':104 '阶段完成并写回':174 '顶层字段对齐':190 '须为':146 '风格':66 '首次引导':54 '默认主题与':369 '默认值':325","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-04-22T01:02:22.309Z"}],"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":14,"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-04-21T06:27:58Z","description":"微信公众号 AI 运营助手 | 选题、写稿、审稿、排版、配图、发布全流程 Skill，支持 OpenClaw / Claude Code / Cursor / Codex","skill_md_sha":"0770cf72ccc0ca60e5be1f9f0a8ded6c6ea7d6eb","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":"给公众号文章排版，转换为可直接粘贴到微信后台的格式，支持多套主题。当用户提到「排版」「版式」「美化」「格式化」「字号」「段落样式」「换个主题」「转 HTML」「弄好看点」「调整格式」时使用。"},"skills_sh_url":"https://skills.sh/aiworkskills/wechat-article-skills/aws-wechat-article-formatting"},"updatedAt":"2026-04-22T01:02:22.309Z"}}