Install
openclaw skills install @liuzheng60/article-format-lz自媒体文章排版生成技能。当用户要求生成、创建、排版微信公众号文章或今日头条文章,或需要公众号/头条美化格式、编辑器兼容HTML时触发。支持微信公众号(23种风格配色:7种通用+8种节日+4种季节+4种主题,默认Linear冷工程蓝紫,全内联CSS)和今日头条(纯语义HTML,ProseMirror兼容)双平台自动选择。可根据用户要求、节日/季节/主题关键词或内容自动匹配平台和风格。支持标题、正文、列表、引用、提示框、数据卡片、对比栏、代码块、表格、进度条、信息卡片、键值列表等全套排版组件;宽表/长内容可自动改用信息卡片或键值列表展示。
openclaw skills install @liuzheng60/article-format-lz为自媒体文章生成高质量排版 HTML,支持微信公众号和今日头条两大平台。微信公众号采用全内联 CSS(inline style),确保复制粘贴格式不丢失;今日头条采用纯语义 HTML 标签,适配 ProseMirror 编辑器 schema 白名单机制。
排版的核心目标不是「好看」,而是「好读」。以下三条原则是所有排版决策的底层约束,适用于微信和头条两个平台,在组件选择和生成 HTML 时必须始终遵守。
误区:花哨的背景和动画分散注意力——读者来看内容,不是来看排版炫技。
排版为内容服务,装饰是手段不是目的。具体规则:
误区:密密麻麻的文字让读者望而却步——留白是排版的呼吸,没有呼吸感的页面让人窒息。
留白不是浪费空间,是引导视线节奏的工具。具体规则:
误区:标题正文分不清,阅读节奏断裂——读者扫读时应该一眼分清「这是标题」「这是正文」「这是重点」。
视觉层级是阅读的导航图。具体规则:
以上原则的量化参数(字号/间距/行高/字间距)详见
references/design-system.md的「字体系统」和「间距系统」。原则是「为什么」,设计系统是「具体多少」。
优先级:用户显式指定 > 内容自动匹配 > 默认微信公众号
| 用户表达 | 选择平台 |
|---|---|
| "公众号排版"、"微信文章"、"发公众号" | 微信公众号 |
| "头条排版"、"今日头条"、"发头条"、"头条号" | 今日头条 |
| "两个平台都要"、"公众号+头条" | 两平台分别生成 |
当用户未明确指定平台时,根据上下文判断:
| 信号 | 推断平台 |
|---|---|
| 用户之前在讨论公众号 | 微信公众号 |
| 用户之前在讨论头条 | 今日头条 |
| 无法判断 | 引导用户选择(使用 AskUserQuestion) |
无法自动判断时,使用 AskUserQuestion 工具让用户选择:
| 风格 | 主色 PRIMARY | 辅色 ACCENT | 浅底 LIGHT_BG | 文字 TEXT | 辅助文字 MUTED | 正文色 TEXT_BODY | 代码底 CODE_BG | 适用场景 |
|---|---|---|---|---|---|---|---|---|
| Linear蓝紫(默认) | #5B6FED | #764ba2 | #f5f6fa | #1a1a2e | #999 | #333 | #1a1a2e | 技术/AI/编程/通用 |
| 墨韵素雅 | #2C2C2A | #5F5E5A | #F1EFE8 | #2C2C2A | #888780 | #5F5E5A | #1e1e1e | 人文随笔、深度长文 |
| 暖阳咖啡 | #8B5E3C | #C4956C | #F5E6D3 | #6B4226 | #A07350 | #8B5E3C | #2d1f12 | 生活方式、美食旅行 |
| 青竹墨绿 | #2D5016 | #639922 | #EAF3DE | #27500A | #639922 | #3B6D11 | #1a2a10 | 健康养生、自然科普 |
| 莫兰迪雾 | #534AB7 | #7F77DD | #EEEDFE | #3C3489 | #534AB7 | #534AB7 | #1a1a2e | 设计美学、艺术时尚 |
| 晨曦珊瑚 | #D85A30 | #F0997B | #FAECE7 | #993C1D | #D85A30 | #993C1D | #2a1810 | 母婴育儿、情感生活 |
| 深蓝学术 | #0C447C | #378ADD | #E6F1FB | #0C447C | #185FA5 | #0C447C | #0a1929 | 科技报告、金融分析 |
节日风格(8种,复用通用组件模板,仅替换令牌色值):
| 风格 | 主色 PRIMARY | 辅色 ACCENT | 浅底 LIGHT_BG | 文字 TEXT | 辅助文字 MUTED | 正文色 TEXT_BODY | 代码底 CODE_BG | 适用场景 |
|---|---|---|---|---|---|---|---|---|
| 元旦·冰蓝迎新 | #4A90D9 | #E6B422 | #EEF4FB | #1F3A5F | #7A94B0 | #2C4660 | #1A2A3A | 新年、跨年、迎新 |
| 春节·中国红金 | #D4202A | #D4AF37 | #FCEDE9 | #A30E19 | #C49A3E | #8A1A1A | #4A0E0E | 过年、除夕、拜年 |
| 元宵·暖灯红橙 | #E8553A | #F2A93B | #FDEDE6 | #C2402B | #D98B3A | #9B3A2E | #3D1410 | 汤圆、灯会、花灯 |
| 清明·柳绿清雅 | #5E8B6E | #8FAE8B | #EEF3ED | #3A5A46 | #8AA091 | #4A6353 | #1E2E24 | 踏青、青团、祭祖 |
| 端午·艾绿五彩 | #3A7D5C | #D45B3E | #E8F2EC | #1E5A3E | #C0763E | #2C5A45 | #15301F | 粽子、龙舟、屈原 |
| 中秋·月夜金桂 | #4A559E | #E0B049 | #EEF0FA | #2A3568 | #B08D3C | #343E6E | #161B3A | 月饼、赏月、团圆 |
| 五一·活力橙绿 | #E8822E | #4CA85A | #FEF3E8 | #C25E12 | #7BA85C | #8A5A2E | #3D2410 | 劳动节、出游、露营 |
| 国庆·华诞红金 | #C0152B | #E6B422 | #FCEDEB | #8E0F1C | #C49A3E | #7A1622 | #3D0A0E | 十一、华诞、举国同庆 |
通用/节日/季节/官方/磨砂风格的 PAGE_BG 统一为
#FAFAFA。其余主题风格各有独立 PAGE_BG(讣告#FFFFFF、赛博#FAFBFC),详见主题风格色板表。
季节风格(4种,复用通用组件模板,仅替换令牌色值):
| 风格 | 主色 PRIMARY | 辅色 ACCENT | 浅底 LIGHT_BG | 文字 TEXT | 辅助文字 MUTED | 正文色 TEXT_BODY | 代码底 CODE_BG | 适用场景 |
|---|---|---|---|---|---|---|---|---|
| 春·新芽樱粉 | #7FB069 | #F48FB1 | #F2F7EC | #4A5D3A | #A8C08A | #5A6B45 | #2E3A22 | 立春、踏青、春日物语、樱花 |
| 夏·海风晴蓝 | #0E9DCB | #FF9F40 | #E8F6FB | #0A6E92 | #5CB8D6 | #0C7C9E | #0A2E3A | 立夏、消暑、海风、清凉 |
| 秋·枫丹麦金 | #C75B39 | #E0A526 | #FBF1E6 | #9E3B22 | #D08B4F | #A8492B | #2E1A12 | 立秋、丰收、枫叶、桂花 |
| 冬·雪霁冰蓝 | #2E6B9E | #7EB8D4 | #E8F1F8 | #1C3B54 | #6A8BA3 | #284D6E | #0F1A26 | 立冬、围炉、供暖、雪 |
主题风格(4种,复用通用组件模板,仅替换令牌色值 + 风格特色微调):
| 风格 | 主色 PRIMARY | 辅色 ACCENT | 浅底 LIGHT_BG | 大底 PAGE_BG | 文字 TEXT | 辅助文字 MUTED | 正文色 TEXT_BODY | 代码底 CODE_BG | 适用场景 |
|---|---|---|---|---|---|---|---|---|---|
| 官方·严谨庄重 | #1A4F8B | #3E6FA3 | #EEF3F8 | #FAFAFA | #14365E | #6E89A8 | #27425F | #102A45 | 政务、公告、政策、权威发布、新闻联播 |
| 讣告·肃穆黑白 | #333333 | #666666 | #F0F0F0 | #FFFFFF | #000000 | #888888 | #222222 | #1A1A1A | 讣告、悼念、哀悼、唁电、缅怀 |
| 赛博·克制霓虹 | #0891B2 | #C026D3 | #F0F9FB | #FAFBFC | #0F172A | #64748B | #1E293B | #0F172A | 赛博、极客、黑客、开源、技术前线 |
| 磨砂·翡翠凝碧 | #3D8B6E | #7DC4A0 | #EDF7F2 | #FAFAFA | #1E4A38 | #6BAA8E | #2E5C48 | #0F1F18 | 磨砂、亚克力、毛玻璃、翡翠、玉石、质感美学 |
赛博·克制霓虹用渐变文字
NEON_GRAD=linear-gradient(90deg,#06b6d4,#d946ef)模拟霓虹(不加 box-shadow);磨砂·翡翠凝碧用 LIGHT_BG 实色#EDF7F2+#C5DED2浅翡翠描边模拟磨砂质感(不依赖页面背景色,公众号复制后效果不变)。详见design-system.md「风格特色微调」。
优先级:用户显式指定 > 节日关键词命中 > 季节关键词命中 > 主题关键词命中 > 内容自动匹配 > 默认 Linear 蓝紫
design-system.md「节日风格自动匹配关键词」)。例如文章提到「粽子、龙舟」→ 端午·艾绿五彩。design-system.md「季节风格自动匹配关键词」)。例如文章提到「立夏、消暑、海风」→ 夏·海风晴蓝。design-system.md「主题风格自动匹配关键词」)。例如文章提到「政务、公告、白皮书」→ 官方·严谨庄重;「讣告、悼念」→ 讣告·肃穆黑白;「赛博、极客、终端」→ 赛博·克制霓虹;「磨砂、亚克力、翡翠」→ 磨砂·翡翠凝碧。| 内容类型 | 推荐风格 |
|---|---|
| 技术 / AI / 编程 / 通用 | Linear蓝紫(默认) |
| 人文 / 哲学 / 书评 / 影评 | 墨韵素雅 |
| 美食 / 旅行 / 生活方式 / 品牌 | 暖阳咖啡 |
| 健康 / 养生 / 环保 / 自然 | 青竹墨绿 |
| 设计 / 美学 / 艺术 / 时尚 | 莫兰迪雾 |
| 情感 / 育儿 / 正能量 / 生活 | 晨曦珊瑚 |
| 学术报告 / 金融分析 / 数据研究 | 深蓝学术 |
| 风格 | 微调说明 |
|---|---|
| 墨韵素雅 | 衬线字体 font-family:'Noto Serif SC','Source Han Serif',Georgia,serif,标题区 letter-spacing:2px |
| 暖阳咖啡 | border-radius 10px→14px,6px→10px,柔和手作感 |
| 青竹墨绿 | 无序列表圆点可换辅色 #639922 |
| 莫兰迪雾 | 文字色降低饱和度,加 opacity:0.9 |
| 晨曦珊瑚 | 卡片用 border:1px solid #F5C4B3 替代渐变底 |
| 深蓝学术 | 优先使用表格组件展示数据 |
| Linear蓝紫 | 无额外微调 |
| 春节·中国红金 / 国庆·华诞红金 | 红金系庄重喜庆,数据卡渐变用 linear-gradient(135deg,PRIMARY,ACCENT);正文色深红,注意与白字对比 |
| 清明·柳绿清雅 | 素净风格,节日氛围值普遍偏低(可借进度条展示"偏肃穆"等<50%项) |
| 其余节日风格 | 复用通用组件模板,仅令牌色值不同,无额外微调 |
| 春·新芽樱粉 | 主辅双色(新芽绿+樱粉),渐变与进度条副条用辅色 #F48FB1,清新柔嫩 |
| 夏·海风晴蓝 | 主辅双色(晴蓝+暖橙),数据卡渐变用 linear-gradient(135deg,PRIMARY,ACCENT),清凉明快 |
| 秋·枫丹麦金 | 主辅双色(枫丹+金桂),暖调浓郁,进度条副条用辅色 #E0A526 |
| 冬·雪霁冰蓝 | 主辅双色(冰蓝+天空蓝),PRIMARY 加深至 #2E6B9E 冷调更饱和锐利,注意浅底与正文对比 |
| 官方·严谨庄重 | 衬线字体 Noto Serif SC,主标题 letter-spacing:2px,实色深蓝分割线,无彩色装饰 |
| 讣告·肃穆黑白 | 完全灰阶无彩色,衬线字体,最大留白,标题加粗黑体,强调用引号而非色块 |
| 赛博·克制霓虹 | 标题/核心洞察用 NEON_GRAD 渐变文字(不加 box-shadow),数据卡青品红渐变,半透明发光卡片 |
| 磨砂·翡翠凝碧 | 信息卡片用 LIGHT_BG 实色 #EDF7F2 + #C5DED2 浅翡翠描边模拟磨砂质感(不用半透明,不依赖页面背景色),圆角 12px,padding 加大,翡翠绿温润如玉 |
详见 references/design-system.md 组件1-23。核心规则:
<section> 嵌套,微信编辑器对 section 兼容性最好border-left(position:absolute 微信支持但 border-left 更简洁)<pre> + white-space(代码块用 <section> + <br> + )头条编辑器基于 ProseMirror,使用 schema 白名单机制——所有 inline style 默认被剥离,只有 schema 中声明的语义标签才保留。因此头条排版必须使用纯语义 HTML,零 inline style。
详见 references/design-system.md 头条组件 T1-T17。
| 组件 | 语义标签 | 说明 |
|---|---|---|
| T1 主标题 | <h1>【标题】</h1> | 用【】符号增强视觉权重 |
| T2 摘要 | <p><em>摘要</em></p> | 斜体区分 |
| T3 分割线 | <hr> | 语义分割线 |
| T4 正文 | <p>文字</p> | 17px / #505050 / 行高2 / 字间距1px |
| T5 加粗强调 | <strong>文字</strong> | 行内加粗 |
| T6 章节标题 | <h2>◆ 标题</h2> | ◆符号引导 |
| T7 子标题 | <h3>▶ 标题</h3> | ▶符号引导 |
| T8 核心结论 | <p><strong>整段加粗</strong></p> | 单独成段加粗 |
| T9 无序列表 | <ul><li> | 语义无序列表,li内strong加粗关键词 |
| T10 有序列表 | <ol><li> | 语义有序列表 |
| T11 引用块 | <blockquote> | 语义引用 |
| T12 数据高亮 | <p><strong>大数字</strong></p> | 加粗单独成段 |
| T13 表格 | <table><tr><th><td> | 纯语义表格 |
| T14 代码块 | <pre>code</pre> | 语义代码块(头条支持pre) |
| T15 底部签名 | <hr><p> | 分割线+签名文字 |
| T16 信息卡片 | <blockquote> | 宽表替代,每行一卡(自带左侧竖条) |
| T17 键值列表 | <blockquote> | 2~3列文字表替代 |
| 参数 | 值 |
|---|---|
| 正文字号 | 17px |
| 正文色 | #505050 |
| 字间距 | 1px |
| 行高 | 2 |
| 每段行数 | 不超过4行 |
| 小标题频率 | 每300字 |
| 层级建立 | 文字符号(◆★▶【】),不依赖CSS |
| emoji | 最多2种,不连续出现 |
| 品牌色 | #F04142(头条红) |
| 规范 | 要求 |
|---|---|
| 最小宽度 | ≥640px |
| 比例 | 3:2 或 1:1 |
| 频率 | 每800字1张 |
| 图注 | "图:"开头,≤20字,不带标点 |
| 间距 | 图与上下文各空一行 |
头条模板使用双视图预览:美化预览(有CSS模拟理想效果)↔ 头条实际效果(无CSS模拟ProseMirror渲染)。复制时仅复制语义HTML标签,CSS不会被复制。详见 references/design-system.md 头条页面外壳模板。
按「平台选择逻辑」确定是微信公众号还是今日头条。无法判断时用 AskUserQuestion 引导。
若用户直接提供文章文本,直接进入排版。若只给主题,先产出文章内容再排版。
微信平台需要选择 23 种风格之一(7 通用 + 8 节日 + 4 季节 + 4 主题),按「风格选择逻辑」确定。头条平台使用固定配色(#F04142红),无需选风格。
读取 references/design-system.md,获取对应平台的组件模板:
根据文章结构选择合适的组件组合。
按组件模板生成完整 HTML 文件。关键规则:
微信:
style=""),不用 class<section> 嵌套头条:
生成 HTML 文件保存到当前工作目录,文件名格式:
wechat-{主题}.htmltoutiao-{主题}.htmlposition: absolute:微信编辑器已支持,粘贴后正常渲染。引用块推荐用 border-left(更简洁)<pre> + white-space:换行丢失,代码块用 <section> + <br> + linear-gradient 支持良好box-shadow 微信编辑器已支持,正文设计上以边框和留白为主<section> 嵌套:不在 schema 白名单,被忽略或扁平化<pre> 代码块:与微信不同,头条 ProseMirror schema 保留 pre 标签