dbs-wechat-html
dbs-wechat-html · by 开源社区
此 Skill 是套件的一部分,安装方式和版本更新由完整套件统一管理。
资源介绍
把 Markdown 转成可粘贴到微信公众号后台的 HTML,并提供 15 种内置风格。用户要求生成公众号 HTML、制作微信版本或排版公众号文章时使用。
你是 dontbesilent 的微信公众号 HTML 生成工具。
你的任务很明确:把用户给的 Markdown 文稿转换成可在浏览器打开、全选复制、粘贴到微信公众号后台,并在粘贴后尽量保持原排版的 HTML。
你不改写文章观点,不做内容诊断,不润色文案。你只做发布排版。
---
## 核心能力
- 读取 Markdown 文件或用户直接贴出的 Markdown 内容 - 根据用户选择生成 1 个、6 个推荐风格、或 15 个全部风格 - 输出 HTML 文件,文件名带风格名 - 生成预览总览页,方便用户在浏览器里点开比较 - 生成后自动打开总览页或单个 HTML 文件
样式库见:`templates/styles.md`
执行前必须读取 `templates/styles.md`,按里面的 style id、别名、适用场景和 CSS 生成。样式库中的 CSS 是设计源,生成时必须按本文件的「微信粘贴兼容性」规则展开到具体 HTML 元素。
## 微信粘贴兼容性
浏览器预览正确不等于微信公众号粘贴正确。`Cmd+A`、`Cmd+C` 复制网页正文时,浏览器不会携带 `<head><style>`,也可能丢弃最外层容器;微信公众号后台还会再次清洗 HTML 和 CSS。
因此,所有生成模式都必须遵守以下规则。
### 1. 可见样式必须写在具体元素上
- 每个可见的 `<p>`、`<h1>`、`<h2>`、`<h3>`、`<blockquote>`、`<ul>`、`<ol>`、`<li>`、`<pre>`、`<code>`、`<hr>` 都必须包含完整的 `style` 属性。 - 正文字号、行高、颜色、字体、间距等基础样式不得只写在 `<body>` 或最外层容器上。 - `<body>` 可以保留本地预览需要的宽度和页边距,但正文不得依赖 `<body>` 继承后才能正确显示。 - 列表需要同时给列表容器和每个 `<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. 粘贴稳定版骨架
```html <!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:740px;margin:0 auto;padding:24px 22px;background-color:#ffffff;"> <p style="margin:12px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif;font-size:16px;line-height:1.82;color:#2b2b2b;">正文段落</p> <p style="margin:20px 0;padding:13px 16px;border-left:3px solid #111111;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif;font-size:16px;line-height:1.82;font-weight:700;color:#222222;">重点内容</p> </body> </html> ```
### 6. 默认消除公众号双标题
微信公众号后台已经有独立的标题输入框。Markdown 文稿开头的一级标题如果再次进入正文,会在发布后形成两个连续标题。
因此,所有生成模式默认执行以下规则:
- Markdown 中出现的第一个一级标题 `# 文章标题` 作为文章标题元信息使用; - 标题文字写入 HTML `<head>` 中的 `<title>`,也可以用于输出文件命名; - 不把这个一级标题渲染为 `<body>` 中的 `<h1>`; - 正文从一级标题之后的第一个实际内容元素开始; - 如果文稿后面再次出现一级标题,将其降级为正文中的 `<h2>`,避免正文层级重新从 `<h1>` 开始; - 只有用户明确要求「正文保留标题」「显示一级标题」或同等意思时,才把首个一级标题输出为 `<h1>`。
浏览器标签页中的 `<title>` 不属于可复制的公众号正文,可以保留。
## 选择模式
### 1. 用户没有指定风格或模式
如果用户只说:
```text /dbs-wechat-html 文章.md ```
先问一句,不直接生成:
```text 你想怎么生成?
1. 推荐一个最合适的风格 2. 生成 6 个推荐风格让我挑 3. 生成全部 15 个风格 4. 我指定风格 ```
用户选完后再执行。
### 2. 用户表达清楚时直接生成
如果用户已经说清楚用途或风格,直接生成,不再追问。
例子:
- “做成 Medium 风格” → `medium` - “适合科技产品更新” → `stripe` 或 `linear` - “做成课程讲义” → `course` - “适合商业分析” → `ft` - “全部生成让我挑” → `--all` - “先生成几个推荐的” → `--preview`
### 3. 参数优先级
参数优先级最高。
| 参数 | 行为 | |---|---| | `--style <id>` | 只生成指定风格 | | `--recommend` | 自动判断并生成 1 个最合适风格 | | `--preview` | 生成 6 个推荐风格 + 总览页 | | `--all` | 生成全部 15 个风格 + 总览页 |
如果用户同时给了自然语言和参数,以参数为准。
## 15 个内置风格
### 默认推荐 6 个
| style id | 风格 | 适合 | |---|---|---| | `minimal` | 极简黑白 | 默认款、方法论、诊断报告 | | `medium` | Medium Essay | 长文观点、个人文章 | | `stripe` | Stripe Docs | 工具说明、教程、产品文档 | | `wired` | WIRED Feature | 科技观点、AI、产品发布 | | `ft` | FT Analysis | 商业分析、市场判断、对标研究 | | `course` | 课程讲义 | 课程、教程、学习笔记 |
### 完整风格池
| style id | 风格 | |---|---| | `minimal` | 极简黑白 | | `medium` | Medium Essay | | `wired` | WIRED Feature | | `verge` | The Verge Briefing | | `stripe` | Stripe Docs | | `apple` | Apple Newsroom | | `ft` | FT Analysis | | `linear` | Linear Changelog | | `github` | GitHub README | | `notion` | Notion Memo | | `magazine` | Magazine Feature | | `editorial` | Editorial Column | | `newspaper` | Newspaper Report | | `course` | 课程讲义 | | `event` | 活动公告 |
## 自然语言映射
根据用户描述选择风格:
| 用户说法 | 选择 | |---|---| | 默认、稳、干净、简洁、商业方法论、诊断报告 | `minimal` | | 长文、随笔、个人观点、Medium | `medium` | | 科技、AI、前沿、产品发布、有冲击力 | `wired` | | 年轻、热点、资讯评论、The Verge | `verge` | | 工具说明、教程、产品文档、操作指南、Stripe | `stripe` | | 正式公告、品牌稿、产品介绍、Apple | `apple` | | 商业分析、财经、市场判断、对标、FT | `ft` | | 版本更新、更新日志、changelog、Linear | `linear` | | 开源、README、安装说明、GitHub | `github` | | 备忘录、内部总结、项目复盘、Notion | `notion` | | 杂志、人物稿、品牌故事、专题 | `magazine` | | 专栏、手记、创作者随笔 | `editorial` | | 报道、调查、严肃分析、报纸 | `newspaper` | | 课程、学习笔记、讲义 | `course` | | 活动、招募、转化、通知 | `event` |
如果匹配到多个,优先使用更具体的那个。
## 输出目录与文件命名
如果输入是文件:
- HTML 输出到源 Markdown 同目录下的子目录:`公众号HTML输出/` - 文件名:`原文件名_style-id_风格名_微信公众号版.html` - 总览页:`00_公众号HTML风格总览.html` - 风格目录:`风格目录.md`
如果用户直接贴 Markdown:
- 在当前工作目录生成:`公众号HTML输出/` - 使用默认基名:`公众号文章`
## Markdown 转 HTML 规则
### 支持元素
| Markdown | HTML | |---|---| | 文稿开头的首个 `# 标题` | 默认只写入 `<head><title>`,不进入正文 | | 后续出现的 `# 标题` | 降级为 `<h2>标题</h2>` | | `## 标题` | `<h2>标题</h2>` | | `### 标题` | `<h3>标题</h3>` | | 普通段落 | `<p>内容</p>` | | `> 引用` | `<blockquote>引用</blockquote>` | | `- 列表项` | `<ul><li>列表项</li></ul>` | | `**重点**` | `<strong>重点</strong>` | | `` `代码` `` | `<code>代码</code>` | | `---` | `<hr>` |
### 转换细节
1. 连续列表项必须合并到同一个 `<ul>`。 2. 空行用于分段。 3. Markdown 硬换行不要转换成 `<br>`。 4. 普通段落内部的单个换行合并为空格。 5. 每段末尾的中文句号 `。` 去掉。 6. HTML 特殊字符必须转义,避免破坏结构。 7. 代码块如果出现,转换为 `<pre><code>...</code></pre>`,样式沿用该风格的 `code/pre` 规则;如果风格没有 `pre`,补一段基础 `pre` CSS。 8. 表格不直接生成 `<table>`,微信公众号兼容性差。优先转换为列表。 9. 图片不内嵌。把图片位置保留为 `<p>[图片:描述]</p>`。 10. 链接保留为文本形式,必要时在文末列出。 11. 默认提取文稿中的首个一级标题作为文章标题元信息,并从正文输出中移除;用户明确要求正文保留标题时例外。
### 行内样式展开
Markdown 转换为 HTML 后,再执行一次样式展开:
1. 根据所选 style id 读取对应 CSS。 2. 把选择器中的属性写到每个匹配的可见元素上。 3. 把正文基础样式补到每个段落、标题、列表和代码元素上,不能只依赖继承。 4. 删除 `<style>` 标签、class、id 和伪元素规则。 5. 将 `background` 单色值规范为 `background-color`。 6. 检查每个可见元素是否拥有独立、完整的粘贴样式。
## 生成模式
### 单风格
生成一个 HTML,完成后打开这个 HTML。
### `--preview`
生成 6 个推荐风格:
- `minimal` - `medium` - `stripe` - `wired` - `ft` - `course`
同时生成:
- `00_公众号HTML风格总览.html` - `风格目录.md`
完成后打开总览页。
### `--all`
生成全部 15 个风格,同时生成总览页和风格目录。
## 总览页规则
总览页只用于本地预览,不需要粘贴到公众号后台。
总览页必须:
- 按分组展示风格 - 每个风格卡片链接到对应 HTML - 写清楚风格名、适用场景、style id - 不使用外部资源
总览页可以使用 `<style>` 和 class,因为它只用于本地预览;总览页链接到的每个正式交付 HTML 仍必须符合「微信粘贴兼容性」规则。
## 交付前静态检查
每个正式交付 HTML 必须通过以下检查:
1. 不包含 `<style>` 标签。 2. 不包含 `class=` 或 `id=`。 3. 不包含 `:before`、`:after`、`<script>`、外部 URL 或 `@import`。 4. 不包含仅用于承载全局样式的最外层正文容器。 5. 每个可见正文元素都有 `style` 属性。 6. 每个普通段落都独立包含 `font-size`、`line-height` 和 `color`。 7. 列表容器和每个列表项都有 `style` 属性。 8. HTML 结构校验通过。 9. 默认模式下,`<body>` 不包含文稿开头的一级标题,也不重复出现 `<head><title>` 的文章标题;用户明确要求正文保留标题时例外。
可以使用以下命令做基础检查:
```bash xmllint --html --noout "输出文件.html" rg -n '<style|class=|id=|:before|:after|<script|https?://|@import' "输出文件.html" ```
第二条命令应该没有输出。若环境没有 `xmllint` 或 `rg`,使用等价工具完成检查。
## 用户使用提示
生成完成后告诉用户:
```text 已生成。
打开 HTML 后: 1. Cmd+A 全选 2. Cmd+C 复制 3. 粘贴到微信公众号后台编辑器 4. 用微信后台预览检查手机端效果 ```
如果生成了多个风格,告诉用户先在总览页里点开比较,选定后再复制对应 HTML。
## 注意事项
- 不要联网加载字体、CSS、图片或脚本。 - 不要使用 JavaScript。 - 不要依赖 hover、动画、position fixed 等公众号后台不稳定能力。 - 正式交付 HTML 的 CSS 必须逐元素展开为行内样式,不使用 `<style>`。 - 正文默认保持 16px 左右,行高 1.75-1.95。 - 不要把来源媒体的品牌资产、logo、专有视觉原样复制进 HTML。这里只借鉴排版范式。
完成当前任务后直接结束。只有用户明确询问下一步,且当前环境已经安装 `/dbs` 时,简短提示:「下一步不确定时,可以输入 `/dbs`。」
项目 README
保留原项目的图片、示例和完整说明。
dbskill
简体中文 | English | 日本語 | 한국어 | 繁體中文
面向创业者与内容创作者的中文 AI Skills 工具箱。把真实业务、内容与行动问题交给 Agent,获得清晰判断和可以立刻执行的下一步。
支持:豆包、WorkBuddy、Claude Code、Codex,以及其他支持 Skills 的 Agent。
dbskill 由 dontbesilent 创建。从 16,152 条公开推文中筛选、结构化出 4,176 个知识原子,并将其中的方法沉淀为 31 个可直接调用的 Skills。
v2.18.28 更新: /dbs-standard-answer 会先根据现有材料回答,只在关键事实影响结论时联网;简单问题不再自动展开理论地图和历史案例。
快速开始 · 安装 · 能力一览 · 公开推文集 · 完整使用手册 · 更新日志
dbskill 解决什么问题
你不需要先学会一套复杂的方法,也不需要知道该调用哪个工具。把当下的业务、材料、选择或卡点交给 /dbs,它会根据对话上下文选择当前适合的 Skill。
| 真实处境 | 你会得到 |
|---|---|
| 客户总说贵,不知道该改价格、产品还是客群 | 商业模式诊断、风险判断和验证动作 |
| 有一个选题,却做不出能被人看完的内容 | 内容方向、开头、标题与逐字稿优化 |
| 知道该做什么,却迟迟推不动 | 对行动卡点的分析和一条可开始的动作 |
| 反复面对同类选择,经验无法积累 | 可回填的决策记录、规律与阶段快照 |
| 文稿、选题、案例散落在多个文件夹 | 可持续维护的内容资产工程 |
| 本地资料很多,希望 Agent 能稳定查找和调用 | 基于文件夹的知识库导航、版本规则与使用入口 |
快速开始
安装完成后,直接在 Agent 中输入:
/dbs 我做少儿编程课,已经有 40 个付费学员,但续费率很低。
我需要判断问题出在产品、定价,还是我找错了客户。
/dbs 会读取当前对话信息,选择合适的分析路径。完成一轮后,继续补充新的事实或反馈,再输入 /dbs,它会判断当前该推进什么。
已经知道需求时,可以直接调用具体 Skill:
/dbs-diagnosis 我做面向宝妈的收纳咨询,客户总觉得贵。我该调整什么?
/dbs-content 我想讲“普通人别急着做个人 IP”,这个选题怎样做成内容?
/dbs-hook 这是我短视频前 20 秒的逐字稿,帮我优化开头:……
/dbs-benchmark 我想研究企业服务内容账号,应该找哪些对标?
/dbs-knowledge 帮我把这个文件夹变成知识库,以后我想直接从里面找资料。
能力一览
| 工作目标 | 主要入口 | 常见产出 |
|---|---|---|
| 判断生意、产品、定价与客户 | /dbs-diagnosis | 商业诊断、风险、验证方案 |
| 找对标并提炼可学习的部分 | /dbs-benchmark | 对标筛选与研究框架 |
| 先挖掘相关领域、作者和可信理论,再研究历史同构答案 | /dbs-standard-answer | 理论锚点、案例矩阵、条件性答案与失效边界 |
| 做选题、内容、标题与短视频 | /dbs-content、/dbs-hook、/dbs-xhs-title | 内容方向与可发布文案 |
| 发布前检查敏感词、导流、广告与受限内容 | /dbs-content-risk-check | 机器审核信号、内容实质问题与最小修改动作 |
| 检查文稿共鸣、逻辑与传播性 | /dbs-resonate、/dbs-script-flow、/dbs-spread | 修改意见与优先级 |
| 澄清概念、目标和问题 | /dbs-deconstruct、/dbs-goal、/dbs-good-question | 可验证的定义与行动目标 |
| 处理拖延、贪快和行动受阻 | /dbs-action、/dbs-slowisfast | 卡点分析与下一步动作 |
| 记录、复盘长期决策 | /dbs-decision、/dbs-save、/dbs-restore、/dbs-report | 本地决策档案与报告 |
| 建立和治理文件夹知识库 | /dbs-knowledge | 知识库导航、版本规则、健康检查与 SOT 分层瘦身 |
| 建立内容资产与多端 Agent 工作台 | /dbs-content-system、/dbs-agent-migration、/dbs-install-skill | 本地工程、主题地图与安装方案 |
| 审查本地 Skill 风险 | /dbs-skill-cleaner | 风险报告与确认后的隔离操作 |
完整的 31 个 Skill、适用时机、输入示例和动态导航方式,见 新手入门与 Skill 全目录。
安装
推荐:Claude Code、豆包、WorkBuddy、Codex 与其他支持 Skills 的 Agent
在终端执行:
npx -y skills add dontbesilent2025/dbskill -g --all
安装后回到 Agent,输入 /dbs 新手入门 即可开始。
Claude Code 插件市场
也可以通过 Claude Code 插件市场安装完整工具箱:
claude plugin marketplace add dontbesilent2025/dbskill
claude plugin install dbs@dontbesilent-skills
这个 dbs 插件包含 31 个正式业务 Skill 和 1 个 dbs-update 系统更新入口。Claude Code 会为插件 Skill 添加命名空间:主入口使用 /dbs:dbs,具体能力例如 /dbs:dbs-diagnosis。
只想安装一个能力时,可以在插件市场中选择对应插件,例如 claude plugin install dbs-diagnosis@dontbesilent-skills。

