信息充足现在输出完整笔记。用 AI Agent 把 Markdown 一键排成公众号 HTMLgzh-design-skill 深度解析项目地址github.com/isjiamu/gzh-design-skill作者甲木 × 摸鱼小李AGPL-3.0 开源核心观点这个项目解决的是一个听起来小、实际上很扎手的工程问题微信公众号编辑器对 HTML/CSS 有一套白名单式的强过滤机制导致普通前端 HTML 粘进去必然塌格式。gzh-design-skill 的本质不是好看的模板而是一套把微信平台限制从靠人记变成靠脚本兜底的确定性工程体系。放进历史脉络看这不是什么新赛道Markdown 转公众号工具至少存在五年Markdown Nice、墨滴、md2wechat 等早就在做。但前代方案普遍是浏览器端渲染 → 复制富文本的路子依赖浏览器剪贴板行为格式稳定性差或者直接调公众号草稿 API需要 OAuth 授权链路重、门槛高。gzh-design-skill 走的是第三条路生成确定性合规的 HTML 文件用户自己粘贴把对齐平台限制的工作量前置到脚本校验而非运行时修复。这是渐进优化而非范式突破但工程严谨度确实高出一档。关键机制为什么双关卡 全内联才是真正的护城河很多人看这个项目会把注意力放在6 套主题好看上其实最关键的设计是两层确定性保障第一层全内联样式 span包裹每个文字节点微信编辑器会过滤掉style块、外链 CSS、class/idid 直接删除class 保留但无规则可挂。唯一能活下来的样式路径是style...直接写在元素上。不仅如此公众号还会过滤position:fixed/absolute/sticky、float、display:grid、media、keyframes、CSS 变量、外部字体——几乎砍掉了所有现代布局手段。项目的做法是所有样式全内联正文每个文字节点用span包裹。这不是为了好看是平台的活命要求。第二层双关卡脚本——改 → 验 → 修闭环# 源头关扫组件库是否有反模式0 ERROR 才通过 python3 scripts/component_lint.py . # 产物关扫最终 HTML 是否合规0 ERROR / 半角 0 WARN python3 scripts/validate_gzh_html.py out.html源头关拦的是white-space:pre导致大片空白、正文四周虚线框、平台禁用 CSS 属性。产物关拦的是禁用 HTML 标签、漏掉span包裹的裸文字节点、没转成全角的标点。这个设计的精髓在于确定性下沉脚本不靠模型记得住规矩。LLM 在长上下文任务中遗忘约束是已知弱点把硬规则交给 Python 脚本而非让模型自律是真正懂 AI Agent 局限性的工程选择。主题系统设计变量驱动而非堆 CSS6 套主题摸鱼绿、红白、石墨极简、留白禅意、摸鱼票据、橄榄手记都不是简单的换色每套都是设计变量 数十个精细组件 视觉层级表 文章类型配方表的完整体系。配色结构有固定的角色分工角色作用取色思路主色章节编号、锚点强调品牌色如#059669emerald浅底/浅边框卡片背景、引用块底主色同色系极浅版点睛高亮色每段 1~2 处黄底高亮与主色冷暖对比的第二色中性灰阶正文/标题/分割线#111827 → #9CA3AF承担 90% 文字下划线标记色关键词逐段标记主色浅色版温和不抢戏克制三原则主色全文 ≤5 处出现大面积白底灰阶一段内高亮 ≤2 种。这三条约束实际上是在对抗 LLM 的用色过度倾向——不加约束的模型会把文章排成彩色大礼包。智能排版章节编号、关键词下划线、引言卡这是这个项目超出静态模板的地方属于 Agent 层面的内容理解能力章节自动编号末章特殊处理∞ / ///不是简单的 1、2、3关键词下划线每段主动标 1~3 个关键词由 Agent 判断重要性从正文提炼引言卡与目录需要理解文章结构而非机械套模板作者签名去重合并防止多次运行重复插入签名中文全角标点正文自动转换代码块内原样保留区分语境安装与使用三种安装方式推荐第一种# 方式一一行安装推荐 npx skills add https://github.com/isjiamu/gzh-design-skill # 方式二手动 clone适合 Claude Code git clone https://github.com/isjiamu/gzh-design-skill.git ~/.claude/skills/gzh-design装好后直接对 Agent 说用摸鱼绿把这篇文章排成公众号 HTMLarticle.mdAgent 工作流依次完成选主题确认 → 读组件库 → 解析 Markdown → 装配 HTML → 跑校验 → 输出带复制按钮的预览页。目录结构的核心gzh-design/ ├── SKILL.md # Agent 入口工作流主文档 ├── references/ │ ├── theme-index.md # 6 套主题索引单一来源 │ ├── theme-*.md # 各主题组件库 │ ├── theme-generator.md # 主题生成器 │ └── common-components.md # 跨主题通用增量组件 ├── scripts/ │ ├── validate_gzh_html.py # 产物合规校验 │ └── component_lint.py # 源头检查交叉验证我搜索了两个独立信息源信源一axtonliu.ai《微信公众号 HTML/CSS 支持情况解析》2025年3月这是一篇独立技术作者对公众号平台限制的实测文章结论与 gzh-design-skill 的设计完全吻合确认style块、外链 CSS 被完全禁止必须使用内联样式确认positionabsolute/fixed/relative 全部失效、float、media、keyframes、transform均被过滤确认id属性会被微信删除gzh-design-skill 因此刻意回避了锚点跳转依赖补充了一个 gzh-design-skill README 没提到的细节class属性实际上会被保留只是无 CSS 规则可挂因此也没有实际作用——这说明 gzh-design-skill 禁用class的选择是正确的不是过度保守信源二腾讯云开发者社区《公众号排版太痛苦AI Agent 来救你》2026年6月这是另一位开发者独立实现了类似思路的文章不同代码库核心架构与 gzh-design-skill 高度重叠感知Markdown 解析→ 决策主题选择→ 行动HTML 生成 微信适配。但两者有明显差异该文的方案没有双关卡校验脚本属于生成即交付合规性依赖人工检查该文的主题系统是独立 CSS 文件 脚本注入没有组件库 配方表的厚度两者均认同30 分钟手动排版 → 秒级自动生成的效率提升判断但 gzh-design-skill 的工程严谨度明显更高综合判断原文的核心技术主张全内联样式、禁用 position/grid/class、脚本确定性校验均得到独立信源的事实层面印证。关于换模型不走样的主张也是合理的——确定性逻辑下沉到脚本后模型只做内容填充理论上国产模型均可跑通。边界与局限不能无条件唱赞歌几个需要诚实指出的限制只排版、不写作README 明确写了这是先有 Markdown 再用它不能指望它帮你生产内容。这在宣传语境下容易被忽视。图片仍需手动上传公众号要求图片来自微信素材库mmbiz.qpic.cn域名生成的 HTML 里的外链图片在公众号内无法显示。这个痛点项目没有完全解决只能在文章里用占位组件上传步骤仍是手动的。粘贴不掉格式的前提是用对粘贴方式必须用预览页的复制到公众号按钮而非普通 CtrlC否则剪贴板行为取决于浏览器仍可能出问题。主题生成器依赖模型能力用一句话或参考图生成新主题背后是让 LLM 输出 45~75 个 HTML 组件块质量高度依赖模型的上下文理解能力。能力弱的模型生成的主题可能一致性差仍需人工审核。AGPL-3.0 协议的商业使用风险如果有公司想把它集成进 SaaS 产品AGPL 要求即使只部署成服务也必须开源修改版代码——这是很多商业场景的硬门槛需提前评估。个人启发对内容运营者如果你每周写 2 篇以上公众号排版时间是实打实的沉没成本。这个工具的价值不在于生成漂亮排版市面上有很多而在于可重复、跨模型、不依赖某个网页工具的稳定性——你的主题文件就在本地 Git 仓库里不会因为第三方工具关停而丢失。对 AI Agent 开发者gzh-design-skill 是一个很好的确定性约束 LLM 内容生成组合的范本。核心思路是把平台的死规则写成校验脚本不可绕过的硬约束让 LLM 只做软判断内容理解、关键词提取、风格匹配。这个分工思路可以直接迁移到其他平台适配场景。对工具开发者/贡献者项目当前最大的工程缺口是图片自动上传——如果能接入微信公众号素材 API 做图片批量上传整个链路的一键才算真的闭合。这是最有价值的贡献方向。延伸思考确定性下沉脚本能走多远当平台微信悄悄更新白名单规则时脚本校验会出现漏判——这套工程体系的维护成本取决于有没有人持续跟踪平台变更。开源社区能否形成平台变更 → Issue → 脚本更新的快速响应机制决定了这个项目的长期可靠性。Agent Skill 这个形态会成为主流吗目前 Claude Code / Cursor 等工具的 Skill/Rule 体系还没有标准化各家实现不兼容。gzh-design-skill 作为一个早期实践验证了把领域知识打包成 Skill 给 Agent 调用的可行性——但如果 Agent 平台出现大的架构变更如 Claude Code 换接口协议这套 Skill 可能需要重写适配层。主题生成器是这套系统最脆弱的环节还是最有价值的扩展点让 LLM 一次性生成 45~75 个组件的完整主题库成功率高度依赖 prompt 工程和模型能力。随着模型上下文窗口和指令遵循能力的提升这个功能的稳定性会系统性提高——这意味着用户自定义主题的门槛会越来越低6 套内置主题的价值反而会相对下降项目的核心竞争力将更多落在校验脚本的准确性而非主题数量上。 参考来源GitHub - isjiamu/gzh-design-skill: 把 Markdown 一键排成可直接粘进公众号编辑器的精致 HTML —— 6 套精选主题 主题生成器 双关卡校验。An AI-agent skill that turns Markdown into paste-ready WeChat article HTML. · GitHub
佛山夏令营推荐:军博营地服务周到 - 晴光转树 开篇语:当下佛山家长为 6 至 16 岁青少年挑选暑期成长营地的需求持续走高,市面上各类夏令营机构层出不穷,场地、师资、课程、安全标准参差不齐,不少家庭在对比筛选时耗费大量时间精力,很难找到兼顾正规资质、完善…
OpenClaw 小龙虾部署避坑大全,路径 / 杀毒 / 初始化故障汇总 📌OpenClaw 工具定位与核心能力解析 许多用户仅将 OpenClaw 视为基础对话 AI,但其本质是一款能够全面操控本机软硬件的智能执行助手。在接收自然语言指令后,该工具会自动拆解复杂任务,调用相应的功能模块完成整套操作流程&#x…
2026年7月戴尔服务器回收Top榜:哪家靠谱?优缺点深度测评 你是否也在为闲置的戴尔服务器找不到合适的归宿而焦虑?担心回收价格被压得太低,又怕数据泄露带来安全隐患? 现如今, 数字化转型进程加速时, 企业 IT 设备更新换代频率特别高, 要是大量退役的 PowerEdge 服务器处理不妥当, 不但会造成资源浪费…
WebRTC实战:屏幕与摄像头同步录制技术详解 1. WebRTC初体验:从零实现屏幕与摄像头录制系统WebRTC技术正在重塑实时通信领域,它让浏览器无需插件即可实现音视频交互。最近我在一个在线教育项目中实现了屏幕共享与摄像头同步录制功能,过程中踩了不少坑也积累了些实战经验。本文将完整还原…
OmniBox Docker部署指南:影视服务中枢的容器化实践 1. 项目概述:OmniBox不是另一个“套壳播放器”,而是一套可定制、可演进的影视服务中枢 OmniBox这个名字,第一次看到时我下意识以为是浏览器地址栏的变体——毕竟omnibox在Chrome里就是那个万能输入框。但实际接触后才发现,它压根…
Windows文件后缀与隐藏文件管理全指南 1. 为什么需要管理文件后缀和隐藏文件在日常使用Windows系统时,文件后缀名和隐藏文件的显示设置是每个用户都会遇到的基础操作。这个看似简单的功能,实际上影响着我们的工作效率和系统安全性。文件后缀名(如.txt、.docx、.exe)是操…
brew install tree 执行原理深度解析:从命令到系统底层 1. 为什么一条 brew install tree 命令,值得写满五千字? 你刚在终端里敲下 brew install tree ,回车后屏幕开始滚动下载、编译、链接——几秒后提示 > Summary 🍺 ,你输入 tree -L 2 ,一个清晰…
macOS安装Adobe Creative Cloud全攻略与优化技巧 1. Adobe Creative Cloud 在 macOS 系统的安装基础流程作为数字创意行业的黄金标准,Adobe 系列软件在 macOS 平台上的安装有其特殊性。首先需要明确的是,Adobe 已全面转向订阅制的 Creative Cloud 模式,这与早期独立安装包的形式有本质区别。…
电脑开机慢?系统自带工具高效优化指南 1. 为什么你的电脑开机越来越慢?每次按下电源键后,那个漫长的等待过程简直让人抓狂。看着屏幕上转圈的图标,我经常在想:到底是什么拖慢了电脑的启动速度?经过多年与各种电脑"疑难杂症"打交道,我发…
VS Code 高效配置与个性化定制全攻略 1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像 在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…
WinRAR高效配置指南:从基础安装到高级压缩实战 前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…
PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 在软件开发过程中,清晰的系统设计往往比编码本身更为关键。传统拖拽式UML工具虽然直观,却常常成为效率杀手——频繁的鼠标操作打断设计思路,版本控制困难,…
【RT-DETR涨点改进】29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 开篇故事 上个月帮一家安防厂商做项目优化,他们用RT-DETR做实时人流统计,部署在NVIDIA A10上。客户反馈说:“GPU利用率才30%,但延迟已经飙到40ms了,加人流量就丢帧。” 我远程一看,好家伙——生产环境里每个请求单独…
Postman 环境变量实战:3种动态设置方法与CI/CD集成避坑指南 Postman 环境变量高阶实战:动态管理与 CI/CD 深度集成在接口自动化测试领域,环境变量的灵活运用往往成为区分初级与高级测试工程师的关键能力。本文将深入探讨 Postman 环境变量的三种动态设置模式,并分享 Newman 在 CI/CD 流水线中的实战避坑…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…