ai-image-gen
通用 AI 生图:文生图 / 图生图 / 图像变体。当用户说 AI 生图、AI 画图、文生图、图生图、生成图片、生成配图、图像生成、AI 出图、AI…
微信公众号文章排版引擎:把 Markdown / Word(.docx) / PDF / 纯文本转成可直接粘贴进公众号编辑器的 HTML,自动章节编号、关键词标记、引言卡、目录、代码块、图片/GIF、作者签名;主题从 references/theme-index.md 组件库按题材推荐,支持"一键自动排版"与按描述/参考图生成自定义主题。触发:用户提到"公众号排版/微信排版/gzh"、想把文章(md/docx/pdf/纯文本)转成公众号 HTML、说"自动排版/一键排版"公众号内容。不用于普通网页/落地页/PPT。
$ npx -y skills add zju-real/easel --skill gzh-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gzh-designContext preview
The summary Claude sees to decide when to auto-load this skill.
微信公众号文章排版引擎:把 Markdown / Word(.docx) / PDF / 纯文本转成可直接粘贴进公众号编辑器的 HTML,自动章节编号、关键词标记、引言卡、目录、代码块、图片/GIF、作者签名;主题从 references/theme-index.md 组件库按题材推荐,支持"一键自动排版"与按描述/参考图生成自定义主题。触发:用户提到"公众号排版/微信排版/gzh"、想把文章(md/docx/pdf/纯文本)转成公众号 HTML、说"自动排版/一键排版"公众号内容。不用于普通网页/落地页/PPT。
name: gzh-design description: 微信公众号文章排版引擎:把 Markdown / Word(.docx) / PDF / 纯文本转成可直接粘贴进公众号编辑器的 HTML,自动章节编号、关键词标记、引言卡、目录、代码块、图片/GIF、作者签名;主题从 references/theme-index.md 组件库按题材推荐,支持"一键自动排版"与按描述/参考图生成自定义主题。触发:用户提到"公众号排版/微信排版/gzh"、想把文章(md/docx/pdf/纯文本)转成公众号 HTML、说"自动排版/一键排版"公众号内容。不用于普通网页/落地页/PPT。 layer: produce
把一篇 Markdown 文章转换为可直接复制粘贴进微信公众号编辑器、且粘贴后样式不丢失的 HTML。
核心资产是 `references/` 下的**主题组件库**(每套一个主题:设计变量 + 各组件完整 HTML + 模板骨架 + 映射规则)外加 1 套**通用增量库**(代码块 / 图片·GIF / 小标签标题,所有主题共用)。主题清单以 `references/theme-index.md` 为单一来源。本 SKILL.md 只负责流程与决策,**具体 HTML 代码一律从组件库取,不要凭记忆手写**。
用户可能给:Markdown 文本或 `.md` 路径(直接进第 1 步)、`.docx`、`.pdf`、`.txt`/无标记纯文本、网页富文本。**非 Markdown 输入必须先读 [references/format-normalize.md](references/format-normalize.md) 按其规则转成 Markdown 草稿并做结构确认**(docx 用 `scripts/extract_docx.py`,PDF 用 Read 分页读取+清噪,纯文本按标题启发式推断结构)。什么都没给时,向用户索要。
用户说「直接排 / 自动排 / 一键 / 不用问」时进**全自动模式**:跳过结构确认与选主题提问,自动推断结构、按题材自选主题、排版校验,交付时附决策说明(章节结构、自拟标题、选题理由)。
读 [references/theme-index.md](references/theme-index.md)(主题信息的单一来源)。**据文章题材主动推荐最契合的主题**,再让用户一步确认——推荐但不擅自定死:
用户定下主题后,才进入该主题内部的组件匹配(第 3、4 步:判定文章类型 → 按该主题的配方表选组件组合)。
(1) 据 theme-index 中该主题的"组件库文件"列,Read 该主题专属组件库 `references/theme-{标识}.md`(含引言卡、章节标题、正文标记、签名等主题专属组件)。 (2) **同时 Read 通用增量库** `references/common-components.md`——代码块、图片/GIF、小标签标题这三类所有主题共用,套用当前主题主色即可。
后续生成完全依据这两份组件库,HTML 一律从中取、不要手写。
| 元素 | 识别规则 | |------|---------| | 文章标题 | `# 标题` 或 frontmatter `title` | | 开头引言 | 文章最开头的 `> 引用` 块 | | 章节标题 | `## 标题` | | 子章节 | `### 标题` | | 加粗 / 高亮 / 下划线 | `**文字**` / `==文字==` / `<u>文字</u>` 或 `++文字++` | | 引用段落 | 非开头的 `> 文字` | | 图片 / GIF | ``、``(GIF 与图片同样处理) | | 代码 / 命令 / Prompt | ` ``` 围栏代码块 ``` `、行内 `` `code` `` | | 分割线 / 列表 | `---`、`***` / `- 项` 或 `1. 项` | | 表格 | `\|` 分隔的 Markdown 表格(常来自 docx 转换)→ 优先用主题库的表格/卡片组件(主题库映射规则为准) |
**解析完结构后,判定文章类型**(取主导类型,可复合):教程/操作指南、盘点/工具清单、观点/深度分析、访谈/人物特稿、数据复盘/报告、生活/情感随笔、案例实战。判定依据:步骤和命令多→教程;并列条目多→盘点;引语和人物叙事多→访谈;数字和对比多→数据;论证推演多→观点。
**先查所选主题库的「文章类型 → 组件组合配方」表**,按文章类型确定本篇的核心组件组合与点缀组件——不要拿到组件库就逐段随机选组件,配方保证同类文章的排版气质稳定。配方之外的元素再按主题库映射规则表补充。
然后依主题库的**"完整文章模板骨架"章节**装配,把每个 Markdown 元素替换为对应组件:
把生成的 HTML 写入目标文件后,**必须运行校验脚本**,ERROR 清零才算完成:
# 用脚本所在 skill 的绝对路径调用,HTML 参数也用其实际路径(两者目录通常不同) <SKILL_ROOT>/scripts/validate_gzh_html.py <生成的.html 的实际路径>
它确定性地检查平台禁用项和 `<span leaf>` 包裹。报 ERROR 就回到第 4 步修;**半角标点 WARNING 同样要修复到 0 再交付**(这是实际使用中最高频的返工点)。
**产物格式:纯 `<section>…</section>` 正文片段,从全局容器开始,不要包 `<!DOCTYPE>`/`<html>`/`<head>`/`<body>`**——公众号编辑器只接受正文片段,多余的文档外壳会被丢弃或干扰粘贴。
1. **干净正文文件**:HTML 保存到当前工作目录,文件名 `{原文件名}_排版_{主题中文名}({英文标识}).html`(英文标识 = theme-index 组件库文件名去掉 `theme-` 前缀与 `.md` 后缀)。这份用于校验和手动粘贴兜底。 2. **带「复制」按钮的预览页**(让用户一键复制,免去手动全选):
<SKILL_ROOT>/scripts/wrap_preview.py <上面的干净正文.html>
产出 `{...}_预览.html`——浏览器打开后右上角有「复制到公众号」按钮,点一下即把渲染后的富文本复制到剪贴板(等价 Ctrl+A/Ctrl+C),再到公众号编辑器 Ctrl/⌘+V 粘贴。按钮和脚本只在预览外壳里、**不在被复制的 section 内**,所以粘到公众号的仍是干净合规正文。 3. 告知用户:**打开 `{...}_预览.html` → 点右上角「复制」→ 公众号编辑器粘贴**;并给出干净正文文件路径作为兜底。附校验脚本结论(已通过 / 剩余 warning)。
1. **章节自动编号**:按 `##` 出现顺序分配 `01/02/03…`;末章若为结语/总结类,用主题库指定的结语编号变体(如 `∞`),主题库未指定时沿用数字编号。 2. **英文标签**:据中文章节标题生成英文标签(实测→TEST、教程→TUTORIAL、总结→SUMMARY、思考→THOUGHTS…),主题库有对应槽位时使用。 3. **正文关键词下划线(核心特色)**:对**每个正文段落**主动找出 1–3 个最重要的短语,用该主题的下划线 CSS(见 theme-index)标记。优先标核心观点、结论、关键数据、专有名词;短语 4–15 字;整段无要点可不标。即使原文没有任何加粗也要主动加下划线——它是出现频率最高的基础标记。 4. **引言关键词高亮**:识别开头金句里的核心词,用高亮组件标记。 5. **目录提取**:从所有 `##` 取前 3 个作为导读/目录要点(主题库有目录组件时)。 6. **开头引言卡署名**:按文章的**作者或主题**而定——文章有署名就写"—— 作者名",没有明确作者就用与主题相关的简短落款或直接省略。**不要固定写"甲木"**(尾部签名区同样用 `{{作者名}}` 占位,见第 7 条)。 7. **尾部作者签名区(作者自填,仅末尾一处)**:**默认不写死任何人名**,用占位署名让用户替换成自己的。
8. **列表转换**:按主题库映射规则处理;无专属列表组件时转为带缩进的正文段落。 9. **中文全角标点**:正文标点一律用全角(,。!?:;""''()—— …),不要用半角 `, . ! ? :` 和英文直引号 `" '`。**生成 HTML 时就直接写弯引号""'',不要先写直引号再事后替换**——原文里的直引号在转写时当场转换。**例外**:代码块、行内代码、英文专名/URL/代码标识符内部保持原样。
| 层级 | 作用 | 频率 | 手段 | |------|------|------|------| | 锚点层 | 最强锚点:产品名/步骤/CTA/核心金句 | 全文 ≤ 5 处 | 主色加粗、深色底白字引用 | | 标记层 | 正文关键词,每段 1–3 处 | 高频 | 下划线标记 | | 容器层 | 引用块、概念标签、长句强调 | 按需 | 浅底引用、荧光笔、徽章 |
An open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的 AI 社交媒体智能体——发现热点趋势、创作内容、一键发布至各大平台,并学习分析哪些内容真正有效,覆盖小红书、抖音、知乎、哔哩哔哩等平台。
Repo: zju-real/easel
通用 AI 生图:文生图 / 图生图 / 图像变体。当用户说 AI 生图、AI 画图、文生图、图生图、生成图片、生成配图、图像生成、AI 出图、AI…
AI 音乐 / BGM 生成:给短视频、社媒内容生成原创背景音乐 / 配乐 / 纯音乐。通过可插拔 provider(阿里 DashScope / Suno 类第三方…
AI 视频生成:文生视频 / 图生视频 / 数字人首帧驱动。通过可插拔 provider(通义万相 Wan / 火山 Seedance / 快手可灵 / OpenAI…
outputs/ 目录下的产物管理:按日期/平台/类型归档、打标签、搜索历史内容、生成素材清单。 当用户说"整理素材"、"归档"、"找之前的内容"、"搜索历史"、"素材管理"、…
音频降噪:去除录音中的背景噪声、电流声、风噪、嗡嗡声,基于 ffmpeg 滤镜链(afftdn/highpass/lowpass)。…
通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成…