/bm-md
使用 bm.md 写作、改写、排版或渲染 Markdown;生成 Mermaid 与 AntV Infographic,设置图片尺寸、高亮重点,以及执行 HTML/纯文本转换和 Markdown lint
$ npx -y skills add miantiao-me/bm.md --skill bm-md --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/bm-md
Context preview
The summary Claude sees to decide when to auto-load this skill.
使用 bm.md 写作、改写、排版或渲染 Markdown;生成 Mermaid 与 AntV Infographic,设置图片尺寸、高亮重点,以及执行 HTML/纯文本转换和 Markdown lint
SKILL.md
bm-md.SKILL.mdname: bm-md
description: 使用 bm.md 写作、改写、排版或渲染 Markdown;生成 Mermaid 与 AntV Infographic,设置图片尺寸、高亮重点,以及执行 HTML/纯文本转换和 Markdown lint
bm.md Markdown 排版技能
核心能力
使用 bm.md 完成以下任务:
- **Markdown 渲染**:将 Markdown 转换为带样式的 HTML,支持 8 种排版风格、文本高亮与图片尺寸
- **HTML 转 Markdown**:将 HTML 内容逆向转换为 Markdown 格式
- **纯文本提取**:从 Markdown 中提取纯文本,移除所有格式标记
- **格式校验与修复**:自动检测并修复 Markdown 格式问题
核心工作流
1. **明确交付目标**:确认受众、输出平台、事实边界与期望文件;信息不足时先询问,不猜测事实或数值。 2. **先组织正文**:先完成标题层级、段落、列表、表格、引用和代码,再考虑视觉增强。 3. **按语义选择增强**:只在增强理解时加入 Mermaid、Infographic、高亮或图片尺寸。遵循下方决策规则并按需读取对应参考。 4. **执行渲染**:优先使用 CLI;本地无法执行命令或用户明确要求远程调用时,改用 REST API。 5. **检查并回退**:检查命令状态、响应的 `result`、图表错误和关键信息完整性。增强语法失败时先修正;仍失败则回退为结构清晰的正文、列表或表格,不交付损坏的图表。
增强决策与按需参考
- 流程、调用链、状态、类关系或 ER 模型:使用 [Mermaid](references/mermaid.md)。
- 并列、步骤、比较、层级、关系或真实数值:使用 [AntV Infographic](references/infographic.md)。字段与模板绑定,按参考中的已验证示例生成。
- 局部关键结论:使用[文本高亮](references/rich-markdown.md),不要整段高亮。
- 用户给定尺寸或布局确需固定尺寸:使用[图片尺寸语法](references/rich-markdown.md);不知道尺寸时保留普通图片。
保持克制:不要用图表装饰简单内容,不要用 Mermaid 和 Infographic 重复表达同一信息,不要虚构事实或数值。生成丰富 Markdown 后,必须通过 bm.md 渲染并检查结果。
执行优先级
1. **优先使用 CLI**:如果本地可执行 `node --version`,使用 `bmmd` 命令处理 Markdown。 2. **CLI 调用方式**:如果系统已安装 `bmmd`,直接使用;否则使用 `npx -y bmmd` 临时运行。 3. **兜底使用 REST API**:如果没有 Node.js 环境、无法执行本地命令,或用户明确要求远程调用,再使用 `https://bm.md/api/markdown/*`。
CLI 默认将结果输出到 stdout,可通过 `--output <file>` 写入文件。REST API 返回 JSON,结果在 `result` 字段中。
---
可用工具
1. Markdown 渲染
将 Markdown 源文本渲染为带内联样式的 HTML,可直接复制到富文本编辑器。
**CLI 示例(优先)**:
npx -y bmmd render article.md --platform wechat --output article.html
支持 stdin:
cat article.md | npx -y bmmd render --platform wechat > article.html
**端点**: `POST https://bm.md/api/markdown/render`
**请求参数**:
| 参数 | 类型 | 必填 | 默认值 | 说明 | | ---------------------- | ------- | ---- | -------------- | --------------------------------------------------------------------- | | `markdown` | string | 是 | - | Markdown 源文本,支持 GFM 语法、数学公式 | | `markdownStyle` | string | 否 | `kami` | 排版样式 ID,见下方完整列表 | | `codeTheme` | string | 否 | `kimbie-light` | 代码块高亮主题 ID,见下方完整列表 | | `mermaidTheme` | string | 否 | `""` | Mermaid 流程图主题 ID,空字符串表示使用默认主题 | | `infographicTheme` | string | 否 | `default` | Infographic 信息图主题 ID | | `infographicPalette` | string | 否 | `antv` | Infographic 信息图配色 ID | | `customCss` | string | 否 | `""` | 自定义 CSS,选择器需约束在 `#bm-md` 下,如 `#bm-md h1 { color: red }` | | `enableFootnoteLinks` | boolean | 否 | `true` | 是否将链接转换为脚注形式 | | `breaks` | boolean | 否 | `false` | 是否将段落内的软换行转换为 HTML 换行,不影响代码块 | | `openLinksInNewWindow` | boolean | 否 | `true` | 是否在新窗口打开链接 | | `platform` | string | 否 | `html` | 目标平台:`html`、`wechat` | | `footnoteLabel` | string | 否 | `Footnotes` | GFM 脚注区域标题 | | `referenceTitle` | string | 否 | `References` | 外部链接参考区域标题 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/render \
-H "Content-Type: application/json" \
-d '{
"markdown": "# 标题\n\n这是一段**加粗**的文字。\n\n```javascript\nconsole.log(\"Hello, World!\");\n```",
"markdownStyle": "kami",
"codeTheme": "kimbie-light",
"platform": "wechat"
}' \
-o bm.md.json
````
**响应示例**:
```json
{
"result": "<div id=\"bm-md\"><h1 style=\"...\">标题</h1>...</div>"
}---
2. HTML 转 Markdown
将 HTML 源代码转换为 Markdown 格式。
**CLI 示例(优先)**:
npx -y bmmd parse page.html --output article.md
支持 stdin:
cat page.html | npx -y bmmd parse > article.md
**端点**: `POST https://bm.md/api/markdown/parse`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | --------------------------------- | | `html` | string | 是 | HTML 源代码,可以是完整文档或片段 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/parse \
-H "Content-Type: application/json" \
-d '{
"html": "<h1>标题</h1><p>这是一段<strong>加粗</strong>的文字。</p>"
}' \
-o bm.md.json**响应示例**:
{
"result": "# 标题\n\n这是一段**加粗**的文字。"
}---
3. 提取纯文本
从 Markdown 中提取纯文本内容,移除所有格式标记,保留段落分隔。
**CLI 示例(优先)**:
npx -y bmmd extract article.md --output article.txt
**端点**: `POST https://bm.md/api/markdown/extract`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 | | ---------- | ------ | ---- | --------------- | | `markdown` | string | 是 | Markdown 源文本 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/extract \
-H "Content-Type: application/json" \
-d '{
"markdown": "# 标题\n\n这是一段**加粗**的文字,包含[链接](https://example.com)。"
}' \
-o bm.md.json**响应示例**:
{
"result": "标题\n\n这是一段加粗的文字,包含链接。"
}---
4. Markdown 格式化
校验并自动修复 Markdown 格式问题,统一代码风格。
**CLI 示例(优先)**:
# 输出修复后的 Markdown
npx -y bmmd lint article.md --output article.fixed.md
# 直接写回源文件
npx -y bmmd lint article.md --fix
**端点**: `POST https://bm.md/api/markdown/lint`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 | | ---------- | ------ | ---- | ------------------------ | | `markdown` | string | 是 | 待校验的 Markdown 源文本 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/lint \
-H "Content-Type: application/json" \
-d '{
"markdown": "#标题\n这是一段文字,没有正确的空格。\n-列表项1\n-列表项2"
}' \
-o bm.md.json**响应示例**:
{
"result": "# 标题\n\n这是一段文字,没有正确的空格。\n\n- 列表项Read more
name: bm-md description: 使用 bm.md 写作、改写、排版或渲染 Markdown;生成 Mermaid 与 AntV Infographic,设置图片尺寸、高亮重点,以及执行 HTML/纯文本转换和 Markdown lint
bm.md Markdown 排版技能
核心能力
使用 bm.md 完成以下任务:
- **Markdown 渲染**:将 Markdown 转换为带样式的 HTML,支持 8 种排版风格、文本高亮与图片尺寸
- **HTML 转 Markdown**:将 HTML 内容逆向转换为 Markdown 格式
- **纯文本提取**:从 Markdown 中提取纯文本,移除所有格式标记
- **格式校验与修复**:自动检测并修复 Markdown 格式问题
核心工作流
1. **明确交付目标**:确认受众、输出平台、事实边界与期望文件;信息不足时先询问,不猜测事实或数值。 2. **先组织正文**:先完成标题层级、段落、列表、表格、引用和代码,再考虑视觉增强。 3. **按语义选择增强**:只在增强理解时加入 Mermaid、Infographic、高亮或图片尺寸。遵循下方决策规则并按需读取对应参考。 4. **执行渲染**:优先使用 CLI;本地无法执行命令或用户明确要求远程调用时,改用 REST API。 5. **检查并回退**:检查命令状态、响应的 `result`、图表错误和关键信息完整性。增强语法失败时先修正;仍失败则回退为结构清晰的正文、列表或表格,不交付损坏的图表。
增强决策与按需参考
- 流程、调用链、状态、类关系或 ER 模型:使用 [Mermaid](references/mermaid.md)。
- 并列、步骤、比较、层级、关系或真实数值:使用 [AntV Infographic](references/infographic.md)。字段与模板绑定,按参考中的已验证示例生成。
- 局部关键结论:使用[文本高亮](references/rich-markdown.md),不要整段高亮。
- 用户给定尺寸或布局确需固定尺寸:使用[图片尺寸语法](references/rich-markdown.md);不知道尺寸时保留普通图片。
保持克制:不要用图表装饰简单内容,不要用 Mermaid 和 Infographic 重复表达同一信息,不要虚构事实或数值。生成丰富 Markdown 后,必须通过 bm.md 渲染并检查结果。
执行优先级
1. **优先使用 CLI**:如果本地可执行 `node --version`,使用 `bmmd` 命令处理 Markdown。 2. **CLI 调用方式**:如果系统已安装 `bmmd`,直接使用;否则使用 `npx -y bmmd` 临时运行。 3. **兜底使用 REST API**:如果没有 Node.js 环境、无法执行本地命令,或用户明确要求远程调用,再使用 `https://bm.md/api/markdown/*`。
CLI 默认将结果输出到 stdout,可通过 `--output <file>` 写入文件。REST API 返回 JSON,结果在 `result` 字段中。
---
可用工具
1. Markdown 渲染
将 Markdown 源文本渲染为带内联样式的 HTML,可直接复制到富文本编辑器。
**CLI 示例(优先)**:
npx -y bmmd render article.md --platform wechat --output article.html
支持 stdin:
cat article.md | npx -y bmmd render --platform wechat > article.html
**端点**: `POST https://bm.md/api/markdown/render`
**请求参数**:
| 参数 | 类型 | 必填 | 默认值 | 说明 | | ---------------------- | ------- | ---- | -------------- | --------------------------------------------------------------------- | | `markdown` | string | 是 | - | Markdown 源文本,支持 GFM 语法、数学公式 | | `markdownStyle` | string | 否 | `kami` | 排版样式 ID,见下方完整列表 | | `codeTheme` | string | 否 | `kimbie-light` | 代码块高亮主题 ID,见下方完整列表 | | `mermaidTheme` | string | 否 | `""` | Mermaid 流程图主题 ID,空字符串表示使用默认主题 | | `infographicTheme` | string | 否 | `default` | Infographic 信息图主题 ID | | `infographicPalette` | string | 否 | `antv` | Infographic 信息图配色 ID | | `customCss` | string | 否 | `""` | 自定义 CSS,选择器需约束在 `#bm-md` 下,如 `#bm-md h1 { color: red }` | | `enableFootnoteLinks` | boolean | 否 | `true` | 是否将链接转换为脚注形式 | | `breaks` | boolean | 否 | `false` | 是否将段落内的软换行转换为 HTML 换行,不影响代码块 | | `openLinksInNewWindow` | boolean | 否 | `true` | 是否在新窗口打开链接 | | `platform` | string | 否 | `html` | 目标平台:`html`、`wechat` | | `footnoteLabel` | string | 否 | `Footnotes` | GFM 脚注区域标题 | | `referenceTitle` | string | 否 | `References` | 外部链接参考区域标题 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/render \
-H "Content-Type: application/json" \
-d '{
"markdown": "# 标题\n\n这是一段**加粗**的文字。\n\n```javascript\nconsole.log(\"Hello, World!\");\n```",
"markdownStyle": "kami",
"codeTheme": "kimbie-light",
"platform": "wechat"
}' \
-o bm.md.json
````
**响应示例**:
```json
{
"result": "<div id=\"bm-md\"><h1 style=\"...\">标题</h1>...</div>"
}---
2. HTML 转 Markdown
将 HTML 源代码转换为 Markdown 格式。
**CLI 示例(优先)**:
npx -y bmmd parse page.html --output article.md
支持 stdin:
cat page.html | npx -y bmmd parse > article.md
**端点**: `POST https://bm.md/api/markdown/parse`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | --------------------------------- | | `html` | string | 是 | HTML 源代码,可以是完整文档或片段 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/parse \
-H "Content-Type: application/json" \
-d '{
"html": "<h1>标题</h1><p>这是一段<strong>加粗</strong>的文字。</p>"
}' \
-o bm.md.json**响应示例**:
{
"result": "# 标题\n\n这是一段**加粗**的文字。"
}---
3. 提取纯文本
从 Markdown 中提取纯文本内容,移除所有格式标记,保留段落分隔。
**CLI 示例(优先)**:
npx -y bmmd extract article.md --output article.txt
**端点**: `POST https://bm.md/api/markdown/extract`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 | | ---------- | ------ | ---- | --------------- | | `markdown` | string | 是 | Markdown 源文本 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/extract \
-H "Content-Type: application/json" \
-d '{
"markdown": "# 标题\n\n这是一段**加粗**的文字,包含[链接](https://example.com)。"
}' \
-o bm.md.json**响应示例**:
{
"result": "标题\n\n这是一段加粗的文字,包含链接。"
}---
4. Markdown 格式化
校验并自动修复 Markdown 格式问题,统一代码风格。
**CLI 示例(优先)**:
# 输出修复后的 Markdown npx -y bmmd lint article.md --output article.fixed.md # 直接写回源文件 npx -y bmmd lint article.md --fix
**端点**: `POST https://bm.md/api/markdown/lint`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 | | ---------- | ------ | ---- | ------------------------ | | `markdown` | string | 是 | 待校验的 Markdown 源文本 |
**curl 示例**:
curl -X POST https://bm.md/api/markdown/lint \
-H "Content-Type: application/json" \
-d '{
"markdown": "#标题\n这是一段文字,没有正确的空格。\n-列表项1\n-列表项2"
}' \
-o bm.md.json**响应示例**:
{
"result": "# 标题\n\n这是一段文字,没有正确的空格。\n\n- 列表项Repo: miantiao-me/bm.md

