omdsh-dev/dsh-tool-markdown:DSH Markdown 工具插件

前言

在 DSH 里处理文档时,输入不一定都是干净的 Markdown:HTML 片段、邮件正文、导出文件、需要整理的表格都会出现。没有专门工具时,模型只能在提示词里临时拼转换逻辑,容易出现 HTML 实体处理不一致、表格结构不稳定、网页噪音混入等问题。

下面介绍 omdsh-dev/dsh-tool-markdown。它面向 HTML 与 Markdown 转换、GFM 表格规范化、目录生成等文档处理场景,作为 DSH 工具插件注册 markdown 工具。

插件定位

omdsh-dev/dsh-tool-markdown 是由 omdsh-dev 维护的 DSH Markdown 工具插件,MIT 许可。

它的能力可以概括为:

  • HTML 转 GFM Markdown。
  • Markdown 转白名单安全 HTML。
  • HTML 表格或管道分隔文本规范化为 GFM 表格。
  • Markdown 标题生成嵌套目录。
  • 零依赖、纯函数、手写轻量解析器。

核心功能

插件注册 markdown 工具,通过 action 区分不同动作。

常见动作如下:

1、action=html2md:输入 HTML 片段,输出 GFM Markdown。
2、action=md2html:输入 Markdown,输出白名单安全 HTML。
3、action=table:输入 HTML <table> 或管道分隔文本,输出 GFM 表格。
4、action=toc:输入 Markdown 标题,输出嵌套目录。

工具参数包括:

  • action:选择 html2mdmd2htmltabletoc
  • htmlhtml2md 的输入。
  • markdownmd2htmltoc 的输入。
  • texttable 的输入。
  • maxBytes:输入上限,默认 256KB,硬顶 1MB;超限报错不截断。

安全与边界

这个插件对输入和输出都做了比较明确的约束。

零执行面方面:

  • eval
  • new Function
  • 不加载远程资源。
  • 不解析 CSS 布局。

内容剥离方面:

  • script
  • style
  • iframe
  • object
  • noscript

上述内容会整体剥离。

md2html 方面:

  • 仅输出白名单标签。
  • 文本一律 HTML 转义。

链接处理方面:

  • 链接 scheme 白名单为 httphttpsmailto
  • javascriptdata 链接降级为纯文本。

资源上限方面:

  • 嵌套深度达到 64 层时报错。
  • 输入 maxBytes 默认 256KB,硬顶 1MB。
  • 输入超限时报错,不做截断。

安装与验证

安装

已核实的安装命令如下:

dsh plugin --profile headless add github:omdsh-dev/dsh-tool-markdown

需要注意,webheadless 是不同 profile。web 安装不会自动覆盖 headlessdsh run 默认使用 headless profile,因此一次性任务场景下,headless profile 安装更常见。

检查配置

可以用下面的命令检查 profile 配置中是否出现 tool-markdown

dsh --profile web --dump-config | grep tool-markdown

运行验证

可以用 dsh run 触发一次简单转换:

dsh run "使用 markdown 工具把 <h1>标题</h1> 转成 Markdown"

典型用法

HTML 转 Markdown

适合用户贴来 HTML 片段、邮件正文、导出文件,希望得到 GFM Markdown 的场景。

调用方式:

action=html2md
html=<HTML 片段>

输出为 GFM Markdown。

Markdown 转 HTML

适合需要把 Markdown 渲染为受控 HTML 的场景。

调用方式:

action=md2html
markdown=<Markdown 文本>

输出为白名单安全 HTML。文本会进行 HTML 转义。

表格规范化

适合输入是 HTML <table> 或管道分隔文本,希望输出稳定 GFM 表格的场景。

调用方式:

action=table
text=<HTML <table> 或管道分隔文本>

输出为 GFM 表格。

目录生成

适合根据 Markdown 标题生成嵌套目录。

调用方式:

action=toc
markdown=<包含标题的 Markdown>

输出为嵌套目录。

兼容与运行要求

已核实的运行与依赖信息如下:

  • Node engines:^22.19.0 || >=24.0.0
  • packageManager:npm@11.16.0
  • peerDependencies
  • @deepseek-ai/cordis ^4.0.1
  • @deepseek-ai/dsh-invariants >=0.0.1-rc.1 <0.2.0
  • @deepseek-ai/dsh-tools >=0.0.1-rc.1 <0.2.0
  • 已迁移并验证 DSH 0.1.2-alpha.1 兼容
  • package.json 版本:0.0.1
  • package.jsonprivate: true
  • 启动方式:
npx -p @deepseek-ai/dsh@next dsh web

该启动方式属于 lib 生产模式,资料中注明不要 install -g 全局安装。

注意事项

插件会运行在当前 DSH 进程权限下,安装前应检查源码和许可证。

另外,工具参数会记入会话日志。不要把包含密钥、会话数据或其他敏感信息的 HTML 直接传入 html2mdmd2htmltable 等动作。

小结

omdsh-dev/dsh-tool-markdown 的价值在于把 HTML、Markdown、GFM 表格和目录这几类常见文档转换收敛到一个 markdown 工具里,同时通过白名单输出、内容剥离、scheme 过滤和输入上限,降低不可控渲染带来的风险。

GitHub 仓库:

https://github.com/omdsh-dev/dsh-tool-markdown

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