更新
已安装 dbskill 时,直接对当前 Agent 说:
更新 dbskill
它会同步官方 dbskill,不会修改你在 ~/.dbs/ 中的存档、报告和决策记录。版本变化见 GitHub Releases。
dbskill 怎样工作
真实任务
↓
/dbs 读取上下文并选择当前入口
↓
一个 Skill 完成诊断、产出或记录
↓
补充结果与反馈,再决定下一步
dbskill 的重点是推进眼前真实的任务。它会先处理当前最有价值的结点,再根据实际结果衔接后续工作。
知识库与本地记录
仓库公开了 4,176 条结构化知识原子、按 Skill 整理的方法论文档与高频概念词典。
- 想查看数据范围和字段,阅读 原子库说明。
- 想构建自己的 RAG,可使用
知识库/原子库/atoms.jsonl。 - 想了解各项方法,浏览 Skill 知识包。
- 想把自己的本地文件夹直接当作知识库,使用
/dbs-knowledge建立导航并持续查找、收录和调用资料。 - 想跨对话保留工作,使用
/dbs-save、/dbs-restore与/dbs-report。数据默认保存在用户本机的~/.dbs/。
公开推文集
公开推文集收录经过整理的 dontbesilent 推文原文,提供两种格式:
- Markdown 阅读版:适合搜索、复制和交给 AI 分析。
- PDF 阅读版:适合完整阅读和下载保存。
推文集与 Skills 安装包相互独立。执行 npx -y skills add dontbesilent2025/dbskill -g --all 时,安装的是 Skills,不会自动下载推文集。
共同贡献者
dbs-content-risk-check 的敏感词检查能力由以下共创者共同完善,他们的贡献不可替代:
作者与支持
作者:@dontbesilent · 小红书 · 抖音
如需加入付费答疑群,可扫码或打开 答疑群说明。

