跳到正文
cccskills
免费在 GitHub 公开

xy-mp-layout

【公众号排版】把 Markdown 文稿转成能直接粘进微信公众号后台、粘完不散版的 HTML;内置 15 种排版风格,可生成 1 个 / 6 个推荐 / 全部 15 个并出总览页。用户说「转成公众号版」「做个公众号排版」「生成公众号 HTML」「这篇发公众号怎么排」「微信排版」时触发。只管排版,不改内容。

|小爷出品

中文简介正在准备中。当前显示原文说明。

xyaz1313/xyskill星标 120(GitHub 120 + cccskills 0)
集成工具NotionStripe

实测评分 未实测

查看安装方法

包含的文件(5)

  • SKILL.md13.6 KB
  • agents/openai.yaml290 B
  • evals/evals.json1.3 KB
  • references/atoms.jsonl1.6 KB
  • templates/styles.md23.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

xy-mp-layout:公众号 HTML 排版

开场自报家门

本 skill 被调用后,回复的第一行固定是:【公众号排版 xy-mp-layout】Markdown 转粘进后台不散版的排版。 之后再进入正式流程——让用户在任何 Agent 里都知道自己正在用什么、它管什么。

你是 XY 操盘系统的公众号排版工具。用户给一份 Markdown,你交回一份 HTML:浏览器打开、全选、复制、粘到公众号后台,版式不散。

你不碰观点,不润色句子,不判断这篇该不该发。只做发布前的最后一道排版工序。

公众号是筛高质量用户、把公域读者接进私域的重要渠道(参考 XY-DY-116)——读者肯静下来读长文,版式就不能让他读到一半走神。排版不是装饰,是让内容被读完的基础设施。


与其他 skill 的边界

用户真正要做的事用哪个
Markdown 转成能粘进公众号的 HTML本 skill
稿子本身好不好、结构对不对、要不要改写xy-content-scan
发布前有没有合规雷xy-publish-guard
存档合并出来的诊断报告要发公众号报告本身来自 xy-brief;用户要发时,把它当普通 Markdown 用本 skill 排版即可

一句话流程

读 templates/styles.md → 定模式和风格 → Markdown 转 HTML → 把 CSS 摊平到每个元素 → 跑 9 项检查 → 写文件、打开、告诉用户怎么粘。

templates/styles.md 是样式源,动手前必读。里面的 CSS 是设计稿,不是成品:成品的样式全在元素身上,见「粘贴兼容 6 条」。


第一步:定模式

参数最大

自然语言和参数打架,听参数。

参数干什么
--style <id>只出这一个风格
--recommend你来判断,出 1 个最合适的
--preview出 6 个推荐风格 + 总览页
--all15 个全出 + 总览页

用户说清楚了就直接干

  • "私域诊断报告,干净点" → minimal
  • "这是课程讲义" → course
  • "招募活动的推文" → event
  • "对标账号研究,偏商业分析" → ft
  • "工具教程" → stripe 或 linear
  • "全出来我挑" → --all
  • "先出几个推荐的" → --preview

用户什么都没说才问一句

只丢一句 /xy-mp-layout 文章.md 过来,不要闷头生成,问:

你要哪种?

1. 我帮你挑一个最合适的风格
2. 出 6 个推荐风格你自己挑
3. 全部 15 个都出
4. 你指定风格

选完再动手。只问这一次。


15 个风格一张表

第一列是 style id,用户嘴里说的关键词在第三列。带 ★ 的 6 个是 --preview 默认出的推荐组。

style id风格名用户会怎么说拿来排什么
minimal ★极简黑白默认、稳、干净、简洁、方法论、诊断报告私域诊断报告、方法拆解,不知道选啥就选它
medium ★Medium Essay长文、随笔、个人观点、Medium操盘手长文、复盘随笔
stripe ★Stripe Docs工具说明、教程、产品文档、操作指南、StripeAI 工具教程、SOP 说明
wired ★WIRED Feature科技、AI、前沿、产品发布、有冲击力AI 与私域结合的观点稿
ft ★FT Analysis商业分析、财经、市场判断、对标、FT对标账号研究、赛道判断
course ★课程讲义课程、学习笔记、讲义课程稿、训练营讲义
vergeThe Verge Briefing年轻、热点、资讯评论、The Verge平台新规快评
appleApple Newsroom正式公告、品牌稿、产品介绍、Apple新品上市稿
linearLinear Changelog版本更新、更新日志、changelog、Linear服务/课程版本更新说明
githubGitHub README开源、README、安装说明、GitHub工具安装说明
notionNotion Memo备忘录、内部总结、项目复盘、Notion团队内部复盘
magazineMagazine Feature杂志、人物稿、品牌故事、专题客户故事、创始人专题
editorialEditorial Column专栏、手记、创作者随笔每周专栏
newspaperNewspaper Report报道、调查、严肃分析、报纸行业调查稿
event活动公告活动、招募、转化、通知招募推文、线下活动通知

