跳到正文

omdsh-dev/dsh-tool-markdown

40最近提交 2026年8月14日

dsh-tool-markdown DSH 插件

本插件提供 HTML 与 Markdown 之间的确定性转换,支持 GFM 表格规范化、管道分隔表格整理、以及从 Markdown 标题生成目录。采用手写递归下降解析器,零依赖,纯函数,安全可靠。

如何安装 dsh-tool-markdown DSH 插件

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

复制不会执行命令。安装 dsh-tool-markdown DSH 插件前请核对仓库和版本。

dsh-tool-markdown DSH 插件数据来源

dsh-tool-markdown DSH 插件快照日期:2026年8月16日

discovered

dsh-tool-markdown DSH 插件能做什么

  • HTML 转 GFM Markdown(html2md):块级与行内全映射、实体解码、script/style 剥离、链接 scheme 过滤。
  • Markdown 转白名单安全 HTML(md2html):仅输出允许的标签(p, h1-h6, ul, ol 等),所有文本 HTML 转义,无标签可逃逸。
  • 规范化 HTML <table> 或管道分隔文本为 GFM 表格,支持 colspan 处理与列补齐。
  • 从 Markdown 标题生成嵌套目录(toc),使用 GitHub 风格的锚点,重复标题自动添加后缀。

dsh-tool-markdown DSH 插件适合哪些场景

  • 将网页中的 HTML 片段(如邮件、导出文件)转换为干净的 Markdown 以便后续处理。
  • 安全地将 Markdown 渲染为 HTML,限制标签集,防止 XSS 攻击(如 script 标签、javascript: 链接)。
  • 整理管道分隔的表格数据,统一为 GFM 表格格式,便于模型理解。
  • 为长 Markdown 文档生成目录,提升导航效率。
  • 从 HTML 页面中提取表格并转换为 Markdown 表格,用于结构化表示。

dsh-tool-markdown DSH 插件适合谁

  • 需要将文档或网页内容转换为模型友好 Markdown 格式的 DSH 用户。
  • 构建 AI 工作流且需要可靠 HTML 转 Markdown 功能,同时避免引入重量级依赖的开发者。

dsh-tool-markdown DSH 插件的限制

  • 不做 readability 正文提取:nav、header、footer 默认透传,不会自动移除。
  • 输入大小限制:默认 256KB,硬顶 1MB,超出会报错而非截断。
  • 嵌套深度限制为 64 层,超出则报错。
  • md2html 输出仅支持白名单标签,其他 HTML 标签原样转义为文本。
  • 链接 scheme 白名单仅支持 http/https/mailto;javascript: 和 data: 链接降级为纯文本。

dsh-tool-markdown DSH 插件的仓库 README 摘录

以下文字摘自 dsh-tool-markdown DSH 插件的上游仓库 omdsh-dev/dsh-tool-markdown 的 README,版权归原作者,仅作引用。

DSH Markdown 工具插件 —— HTML↔Markdown 转换、GFM 表格规范化、目录生成。零依赖、纯函数、手写轻量解析器。 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ## 动机 模型最常见的文档场景:用户贴一段 HTML(网页源码、邮件、导出文件)、贴表格要求整理、或要求"转成 markdown"。没有工具时模型只能硬编码处理——HTML 实体会错、表格会乱、网页噪音(导航/脚本/广告)会混入。本插件提供确定性转换,与 `dsh-tool-csv` 互补:**csv 管结构化表格,markdown 管文档/网页**。 ## 安全模型 - **零依赖**:手写递归下降 HTML 解析器(不引入 cheerio/jsdom——净增数十 MB 且是攻击面) - **零执行面**:不 eval、不 new Function、不加载远程资源、不解析 CSS 布局 - **内容剥离**:script/style/iframe/object/noscript 内容整体剥离(安全 + 噪音) - **md2html 白名单**:只输出 `p h1-h6 ul ol li blockquote pre code a img strong em br hr table thead tbody tr th td`;文本一律 HTML 转义——markdown 内嵌 `<script>` 只会显示为文本 - **链接 scheme 白名单**:`http/https/mailto`;`javascript:`/`data:` 链接降级为纯文本 - **资源上限**:嵌套深度 64 层报错(防栈溢出);输入 `maxBytes` 默认 256KB、硬顶 1MB(超限报错不截断) - 工具参数会记入会话日志,**不要传入含密钥/会话数据的 HTML** ## 工具声明 注册 `markdown` 工具(`@deepseek-ai/dsh-tool-markdown`,row id `tool-markdown`),统一输出文本。 | 参数 | 类型 | 必填 | 说明 | |---|---|---|---| | `action` | string | ✅ | `html2md` / `md2html` / `table` / `toc` | | `html` | string | | html2md 输入(片段或完整文档) | | `markdown` | string | | md2html/toc 输入 | | `text` | string | | table 输入(HTML `<table>` 或管道分隔文本) | | `baseUrl` |

阅读完整 README仓库许可: MIT

dsh-tool-markdown DSH 插件常见问题

如何安装 dsh-tool-markdown 插件?

使用 DSH 命令行:`dsh plugin --profile web add github:omdsh-dev/dsh-tool-markdown`。如果需要 headless 配置,将 `web` 替换为 `headless`。也可以先通过 `npm pack` 打包,然后运行 `dsh plugin --profile web add ./dsh-tool-markdown-*.tgz` 安装。

这个插件能否将包含导航和广告的完整网页转换为干净的 Markdown?

它忠实地将 HTML 转换为 Markdown,但不会进行 readability 正文提取。导航、页眉、页脚和广告等内容会原样保留。如果你需要提取正文内容,建议先使用 readability 工具预处理 HTML,再使用本插件。

markdown 工具的输入大小限制是多少?

默认 `maxBytes` 为 256,000 字节(256 KB),硬顶为 1,000,000 字节(1 MB)。如果输入超出限制,工具会返回错误信息,不会截断内容。

插件如何处理 `javascript:alert(1)` 这样的 JavaScript 链接?

插件使用链接 scheme 白名单,只允许 `http`、`https` 和 `mailto`。任何 `javascript:` 或 `data:` 协议的链接会被降级为纯文本,显示为链接文字,不会生成可点击的链接。

插件是否支持自定义 HTML 标签或 CSS?

不支持。HTML 解析器是自定义的递归下降解析器,只识别标准 HTML。对于 md2html,只输出白名单内的标签(p, h1-h6, ul, ol, li, blockquote, pre, code, a, img, strong, em, br, hr, table, thead, tbody, tr, th, td),其他所有标签和 CSS 要么被剥离,要么被转义为文本。