bm-md
Installation
SKILL.md
bm.md Markdown 排版技能
概述
bm.md 是一个专业的 Markdown 排版工具,提供以下核心能力:
- Markdown 渲染:将 Markdown 转换为带样式的 HTML,支持 14 种排版风格
- HTML 转 Markdown:将 HTML 内容逆向转换为 Markdown 格式
- 纯文本提取:从 Markdown 中提取纯文本,移除所有格式标记
- 格式校验与修复:自动检测并修复 Markdown 格式问题
优先使用本地 CLI,只有在无 Node.js 环境或无法执行命令时才使用 REST API。
执行优先级
- 优先使用 CLI:如果本地可执行
node --version,使用bmmd命令处理 Markdown。 - CLI 调用方式:如果系统已安装
bmmd,直接使用;否则使用npx -y bmmd临时运行。 - 兜底使用 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 | 否 | ayu-light |
排版样式 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 |
是否将链接转换为脚注形式 |
openLinksInNewWindow |
boolean | 否 | true |
是否在新窗口打开链接 |
platform |
string | 否 | html |
目标平台:html、wechat、zhihu、juejin |
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": "ayu-light",
"codeTheme": "kimbie-light",
"platform": "wechat"
}' \
-o bm.md.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- 列表项1\n- 列表项2"
}
参数参考
排版样式 (markdownStyle)
| ID | 名称 | 风格描述 |
|---|---|---|
ayu-light |
Ayu Light | 清新淡雅的浅色主题(默认) |
bauhaus |
Bauhaus | 包豪斯风格,几何与功能主义 |
blueprint |
Blueprint | 蓝图风格,工程设计感 |
botanical |
Botanical | 植物园风格,自然柔和 |
green-simple |
GreenSimple | 绿色简约风格 |
maximalism |
Maximalism | 极繁主义,丰富装饰 |
neo-brutalism |
Neo-Brutalism | 新野兽派,大胆对比 |
newsprint |
Newsprint | 报纸印刷风格 |
organic |
Organic | 有机自然风格 |
playful-geometric |
Playful Geometric | 活泼几何图形风格 |
professional |
Professional | 专业商务风格 |
retro |
Retro | 复古怀旧风格 |
sketch |
Sketch | 手绘素描风格 |
terminal |
Terminal | 终端/命令行风格 |
代码主题 (codeTheme)
| ID | 名称 | 类型 |
|---|---|---|
catppuccin-latte |
Catppuccin Latte | 浅色 |
catppuccin-frappe |
Catppuccin Frappé | 深色 |
catppuccin-macchiato |
Catppuccin Macchiato | 深色 |
catppuccin-mocha |
Catppuccin Mocha | 深色 |
kimbie-light |
Kimbie Light | 浅色 |
kimbie-dark |
Kimbie Dark | 深色 |
panda-syntax-light |
Panda Syntax Light | 浅色 |
panda-syntax-dark |
Panda Syntax Dark | 深色 |
paraiso-light |
Paraiso Light | 浅色 |
paraiso-dark |
Paraiso Dark | 深色 |
rose-pine-dawn |
Rosé Pine Dawn | 浅色 |
rose-pine |
Rosé Pine | 深色 |
tokyo-night-light |
Tokyo Night Light | 浅色 |
tokyo-night-dark |
Tokyo Night Dark | 深色 |
目标平台 (platform)
| ID | 说明 |
|---|---|
html |
通用网页,标准 HTML 输出 |
wechat |
微信公众号,针对微信编辑器优化 |
zhihu |
知乎专栏,适配知乎排版规范 |
juejin |
掘金,适配掘金编辑器 |
使用场景
- 内容创作者:将 Markdown 文章一键转换为微信公众号格式,直接粘贴发布
- 跨平台发布:同一份 Markdown 源文件,生成适配不同平台的 HTML
- 内容迁移:将网页内容转换为 Markdown 进行存档或编辑
- 文本分析:提取纯文本用于字数统计、关键词分析等
注意事项
- 数学公式:支持
$...$(行内)和$$...$$(块级)语法 - GFM 语法:完整支持 GitHub Flavored Markdown,包括表格、任务列表、删除线等
- 图片处理:图片 URL 需为可公开访问的地址
- 样式内联:输出的 HTML 已将 CSS 内联到元素上,可直接复制使用
- 编码要求:请求和响应均使用 UTF-8 编码