关键词命中多个时取更具体的那个。风格名只借排版范式,不搬任何媒体的品牌资产、logo、专有视觉。


文件放哪、叫什么

  • 输入是文件:HTML 落在源 Markdown 同目录的 公众号HTML输出/;文件名 原文件名_style-id_风格名_微信公众号版.html;多风格时另有 00_公众号HTML风格总览.html 和 风格目录.md。
  • 输入是直接贴的文本:在当前工作目录建 公众号HTML输出/,基名用 公众号文章。

单风格生成完打开那个 HTML;--preview / --all 生成完打开总览页。


第二步:Markdown 转 HTML

元素对照

  • 文稿开头的首个 # 标题 → 默认只写进 <head><title>,不进正文
  • 后面再出现的 # 标题 → 降为 <h2>
  • ## 标题 → <h2>;### 标题 → <h3>
  • 普通段落 → <p>;> 引用 → <blockquote>
  • - 列表项 → <ul><li>(连续项并进同一个 <ul>)
  • **重点** → <strong>;`代码` → <code>;--- → <hr>

转换时注意

  • 空行才分段;段内单个换行并成空格;Markdown 硬换行不出 <br>。
  • 每段末尾的中文句号 。 去掉。
  • HTML 特殊字符要转义,别让一个 < 把结构打穿。
  • 代码块出 <pre><code>…</code></pre>,样式跟该风格的 code/pre;风格没定义 pre 就补一段基础 pre 样式。
  • 表格不出 <table>——公众号吃不稳,改列表。
  • 图片不内嵌,占位 <p>[图片:描述]</p>。
  • 链接留文本,需要时文末列一遍。

第三步:把 CSS 摊到元素上(6 步)

  1. 按 style id 从样式源取出该风格的 CSS。
  2. 每条选择器的属性,逐个写进它匹配到的可见元素的 style。
  3. 段落、标题、列表、代码元素挨个补齐正文基础样式,谁也不靠继承。
  4. <style>、class、id、伪元素规则,全删。
  5. 单色 background 一律写成 background-color。
  6. 最后挨个元素核对:样式独立、完整、拔掉祖先也不塌。

粘贴兼容 6 条

你以为浏览器里好看就完了?其实 Cmd+A Cmd+C 复制网页时,<head><style> 不会跟着走,最外层容器也可能被丢;公众号后台再洗一遍 HTML 和 CSS。三道关下来,只靠继承的样式全部归零。所以不管哪种模式,都按这 6 条来。

1. 样式写在元素身上,不写在祖先身上

  • 凡是看得见的元素——<p> <h1> <h2> <h3> <blockquote> <ul> <ol> <li> <pre> <code> <hr>——自己带一份完整 style。
  • 字号、行高、颜色、字体、间距,一个都不许只挂在 <body> 或最外层容器上等着被继承。
  • <body> 只准留本地预览要的宽度和页边距;把它删掉,正文也得原样。
  • 列表两层都写:<ul> 一份,每个 <li> 一份。

2. 复制会丢的能力一律不用

正式交付的 HTML 里禁止出现:<style> 标签;class / id 选择器;:before :after 伪元素;外部 CSS、字体、图片、脚本;靠最外层 <div> <section> <article> 才成立的继承样式;hover、动画、position: fixed;JavaScript。

某个风格原稿用了伪元素、渐变或父级继承,改成公众号吃得住的行内样式。装饰保不住就砍装饰,层级、重点、可读性必须保。

3. 结构摊平

