mcpField
B
baoyu-markdown-to-html

baoyu-markdown-to-html

github.com/makerjackie文档处理143 次安装36 周前更新
代码仓库

关于 baoyu-markdown-to-html

baoyu-markdown-to-html 是将 Markdown 文件转换为带样式 HTML 的 Skill 和脚本,目标平台包括 WeChat Official Account。它提供三种主题,支持常见 Markdown 内容和 YAML frontmatter,并可读取 EXTEND.md 设置。

主要功能

  1. 01将 Markdown 文件转换为 HTML
  2. 02从三种主题中选择
  3. 03支持表格、提示框和图表
  4. 04读取 YAML frontmatter 元数据
  5. 05应用 EXTEND.md 样式偏好
  6. 06备份已存在的 HTML 输出

适用场景

  1. 01为 WeChat Official Account 准备文章
  2. 02将 Markdown 笔记转换为样式化 HTML
  3. 03渲染包含表格或图表的文档
  4. 04应用项目级 CSS 偏好设置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/makerjackie/jackie-skills-starter --skill baoyu-markdown-to-html

安装后在 Claude Code 中输入/baoyu-markdown-to-html确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
main.ts
scripts/md/
LICENSE
package-lock.json
package.json
render.ts
scripts/md/extensions/
alert.ts
footnotes.ts
index.ts
infographic.ts
katex.ts
markup.ts
plantuml.ts
ruby.ts
slider.ts
toc.ts
scripts/md/themes/
base.css
default.css
grace.css
simple.css
scripts/md/utils/
languages.ts

详细介绍

Markdown 转 HTML 转换器

将 Markdown 文件转换为样式精美的 HTML,内嵌 CSS,针对微信公众号和其他平台进行优化。

脚本目录

Agent 执行:将此 SKILL.md 所在目录确定为 SKILL_DIR,然后使用 ${SKILL_DIR}/scripts/<name>.ts。

脚本用途
scripts/main.ts主入口

偏好设置(EXTEND.md)

使用 Bash 按优先级顺序检查 EXTEND.md 是否存在:

# Check project-level first
test -f .baoyu-skills/baoyu-markdown-to-html/EXTEND.md && echo "project"

# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/baoyu-markdown-to-html/EXTEND.md" && echo "user"

┌──────────────────────────────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├──────────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-markdown-to-html/EXTEND.md │ 项目目录 │ ├──────────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-markdown-to-html/EXTEND.md │ 用户主目录 │ └──────────────────────────────────────────────────────────────┴───────────────────┘

┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 结果 │ 操作 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 找到 │ 读取、解析并应用设置 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 未找到 │ 使用默认设置 │ └───────────┴───────────────────────────────────────────────────────────────────────────┘

EXTEND.md 支持:默认主题 | 自定义 CSS 变量 | 代码块样式

工作流

步骤 0:预检查(中文内容)

条件:仅当输入文件包含中文文本时执行。

检测:

  1. 读取输入 Markdown 文件
  2. 检查内容是否包含 CJK 字符(中文/日文/韩文)
  3. 如果没有 CJK 内容 → 跳至步骤 1

格式建议:

如果检测到 CJK 内容,且 baoyu-format-markdown 技能可用:

使用 AskUserQuestion 询问是否先进行格式化。格式化可以修复:

  • 标点符号位于粗体标记内导致 ** 解析失败的问题
  • CJK/英文间距问题

如果用户同意:调用 baoyu-format-markdown 技能格式化文件,然后使用格式化后的文件作为输入。

如果用户拒绝:继续使用原始文件。

步骤 1:确认主题

转换前,使用 AskUserQuestion 确认主题(除非用户已指定):

主题描述
default(推荐)经典主题 - 传统排版,标题居中带底边,二级标题白字彩底
grace优雅主题 - 文字阴影,圆角卡片,精致引用块
simple简洁主题 - 现代极简风,不对称圆角,清爽留白
步骤 2:转换
npx -y bun ${SKILL_DIR}/scripts/main.ts <markdown_file> --theme <theme>
步骤 3:报告结果

显示 JSON 结果中的输出路径。如果创建了备份,请一并说明。

用法

npx -y bun ${SKILL_DIR}/scripts/main.ts <markdown_file> [options]

选项:

选项描述默认值
--theme <name>主题名称(default、grace、simple)default
--title <title>覆盖 frontmatter 中的标题
--keep-title保留内容中的第一个标题false(已移除)
--help显示帮助

示例:

# Basic conversion (uses default theme, removes first heading)
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md

# With specific theme
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --theme grace

# Keep the first heading in content
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --keep-title

# Override title
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --title "My Article"

输出

文件位置:与输入 Markdown 文件位于同一目录。

  • 输入:/path/to/article.md
  • 输出:/path/to/article.html

冲突处理:如果 HTML 文件已存在,将先创建备份:

  • 备份:/path/to/article.html.bak-YYYYMMDDHHMMSS

输出到 stdout 的 JSON:

{
  "title": "Article Title",
  "author": "Author Name",
  "summary": "Article summary...",
  "htmlPath": "/path/to/article.html",
  "backupPath": "/path/to/article.html.bak-20260128180000",
  "contentImages": [
    {
      "placeholder": "MDTOHTMLIMGPH_1",
      "localPath": "/path/to/img.png",
      "originalPath": "imgs/image.png"
    }
  ]
}

主题

主题描述
default经典主题 - 传统排版,标题居中带底边,二级标题白字彩底
grace优雅主题 - 文字阴影,圆角卡片,精致引用块(由 @brzhang 提供)
simple简洁主题 - 现代极简风,不对称圆角,清爽留白(由 @okooo5km 提供)

支持的 Markdown 功能

功能语法
标题# H1 至 ###### H6
粗体/斜体**bold**、*italic*
代码块使用 ```lang 并启用语法高亮
行内代码`code`
表格GitHub 风格的 Markdown 表格
图片![alt](src)
链接[text](url),支持脚注引用
引用块> quote
列表- 无序列表,1. 有序列表
提示> [!NOTE]、> [!WARNING] 等
脚注[^1] 引用
注音文字`{base
Mermaid```mermaid 图表
PlantUML```plantuml 图表

Frontmatter

支持用于元数据的 YAML frontmatter:

---
title: Article Title
author: Author Name
description: Article summary
---

如果未找到标题,则从第一个 H1/H2 标题提取,或使用文件名。

扩展支持

通过 EXTEND.md 使用自定义配置。路径和支持的选项请参阅 Preferences 部分。

评论

支持 Markdown