迈克尔公众号排版
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 安装 @user_0b998acb/michael-wechat-article 技能。
技能介绍
痛点:公众号编辑器会吃掉你的样式
把文章从 Markdown 直接粘进公众号编辑器,几乎注定会乱版:<style> 标签被剥掉、class 和 id 属性被忽略、position: absolute / display: grid / @media 全部失效,整篇排版塌掉。这个技能要解决的就是这件事——它不写文章,只负责把现成稿件转成单文件、全内联样式的 HTML,让你全选复制就能粘进去。
核心流程
- 稿件解析:支持
.md/.txt/.docx(docx 需先装python-docx)。#作主标题、##作章节标题、>作引用、-或数字列表作列表项,首行摘要:xxx会被识别为导读卡。 - 模板选择:
references/theme-index.md里列了 7 套主题(classic-blue、minimal-read、ink-wash、japandi-air 等),默认classic-blue,配色单一来源是scripts/themes_palette.py。 - 一键排版:优先跑
scripts/typeset_article.py,输出_排版.html;脚本会自动调用scripts/validate_weixin_html.py做兼容校验,用--no-validate可跳过。 - 组件体系:模板按 B01–B19 编号组织(标题卡、金句、对比表、作者卡、往期推荐等),切换主题只改视觉,不改编号与语义结构。
- 本地预览与 MCP:
scripts/wrap_preview.py生成带预览壳的页面;scripts/mcp_server.py是纯标准库 stdio 服务,暴露typeset_article、list_themes、make_preview等工具。
硬约束与注意点
- 兼容红线:输出禁止
<style>、class、id、position、float、flex、grid、@media、@keyframes、var();根容器必须是<section>,不带<body>外壳;<img>要有max-width:100%和height:auto,<a>必须有真实href。 - 文末顺序硬规则:正文收尾固定为
B13 文末三件套 → B20 固定签名 → B14 作者卡 → B15 往期推荐 → B16 参考资料,且 B16 必须是最后一块。 - 占位符不阻塞但必须补:
{{公众号名称}}、{{城市}}、{{结尾金句}}等只产生 WARNING,交付时要明确提醒发布前替换。 - 回退策略:模板缺失就停止装配并指出缺失项,不凭记忆手写组件;格式不支持就提示退出,不改写原稿含义;校验报 ERROR 必须修复后再交付。
- 边界:只做微信平台排版,不涉及小红书 / 知乎;不支持需要 JS 交互、响应式或动画的网页;文章正文内容仍需自己写。
使用场景
- 拿到 markdown 技术稿,要产出可直接粘进公众号编辑器的 HTML
- 公众号改版后,需要给存量文章批量替换为新主题样式
- 要在文末固定追加三件套、签名、作者卡和往期推荐,并保证顺序正确
- 怀疑某段排版会被微信编辑器过滤,需要先做兼容校验再发布
适合人员
- 负责公众号周更的技术作者,想把 markdown 草稿快速排成规范版式
- 运营要把活动稿整理成公众号格式,并替换公众号名称、城市等签名信息
- 独立开发者想批量套用同一套主题,统一多篇文章的视觉风格
- 内容团队负责人需要在发布前检查 HTML 是否会被微信编辑器过滤或错乱