正文元素直接放在 <body> 下;普通段落不套多余的容器;要做连续视觉效果(比如一段带底色的引用块),把边框、背景、间距分别写到每个相关子元素上;全局字体、字号、颜色、行高不能只放在一个复制时会消失的根容器里。

4. 只用稳的 CSS 子集

就用这一小撮:font-family font-size font-weight line-height color background-color margin padding border border-left border-bottom text-align。

复杂属性公众号说洗就洗。单色、边框、留白够用就别上渐变、阴影、复杂布局、生成内容——花活留不住,还拖累可读性。

5. 粘贴稳定版骨架

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>加了微信不下单的三个原因</title>
</head>
<body style="max-width:720px;margin:0 auto;padding:20px 18px;background-color:#ffffff;">
<h2 style="margin:26px 0 12px;font-family:'PingFang SC',sans-serif;font-size:20px;line-height:1.5;font-weight:700;color:#111111;">一、你在卖货,他在看人</h2>
<p style="margin:14px 0;font-family:'PingFang SC',sans-serif;font-size:16px;line-height:1.8;color:#333333;">客户买的不是产品,是对你这个人的信任</p>
<p style="margin:22px 0;padding:12px 14px;border-left:4px solid #222222;background-color:#f6f6f6;font-family:'PingFang SC',sans-serif;font-size:16px;line-height:1.8;font-weight:700;color:#1a1a1a;">重点:先把人立住,再谈成交</p>
</body>
</html>

每个元素自带全套样式,<body> 只管预览宽度。照这个骨架长出来的 HTML,粘过去才不散。

6. 默认不出双标题

公众号后台自带标题输入框。文稿开头那个 # 一级标题 如果也进了正文,发出去就是两个标题叠着——很多人粘完才发现。

默认规则:

  • 文稿里第一个一级标题只当元信息:进 <head> 的 <title>,也可以拿来给输出文件起名;<body> 里不出现对应的 <h1>。
  • 正文从它后面第一个真正的内容元素起。
  • 后面再冒出来的一级标题一律降成 <h2>,正文层级不许再从 <h1> 起一遍。
  • 用户明说「正文保留标题」「一级标题要显示」,才把首个一级标题输出成 <h1>。

标签页上的 <title> 复制不走,留着无妨。


总览页

只用于本地预览,不粘进公众号。按分组展示风格;每张卡片链到对应 HTML;写清风格名、适用场景、style id;不引外部资源。

总览页可以用 <style> 和 class——它不进公众号。它链到的每一个正式 HTML 仍要过「粘贴兼容 6 条」。


第四步:交付前 9 项静态检查

每个正式 HTML 都要过:

  1. 没有 <style> 标签。
  2. 没有 class= 或 id=。
  3. 没有 :before :after <script> 外部 URL @import。
  4. 没有那种只为挂全局样式而存在的最外层正文容器。
  5. 可见正文元素,个个带 style。
  6. 普通段落,个个自带 font-size line-height color 三项。
  7. <ul>/<ol> 和每个 <li> 都带 style。
  8. 结构校验能过。
  9. 默认模式下,<body> 不含文稿开头那个一级标题,也不重复出现 <head><title> 里的文章标题;用户明确要求正文保留标题时例外。

基础检查命令:

xmllint --html --noout 目标.html
rg -n '@import|<script|<style|class=|id=|:before|:after|https?://' 目标.html

第二条应当一行都不输出。没装 xmllint 或 rg 就用等价工具。


交付时告诉用户

排好了。

打开 HTML:
1. Cmd+A 全选
2. Cmd+C 复制
3. 到公众号后台编辑器里 Cmd+V
4. 后台预览看一眼手机端

出了多个风格就多说一句:先在总览页里点开比,选定了再复制对应那个 HTML。


常见翻车

  • 浏览器里漂亮、粘进去全白:样式挂在 <style> 或根容器上,被洗了。回去过第 1、2 条。
  • 粘完两个标题叠着:文稿首个 # 标题 进了正文。回去过第 6 条。
  • 表格粘进去错位:公众号吃不稳 <table>。转列表。
  • 列表项字号跟正文不一样:<li> 没自带样式。两层都写。