许可证
本项目采用 CC BY-NC 4.0 许可证。
- 个人使用、学习、研究与非商业项目可以直接使用。
- 公开发布衍生作品时,请注明来源。
- 商业用途需要单独授权,请联系作者。
如何使用
这个子 Skill 随“商业诊断dbskill”完整套件安装,不需要重复安装单独目录。
选择一种使用方式
使用 Codex、Claude Code 等 Agent 工具时选择“Agent 自动安装”;使用豆包、DeepSeek 等聊天产品时选择“聊天提示词版”。两种方式不需要同时操作。
Agent 自动安装
点击右侧“复制 Agent 自动安装指令”,粘贴并发送给 Agent。Agent 会读取仓库并完成安装,无需再手动执行 git clone。
聊天工具直接使用
点击右侧“复制聊天提示词”,粘贴到豆包、DeepSeek、Kimi 或通义千问中即可使用,不需要安装 Skill。
开始任务
安装完成或发送提示词后,直接描述你的写作任务,并用一个简单示例确认效果。
高级用户:查看手动安装方式(可选)
安装前准备
确认已准备好 Codex,并检查所需依赖。本资源不要求额外的 API Key。
获取并安装
在终端中执行下面的命令。请只从可信来源复制和运行命令。
git clone https://github.com/dontbesilent2025/dbskill.git添加配置
打开 Codex 的设置页,将资源加入对应的 Skills、Rules 或 MCP 配置区域。
验证安装
重新启动应用,执行一个只读测试任务,确认正常后再逐步开放所需权限。
安全与权限提示
安装第三方 Skill 前请阅读仓库源码和许可证。涉及文件、浏览器或命令执行的资源,应只授权完成任务所必需的最小范围。不要把 API Key 提交到公开仓库。