360 Secure SkillHub
360 安全技能中心

AWS WeChat Article Formatting

将 Markdown 文章转换为微信公众号后台可粘贴的内联样式 HTML,支持 default/grace/modern/simple 等内置主题、自定义主题与主色/字号覆盖,支持 ::: 组件块和 {embed:} 占位符替换;文件内另说明刘润风格写作、热点搜索与草稿发布流程。

agentforge-cyber
agentforge-cyber
热度 31.40
最近更新 2026-09-19 21:12:55
分类:效率依赖:代码执行 / 读写文件应用场景:文案创作 / 社交媒体 / 博客写作 / 文件转换 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add agentforge-cyber/aws-wechat-article-formatting
Metadata
name
aws-wechat-article-formatting
description
公众号排版 + 写作一体化工具。Markdown 转微信后台可粘贴 HTML,4套内置主题 + 自定义主题 + :::组件块。同时整合刘润风格写作、联网搜索热点、AI配图封面能力。触发词:「排版」「版式」「美化」「格式化」「写公众号」「写文章」「推文」「字号」「段落样式」「转 HTML」。
homepage
https://aiworkskills.cn
url
https://github.com/aiworkskills/wechat-article-skills
metadata
{"openclaw":{"requires":{"env":[],"bins":["python3"]}}}

排版

公众号一键排版 —— 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:仅 {python} {baseDir}/scripts/format.py({python} = 本机 Python 3 解释器,见 main SKILL 第 0 步:Windows 用 py -3 -X utf8,macOS / Linux 用 python3)

配套 skill(informational)

