SuperAPI AI 工具集

baoyu-markdown-to-html

写作与研究

查看项目

更新于 10-16 04:46

技能介绍

用途

baoyu-markdown-to-html 用于将 Markdown 文件转换为带样式的 HTML,采用内联 CSS,针对微信公众号(WeChat Official Account)及其他平台进行优化。

主要能力

  • 将 Markdown 转换为带样式的 HTML,使用内联 CSS。
  • 支持多种 Markdown 特性:标题(# H1 至 ###### H6)、粗体/斜体、带语法高亮的代码块、行内代码、GitHub 风格表格、图片、链接(含脚注引用)、引用块、列表(无序与有序)、提示块(> [!NOTE]、> [!WARNING] 等)、脚注([^1])、Ruby 文本、Mermaid 图表、PlantUML 图表。
  • 支持 YAML frontmatter 元数据(title、author、description)。若未找到标题,则从首个 H1/H2 标题提取或使用文件名。
  • 提供三种主题:
    • default(推荐):经典主题,传统排版,标题居中带底边,二级标题白字彩底。
    • grace:优雅主题,文字阴影,圆角卡片,精致引用块(by @brzhang)。
    • simple:简洁主题,现代极简风,不对称圆角,清爽留白(by @okooo5km)。
  • 支持通过 EXTEND.md 进行自定义配置,可设置默认主题、自定义 CSS 变量、代码块样式。

使用方式

脚本目录:将 SKILL.md 所在目录确定为 SKILL_DIR,然后使用 ${SKILL_DIR}/scripts/<name>.ts。主入口为 scripts/main.ts。

偏好设置(EXTEND.md):使用 Bash 按优先级检查 EXTEND.md 是否存在:

项目级优先:

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

然后用户级(跨平台:$HOME 适用于 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:用户主目录

结果处理:找到则读取、解析并应用设置;未找到则使用默认值。

工作流程:

步骤 0:预检查(中文内容)。仅当输入文件包含中文文本时执行。检测方式:读取输入 markdown 文件,检查内容是否包含 CJK 字符(中文/日文/韩文),若无 CJK 内容则跳至步骤 1。格式建议:若检测到 CJK 内容且 baoyu-format-markdown 技能可用,使用 AskUserQuestion 询问是否先格式化。格式化可修复:标点位于粗体标记内导致 ** 解析失败、CJK/英文间距问题。若用户同意,调用 baoyu-format-markdown 技能格式化文件,然后将格式化后的文件作为输入;若用户拒绝,继续使用原始文件。

步骤 1:确认主题。转换前使用 AskUserQuestion 确认主题(除非用户已指定)。

步骤 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:显示帮助

示例:

# 基本转换(使用默认主题,移除首个标题)
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md

# 指定主题
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --theme grace

# 保留内容中的首个标题
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --keep-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。

JSON 输出到 stdout:

{
  "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"
    }
  ]
}

适用场景

适用于需要将 Markdown 内容发布到微信公众号或其他平台,并希望获得带样式、内联 CSS 的 HTML 输出的场景。

限制

资料中未提供关于收费、价格、平台兼容性范围、转换效果保证等方面的明确信息,暂未提供。