本文へ移動
cccskills
無料GitHub で公開

wechat-styler

将 Markdown 文章转换为微信公众号可用的内联样式 HTML,支持多主题切换、结构化组件和 SVG 开场动画。用于公众号排版、文章 HTML 生成、替代不稳定外部排版服务。默认纯净排版,加 --components 启用 Agent 智能改写(组件+开场动画)。

日本語の概要は準備中です。原文の説明を表示しています。

zjp1997720/wechat-stylerスター 25(GitHub 25 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(31)

  • SKILL.md10.2 KB
  • agents/openai.yaml506 B
  • LICENSE1.0 KB
  • package-lock.json18.9 KB
  • package.json347 B
  • references/component-guide.md13.3 KB
  • references/opencli-injection.md3.1 KB
  • references/svg-animation-design.md9.8 KB
  • references/theme-guide.md8.1 KB
  • references/wechat-compatibility.md2.3 KB
  • scripts/components.mjs17.2 KB
  • scripts/convert.mjs55.4 KB
  • scripts/generate-cover-animation.mjs25.0 KB
  • scripts/generate-preview.mjs8.8 KB
  • scripts/inject-to-wechat.mjs10.2 KB
  • scripts/validate.mjs10.0 KB
  • scripts/wechat-image-pipeline.mjs4.7 KB
  • scripts/wechat-opencli.mjs7.2 KB
  • scripts/wechat-publish-core.mjs8.3 KB
  • tests/inject-cli.test.mjs4.8 KB
  • tests/output-contract.test.mjs1.9 KB
  • tests/wechat-image-pipeline.test.mjs1.1 KB
  • tests/wechat-publish-core.test.mjs1.7 KB
  • themes/elegant.yaml1.0 KB
  • themes/kami.yaml1.4 KB
  • themes/magazine-forest.yaml1.4 KB
  • themes/magazine-indigo.yaml1.4 KB
  • themes/magazine-ink.yaml1.4 KB
  • themes/minimal.yaml1000 B
  • themes/modern.yaml1.0 KB
  • themes/zhijian.yaml1.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

WeChat Styler - 公众号排版工具

将 Markdown 文章转换为优雅的公众号 HTML,支持多主题切换、结构化组件和 SVG 开场动画。

WeChat Styler 左右并列效果预览

使用方式

# 默认模式(纯净排版,无组件无动画)
/wechat-styler path/to/article.md
/wechat-styler path/to/article.md --theme kami

# 组件模式(Agent 智能改写 + 开场动画 + 8 种结构化表达)
/wechat-styler path/to/article.md --components

# 批量转换
/wechat-styler "articles/*.md" --theme kami

# 输出到指定路径
/wechat-styler path/to/article.md --output path/to/output.html

两种模式:

  • 默认模式:直接转换,克制排版,无组件无动画。90% 场景用这个。
  • 组件模式(--components):Agent 分析文章结构,智能改写 Markdown,自动加开场动画。生成前向用户确认。

可用主题

主题命令风格适用场景
zhijian(默认)--theme zhijian暖纸感 × 顾问可信度智见AI 品牌内容
kami--theme kami纸感编辑排版深度文章、商业分析
magazine-ink--theme magazine-ink墨水经典杂志通用杂志内页
magazine-indigo--theme magazine-indigo靛蓝研究风技术研究、深度调研
magazine-forest--theme magazine-forest森林田野笔记非虚构、自然叙事
elegant--theme elegant优雅复古商业案例、知识分享
modern--theme modern现代简约科技产品、教程
minimal--theme minimal极简主义哲学思考、个人随笔

主题详情、YAML 参数、扩展指南见 references/theme-guide.md。

工作流程

默认模式

用户只给文件路径和主题,Agent 直接调用 convert.mjs 转换,不做 Markdown 改写。

组件模式(--components)

Agent 不直接调用 convert,先执行 5 步智能改写流程:

第 1 步:分析文章结构

读完整篇 Markdown,识别适合用组件呈现的内容(表格→对比卡片、流程→步骤块、金句→金句块等)。只改写确实适合的内容,一篇文章组件数量控制在 3-6 个。详见 references/component-guide.md。

⛔ 防重复硬规则:金句块/提示块/警告块的核心原则是替换原文,不是追加。如果原文已经把同样的意思说清楚了,不要在原文后面追加组件重复一遍。正确做法是删掉原文的概括句,只保留视觉权重更高的组件;或者原文已完整表达时不加组件。生成前必须全文扫描确认无重复。

⛔ 围栏格式硬规则::::compare / :::flow / :::timeline 必须独占一行,前后留空行。紧跟正文的 :::compare 不会被解析,会以原始 markdown 显示。

第 2 步:提取开场动画参数

从文章内容推断标题(frontmatter.title)、副标题(核心观点一句话)、标签(3个以内关键词),并选择模板(见下)。

第 3 步:向用户确认

组件改写计划:
  • 开场动画(typewriter): 标题「初识 WorkBuddy」/ 副标题「...」/ 标签: ...
  • 「专家对比表」→ 对比卡片
  • 「Ask/Plan/Craft」→ 对比卡片
  • 「用好 WorkBuddy 的核心」→ 金句块
确认后开始生成?

第 4 步:生成前检查(必做)

调用 convert 之前,必须对改写后的 Markdown 逐条检查 references/component-guide.md 的「生成前检查清单」:

  • 图片插入位置是否在完整段落之后(不在句子中间)
  • 金句块/提示块/警告块是否与原文重复
  • :::compare / :::flow 围栏是否独占一行
  • 矩阵对比是否被误转成 compare
  • 开场动画标题长度是否超出 viewBox

第 5 步:生成

在内存中改写 Markdown(不改原文件),然后调用 convert:

node scripts/convert.mjs /tmp/rewritten.md --theme zhijian --components \
  --cover --cover-template typewriter \
  --cover-title "..." --cover-subtitle "..." --cover-tags "..."

--components 启用时自动包含 --cover(开场动画)。

SVG 开场动画

--components 模式自动包含开场动画。SVG SMIL 动画只在首次加载时播放,因此只做开场,其他位置用静态组件。

5 个模板

模板参数值气质适配
墨韵开篇ink-wash (默认)仪式感·墨点晕染方法论、品牌、课程
打字机流typewriter极客感·逐字打字·光标跟随技术教程、工具介绍
画卷展开scroll-painting叙事感·双横线·渐入佳境案例、复盘、故事
聚焦聚光灯spotlight判断感·聚光·标题缩放观点、评测、趋势
极简白描minimal-sketch克制·留白·呼吸圆点随笔、思考、感悟

Agent 模板选择逻辑

  • 「教程/工具/技术/CLI/Agent/开发」→ typewriter
  • 「案例/复盘/故事/落地/实战记录」→ scroll-painting
  • 「判断/观点/趋势/评测/分析」→ spotlight
  • 「随笔/思考/感悟/月度/年度」→ minimal-sketch
  • 默认/品牌课程/方法论 → ink-wash

Agent 选定模板后,在确认环节明确告知用户:"我选了 X 模板,因为文章有 Y 特征,你可以换。" 不确定时默认 ink-wash。

模板设计原则和踩坑清单见 references/svg-animation-design.md。

注入微信编辑器

微信编辑器的粘贴过滤器会剥离 <animate> 标签。用 opencli 直接操作 DOM 绕过:

export OPENCLI_PROFILE=4nwbtdn6
export WX_EDITOR_URL="https://mp.weixin.qq.com/..."
node scripts/inject-to-wechat.mjs article_wechat.html

稳定发布模式:

node scripts/inject-to-wechat.mjs article_wechat.html \
  --reuse-current \
  --title "公众号标题" \
  --summary "转发摘要" \
  --sync-cover-from-body \
  --save-draft \
  --report /tmp/wechat-publish-report.json

注入器会轮询定位正文编辑区,避开标题 ProseMirror;同步标题、摘要,并可把正文第一张 2.35:1 图片设为封面;自动压缩超过 2MB 的远程图片;等待微信完成图片转存;保存后验证 appmsgid、SVG、动画、图片和正文首尾。使用 --verify-only --reuse-current 可以只读检查已经打开的草稿。

详细流程见 references/opencli-injection.md。

组件拓展层

--components 模式启用 8 种结构化表达。默认模式下组件语法优雅降级成普通 markdown。

组件语法适用场景
金句块> **核心观点**文章核心论点
轻量标记==关键词==正文关键词强调(底部细线)
提示块> [!NOTE] 内容补充说明、技术旁注
警告块> [!WARNING] 内容注意事项、踩坑提醒
步骤序号1. [step] 动作操作流程、动作清单
流程卡片:::flow 围栏阶段流程
对比卡片:::compare 围栏方案 A vs B vs C
时间线:::timeline 围栏演进历程、项目复盘

完整语法示例和设计原则见 references/component-guide.md。

设计原则: 克制优于装饰 · 颜色从主题取 · 横向卡片 flex:1 等分优先 overflow 兜底 · 矩阵对比保留 table · 卡片内容要短 · 默认沉默

参数说明

参数说明默认值
--theme主题名称zhijian
--font-size正文字号(px)主题默认
--line-height行高主题默认
--accent-color强调色主题默认
--background-color背景色(solid hex)主题默认
--max-width内容最大宽度(px)640
--output输出文件路径<input>_wechat.html
--components启用组件模式(智能改写+动画+组件)false
--cover生成开场动画(--components 自动包含)false
--cover-template开场动画模板ink-wash
--cover-title开场动画主标题从 frontmatter.title 取
--cover-subtitle开场动画副标题从 frontmatter.summary 取
--cover-tags开场动画标签(逗号分隔)无

字号建议

手机端公众号文字显示比电脑端大,主题默认字号在电脑端看着合适,手机端会显挤。建议:

  • 长文/信息密度高的文章:--font-size 15(比默认 17 小一号,手机端更舒展)
  • 短文/情感类文章:用主题默认字号即可
  • 极简主题 minimal:默认就偏小,一般不需要调

占位符机制

写作时图床还没准备好?在 Markdown 里写占位符,convert 会渲染成居中虚线灰框:

【插入:文章开头的视频截图】

只支持独占一行的 【插入:xxx】(全角方括号)。

输出规则

  • 输入:path/to/article.md → 输出:path/to/article_wechat.html
  • 完整 HTML,内联样式,可直接复制到公众号编辑器
  • convert 后自动运行 validate.mjs 软门校验(不阻断,打印报告)

兼容硬规则详情见 references/wechat-compatibility.md。

References

文件内容
references/theme-guide.md8 主题完整配置、Renderer Presets、扩展指南、技术实现
references/component-guide.md6 组件完整语法示例、设计原则、智能改写规则
references/svg-animation-design.md5 模板设计原则、技术约束、11 条踩坑清单
references/wechat-compatibility.md公众号兼容硬规则(ERROR/WARN 详情)
references/opencli-injection.mdopencli 注入流程、前置条件、封装踩坑

版本: 1.8.0 · 作者: 大鹏

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

このスキルの問題を報告する