# Gzh Design

微信公众号文章排版引擎：把 Markdown / Word(.docx) / PDF / 纯文本转成可直接粘贴进公众号编辑器的...

- Repository: https://github.com/ZJU-REAL/Easel (4293 stars)
- Category: Documents
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add ZJU-REAL/Easel --skill gzh-design -g -a claude-code -y`
Codex: `npx skills add ZJU-REAL/Easel --skill gzh-design -g -a codex -y`
Cursor: `npx skills add ZJU-REAL/Easel --skill gzh-design -g -a cursor -y`
Gemini CLI: `npx skills add ZJU-REAL/Easel --skill gzh-design -g -a gemini-cli -y`

## Description

微信公众号文章排版引擎：把 Markdown / Word(.docx) / PDF / 纯文本转成可直接粘贴进公众号编辑器的 HTML，自动章节编号、关键词标记、引言卡、目录、代码块、图片/GIF、作者签名；主题从 references/theme-index.md 组件库按题材推荐，支持"一键自动排版"与按描述/参考图生成自定义主题。触发：用户提到"公众号排版/微信排版/gzh"、想把文章(md/docx/pdf/纯文本)转成公众号 HTML、说"自动排版/一键排版"公众号内容。不用于普通网页/落地页/PPT。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 公众号文章排版 Skill

把一篇 Markdown 文章转换为可直接复制粘贴进微信公众号编辑器、且粘贴后样式不丢失的 HTML。

核心资产是 `references/` 下的**主题组件库**（每套一个主题：设计变量 + 各组件完整 HTML + 模板骨架 + 映射规则）外加 1 套**通用增量库**（代码块 / 图片·GIF / 小标签标题，所有主题共用）。主题清单以 `references/theme-index.md` 为单一来源。本 SKILL.md 只负责流程与决策，**具体 HTML 代码一律从组件库取，不要凭记忆手写**。

## 工作流

### 0. 输入与格式归一化

用户可能给：Markdown 文本或 `.md` 路径（直接进第 1 步）、`.docx`、`.pdf`、`.txt`/无标记纯文本、网页富文本。**非 Markdown 输入必须先读 [references/format-normalize.md](references/format-normalize.md) 按其规则转成 Markdown 草稿并做结构确认**（docx 用 `scripts/extract_docx.py`，PDF 用 Read 分页读取+清噪，纯文本按标题启发式推断结构）。什么都没给时，向用户索要。

用户说「直接排 / 自动排 / 一键 / 不用问」时进**全自动模式**：跳过结构确认与选主题提问，自动推断结构、按题材自选主题、排版校验，交付时附决策说明（章节结构、自拟标题、选题理由）。

### 1. 选主题（自动推荐制）

读 [references/theme-index.md](references/theme-index.md)（主题信息的单一来源）。**据文章题材主动推荐最契合的主题**，再让用户一步确认, , 推荐但不擅自定死：

- **用户已在请求里指定主题** → 直接用，不问。
- **题材有明确契合** → 单问确认：「建议用 XX（理由），确认还是换一套？」选项给推荐项 + 1~2 个备选 + "看全部"。题材→主题契合参考 theme-index"适用场景"列：
  - 教程 / 测评 / 清单 / 工具盘点 / 知识整理 / 方法论拆解（信息密度高）→ 摸鱼绿
  - 深度分析 / 观点 / 力量感话题 → 红白色系
  - 设计 / 科技评论 / 专业观点 / 高端品牌 → 石墨极简风
  - 禅意 / 极简生活 / 深度随笔 → 留白禅意风
  - 工具对比 / 创意评测（票据视觉隐喻）→ 摸鱼票据风
  - 内刊手记 / 深度评测 / 案例复盘 → 橄榄手记
- **无明显倾向** → 默认首选 theme-index 第一行（摸鱼绿）作为推荐项放第一位，用 AskUserQuestion 让用户在几套里选（主题多于 4 套时先按气质分组问，再问该组下主题）。
- **全自动模式**（用户明说「直接排 / 一键 / 不用问」）→ 不提问，自动选题材最契合主题或默认第一行，交付时说明选择理由。
- **用户对现有主题都不满意 / 想要新风格** → 走「自定义主题生成」流程（见下节），生成并登记后再回到本步选用。
- **theme-index 为空** → 停止排版，告知用户需要先添加主题风格（可走「自定义主题生成」）。

用户定下主题后，才进入该主题内部的组件匹配（第 3、4 步：判定文章类型 → 按该主题的配方表选组件组合）。

### 2. 读组件库（两份）

(1) 据 theme-index 中该主题的"组件库文件"列，Read 该主题专属组件库 `references/theme-{标识}.md`（含引言卡、章节标题、正文标记、签名等主题专属组件）。
(2) **同时 Read 通用增量库** `references/common-components.md`, , 代码块、图片/GIF、小标签标题这三类所有主题共用，套用当前主题主色即可。

后续生成完全依据这两份组件库，HTML 一律从中取、不要手写。

### 3. 解析 Markdown 结构

The rest: https://github.com/ZJU-REAL/Easel/blob/HEAD/skills/builtin/gzh-design/SKILL.md