本 skill 是 aws-wechat-article-* 一条龙公众号套件的排版环节(入口 aws-wechat-article-main)。

  • 单独安装可直接使用:本 skill 的脚本 format.py 零依赖、纯本地,无跨 skill 脚本调用。
  • 工作流文档中会链接到 ../aws-wechat-article-main/references/*.md(首次引导等)。套件未装齐时,链接跳转会断,但排版功能本身可用。

完整 9 slug 清单见 源码仓库。

路由

一键发文且未明确只要排版 → aws-wechat-article-main。

将 Markdown 文章转换为微信公众号兼容的 HTML,所有样式 inline。

脚本目录

Agent 执行:确定本 SKILL.md 所在目录为 {baseDir}。

脚本 用途
scripts/format.py Markdown → 微信兼容 HTML

配置检查 ⛔

任何操作执行前,必须按 首次引导 执行其中的 「检测顺序」。单独启用本 skill 时同上。检测通过后才能进行以下操作(或用户明确书面确认「本次不检查」)。

内置主题

主题 风格 适用场景
default 经典蓝 — 沉稳大气,色块小标题 科技、商业、通用
grace 优雅紫 — 柔和圆润,左边框小标题 文化、美学
modern 暖橙 — 活力大胆,色块小标题 自媒体、创业
simple 极简黑 — 极度克制,大量留白 思想深度、学术

每个主题包含:标题样式(h1-h4)、段落、引用块、列表、分割线、图片、代码块、链接、强调色等完整规则。

图注只认显式写的 title ⛔

![信息图:画面指令给生图模型看](imgs/x.png "图注给读者看")

括号里路径之后引号中的才是图注。alt 冒号后那段是画面指令,不会显示给读者。

早先的实现拿画面指令兼任图注,产出过这种东西:图上画着一个人站在 99.9 的牌子前 望向远方,图注写「开发者站在巨型 99.9 分数牌前,视线越过分数望向复杂而开放的城市与 工作现场」——把读者眼睛已经看见的复述一遍,零信息;图没生成出来时更会同一句话出现 两次(破图 alt 一次、图注一次)。

没写 title 就不出图注,这是有意的:绝大多数图不需要图注,错的图注比没有更糟。 图注该补充画面之外的东西——数据出处、一句判断、反常识的细节。

版式组件(:::块)

主题只能给标签配内联样式,表达不了结构——而微信没有伪元素,「标题前的角标」 「引用块的大引号」必须真的插元素。组件补的就是这一层:

:::section-title[01]
同一个模型,两个分数
:::

:::quote-card[AWS 团队]
基准分数衡量的是你缺哪个 harness,不是模型的能力上限。
:::

内置组件在 references/components/,用户自定义放 .aws-article/presets/components/<名>.yaml,同名覆盖内置。每个组件的 YAML 里带 when_to_use / when_not_to_use / anti_pattern——选组件前先读这三项, 它们和配图方法里的判据是同一个作用:拦住「因为好看所以用」。

组件模板里的 {primary-color} {text-color} 等占位符从当前主题取值,所以组件 与任何主题组合都不会脱节。未知组件名或缺少结尾 ::: 时按原文输出并告警,不吞内容。

设计新版式前必读 ⛔

微信正文只认内联样式,没有伪元素、没有伪类、position 与 id 会被整条删掉。 这决定了「装饰必须作为真实元素插进 HTML」,而不能靠 CSS 变出来。 能用什么、什么会被剥离,见 wechat-html-constraints.md。

工作流

排版进度:
- [ ] 第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(与仓库 config.yaml 顶层字段对齐)。

第2步:转换

在仓库根执行(路径按实际本篇目录调整):

# 不传 --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 结构模板 中的占位说明一致。

第3步:输出 HTML

输出的 HTML 特性:

  • 所有样式 inline(微信编辑器兼容)
  • 正文不含文章标题:Markdown 中第一个 #(h1)在转换时被跳过,标题在公众号后台单独填写,正文不重复
  • 配图标记 ![类型:描述](placeholder) 保留为 <img> 标签,待 images skill 替换
  • 图注自动从标记描述中提取
  • 同目录存在 closing.md 时,format.py 会追加到文末(脚本既有行为);closing.md 自己的首个 # 标题会保留,只有 article.md 的首个 # 被视为文章标题跳过
  • 预格式化(中英文加空格、ASCII 引号转「」、合并空行)只作用于正文文字:围栏代码块、行内代码、链接/图片目标、{embed:…}、原生 HTML 标签与裸 URL 原样保留,行内代码内容做 HTML 转义。不需要预格式化时加 --no-preformat
  • 表格支持 |:---:| 这类对齐行

选项

选项 说明 默认值
--theme <名称> 主题;省略则按合并配置 → default 见上文
--color <hex> 自定义主色 主题默认
--font-size <px> 正文字号(同时覆盖主题 p / li 里的字号) 16px
-o <路径> 输出路径 同名 .html
--list-themes 列出可用主题
--export-theme <名称> 以 YAML 导出主题(合并默认变量与样式),重定向到文件即可作为自定义主题起点
--no-preformat 跳过 Markdown 预格式化

自定义主题

在 .aws-article/presets/formatting/ 下新建主题文件即可。快速起步:

{python} {baseDir}/scripts/format.py --export-theme default > .aws-article/presets/formatting/my-brand.yaml

主题文件格式和扩展方式详见:references/presets/README.md

过程文件

读取 产出
article.md、.aws-article/config.yaml + 同目录 article.yaml(默认主题与 embeds)、closing.md(可选) article.html

📝 写作流程(整合自 wechat-article-pro)

能力概述

当用户要求「写一篇公众号文章」「推文」「写篇文章」时,本 skill 在排版之外,还提供完整的写作 + 排版 + 发布能力。

写作风格:刘润风

特点

  1. 开篇切入:从一个具体的商业案例、故事或现象切入(200-300字)
  2. 引入洞察:引出一个独特的商业观点或洞察
  3. 案例论证:用2-3个真实商业案例来论证观点
  4. 数据支撑:适当引用数据和事实
  5. 结论建议:最后给出明确的结论和行动建议
  6. 语言风格:
    • 语言简洁有力,不啰嗦
    • 逻辑清晰,层层递进
    • 很少使用emoji
    • 段落较短,每段一个观点
    • 善用小标题分隔章节
    • 观点鲜明,敢于下结论

结构模板

# 大标题(文章核心观点)

## 小标题1:第一个分论点
- 案例/故事
- 分析
- 结论

## 小标题2:第二个分论点
- 案例/故事
- 分析
- 结论

## 小标题3:第三个分论点
- 案例/故事
- 分析
- 结论

## 总结
- 核心观点回顾
- 行动建议

禁止事项

  • ❌ 文章末尾禁止加任何话题标签(如 #xxx)
  • ❌ 禁止使用大量emoji
  • ❌ 禁止用"欢迎在评论区分享"这类话结尾

完整工作流

用户说"写一篇关于XXX的公众号文章"
    ↓
1. 搜索热点(web_search)— 获取主题相关最新信息
    ↓
2. 撰写文章(3000-5000字,刘润风格)
    ↓
3. 排版(format.py)— Markdown → 微信HTML
    ↓
4. 封面配图(AI配图 / 自定义封面)
    ↓
5. 推送到公众号草稿箱

配图策略

配图类型 方案
封面图 微信公众号「AI配图」功能,或本地封面
正文配图 ![类型:描述](placeholder) 标记,待替换
贴图模式(小绿书) 使用 PIL 生成竖版卡片(1080×1440),走 newspic 接口

贴图模式(小绿书)专属流程

当用户要求「做一组贴图」「小绿书」「图片消息」时:

  1. 内容规划:确定每页卡片的内容结构
  2. PIL 生成卡片:1080×1440 竖版,深蓝渐变背景,金色点缀
  3. 底部信息:标注公众号名称(如「AI Albert」)
  4. 上传图片:add_material 接口上传为永久素材
  5. 创建草稿:article_type: "newspic" + image_info.image_list
  6. 推送:draft/add 接口创建图片消息草稿

账号管理

支持多账号切换(aialbert / liebrain),配置在 ~/.kimi_openclaw/workspace/.wechat-mp/config.toml:

[aialbert]
app_id = "wx..."
app_secret = "..."

[liebrain]
app_id = "wx..."
app_secret = "..."