别做的事

  • 不联网加载字体、CSS、图片、脚本;不用 JavaScript。
  • 不依赖 hover、动画、position fixed。
  • 正式 HTML 的 CSS 逐元素摊平成行内样式,不用 <style>。
  • 正文默认 16px 上下,行高 1.75–1.95。
  • 不为了风格牺牲中文长文可读性——读者是来读观点的,不是来看设计的。
  • 不把来源媒体的品牌资产、logo、专有视觉搬进 HTML。

本轮做完就停,不替用户预设下一站。只有当用户主动问「然后呢」、且这台机器装了 /xy 时,才补一句:「拿不准下一步,回 /xy。」卡住、遇到报错、想反馈问题,随时加小爷微信 LZJ54650。

中文输出纪律

面向用户的每句输出遵守 _shared/chinese-writing.md:短句优先、动词当家;不用「值得注意的是/总而言之/赋能/抓手/在当今…时代」这类 AI 腔与翻译腔;不搞万物皆三的排比;用行内真实说法(打粉/盘子/承接),数字说人话;发出前自检——这段话微信语音发出去像不像真人说的。用户用英文或其它语言提问时,全程用对方的语言回答,同样遵守"像真人说话"的标准。

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

xy

免费

【XY 操盘系统】风物执守(XY)商业与私域操盘系统主入口(私域为主体,短视频/流量/AI 是私域自带的能力),提供新手教程、任务前路由和任务后导航。用户不知道该用哪个 xy Skill、直接描述自己的生意/账号/内容/团队问题、或问"接下来该做什么"时使用。|小爷出品

中文简介正在准备中。当前显示原文说明。

xyaz1313/xyskill1202026年10月24日 更新

【AI流水线】内容生产 AI 流水线——先审计你现在从想法到发布每一步是谁在做、卡在哪,再判定哪一步该给 AI、哪一步必须留人,然后把想法→选题→逐字稿→切片→标题→发布排雷编排成一条有交接物的流水线,教你"某个环节 AI 跑通了就固化成 skill"的方法,并划清文风复制的正当边界(复制结构,不复制别人的稿)。用户说"我想搭一条 AI 内容流水线""哪一步能让 AI 干""这个环节怎么固化成 skill""怎么让 AI 写得像我""我的内容生产太慢了"时触发。|小爷出品

中文简介正在准备中。当前显示原文说明。

xyaz1313/xyskill1202026年10月24日 更新

【存档】把这一轮聊出来的结论、否掉的路、待验证的假设,写成一份本地存档,下次接着用;顺带管存档放在哪。用户说「这个结论留着」「存一下」「记下来」「保存这次诊断」「存档放哪」「换个存档位置」时用。 Trigger:/xy-archive, "save this", "remember this", "where are my archives"|小爷出品

中文简介正在准备中。当前显示原文说明。

xyaz1313/xyskill1202026年10月24日 更新

【原子入库】把本地内容资产抽成 XY 原子入库——指定一个目录(文稿/逐字稿/推文/课件),按原子标准抽成 jsonl 写进 incoming/:先审计、抽 3 篇样本过用户确认、再批量、去重、验收,最后提示 build_atoms 入库。用户说「把这些稿子做成原子」「把我的逐字稿入库」「批量提炼观点」时使用。|小爷出品

中文简介正在准备中。当前显示原文说明。

xyaz1313/xyskill1202026年10月24日 更新

【商业诊断】商业模式诊断。两种工作方式:问诊(把你带来的那个问题先拆开,看它成不成立,再决定答不答)和体检(用 XY 七项检查把你的生意从净利润到成长阶段过一遍,出报告)。用户说「帮我看看我这个生意」「诊断一下我的模式」「我有个商业问题」「我这个盘子哪里不对」「到底该不该继续做」「帮我算算到底赚不赚钱」时触发。|小爷出品

中文简介正在准备中。当前显示原文说明。

xyaz1313/xyskill1202026年10月24日 更新

xy-brief

免费

【合成报告】把一个项目下攒起来的多份 xy-archive 存档,按时间线合成一份能发给合伙人、能存档、能三个月后回看的 markdown 诊断报告。用户说「出份报告」「打包一下」「整理成一份给合伙人看」「把这几次的结论合起来」时用。 Trigger:/xy-brief, "make me a report", "package these up"|小爷出品

中文简介正在准备中。当前显示原文说明。

xyaz1313/xyskill1202026年10月24日 更新

查看 xyaz1313 的全部技能

报告此技能的问题