扫描 Markdown 文档,找出失效链接并定位行号
27.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ZhijiangTang/dsh-dead-links该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 7 处,展示前 7 条)
- 读取本地文件index.js:69
return statSync(p).isDirectory() - 读取本地文件index.js:81
entries = readdirSync(dir, { withFileTypes: true }) - 发起网络请求index.js:109
const res = await fetch(url, { - 发起网络请求index.js:125
const res = await fetch(url, { - 读取本地文件index.js:308
text = readFileSync(file, 'utf8') - 写入本地文件index.js:398
writeFileSync( - 删除本地文件递归index.js:429
try { rmSync(tmpDir, { recursive: true, force: true }) } catch { }
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-llm给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 扫描Markdown死链
- 定位失效链接行号
- HEAD失败回退GET
DSH 插件:扫描 Markdown 文档里的死链(先发 HEAD,失败回退 GET,并发有上限)
README
由 DeepSeek 最新模型翻译生成dsh-dead-links
DSH 插件:Markdown 文档死链检查工具,注册一个 dead_links 工具。纯 ESM、零依赖、无构建、只读不改任何文件。
简介
- 工具名:dead_links
- 能力:用 node:fs 递归遍历目录,按 glob(默认 */.md)筛选 Markdown 文件;逐文件按行正则提取 http(s):// 链接(保留行号);并发受限地逐条检查,先 HEAD(AbortSignal.timeout 超时),遇到 405/403/网络错误 降级 GET(只关心状态码,读完响应体即丢弃);最终把每条死链的 文件/行号/URL/状态码或错误 折叠进规范 JSON 值返回。
- 行为:永不抛异常。网络类异常一律折进规范值(dead[].status: null + dead[].error);目录不存在则返回 { ok: false, error: { stage: 'fs', message } }。
- 只读:不修改、不写入任何被扫描的文件。
展开完整文档(README 剩余 1 节)
dsh-dead-links
DSH 插件:Markdown 文档死链检查工具,注册一个 dead_links 工具。纯 ESM、零依赖、无构建、只读不改任何文件。
简介
- 工具名:dead_links
- 能力:用 node:fs 递归遍历目录,按 glob(默认 */.md)筛选 Markdown 文件;逐文件按行正则提取 http(s):// 链接(保留行号);并发受限地逐条检查,先 HEAD(AbortSignal.timeout 超时),遇到 405/403/网络错误 降级 GET(只关心状态码,读完响应体即丢弃);最终把每条死链的 文件/行号/URL/状态码或错误 折叠进规范 JSON 值返回。
- 行为:永不抛异常。网络类异常一律折进规范值(dead[].status: null + dead[].error);目录不存在则返回 { ok: false, error: { stage: 'fs', message } }。
- 只读:不修改、不写入任何被扫描的文件。
安装
dsh plugin --profile add file:./plugins/dsh-dead-links
或发布后:
dsh plugin --profile add dsh-dead-links
参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| dir | string | — | docs | 相对工作区根的目录。默认 docs,不存在时回退到工作区根 . 并在结果中注明 |
| glob | string | — | /.md | 简单通配模式,仅支持 (段内)与 (跨段)两种通配,匹配相对 dir 的路径 |
| concurrency | number | — | 5 | 并发检查的 URL 数量,夹取到 1–10 |
| timeoutMs | number | — | 10000 | 单条请求超时(毫秒) |
输出字段
规范 JSON 值(ok: true 时):
{
"ok": true,
"dir": "docs", // 实际扫描的目录(回退后) "filesScanned": 12, // 命中 glob 并扫描的文件数 "linksFound": 58, // 提取到的链接出现次数 "linksChecked": 33, // 实际检查的唯一 URL 数(按 URL 去重)
"dead": [ // 死链列表(每条 = 一次出现位置)
{ "file": "guide.md", "line": 42, "url": "https://gone.invalid/x", "status": 404 },
{ "file": "api.md", "line": 7, "url": "https://nx.invalid/", "status": null, "error": "getaddrinfo ENOTFOUND …" } ], "durationMs": 2345, "truncated": false, // dead 超过 100 条时截断为 true "note": "…" // 目录回退 / 截断 / 取消等说明,存在时给出 }
ok: false(目录不可用)时:{ "ok": false, "error": { "stage": "fs", "message": "…" } }。
HEAD 降级 GET、限流并发
- HEAD 优先:先用 HEAD 探测,绝大多数站点对已存在的资源返回 2xx/3xx/4xx,无需下载响应体。
- 降级 GET:当 HEAD 返回 405 Method Not Allowed 或 403 Forbidden(部分站点/网关禁用 HEAD),或 HEAD 本身网络失败时,降级为 GET 复测。GET 只关心状态码:以流式方式读完响应体后立即丢弃,不落盘、不缓冲整包。
- 限流并发:用一个固定大小的 worker 池并发检查,concurrency(默认 5)控制同时在途的请求数,避免对目标站点造成突发压力。
- 去重:同一 URL 出现多次只发起一次网络请求,结果按 URL 缓存后映射回每一处出现位置;linksChecked 即唯一 URL 数,linksFound 为出现总次数。
与未来定时任务搭配
本插件只做「单次扫描」。配合一个跨会话调度器(如未来的 dsh-scheduler:定时器触发 → 空闲时 followup(…, { source: { kind: 'cron' } }),忙碌时 inject() 注入通知),即可实现「每周自动跑一遍 dead_links,把死链清单推给模型审阅/修复」:
1. 调度器在空闲时调用 dead_links(dir/glob 固定指向文档目录);
2. 工具返回规范 JSON,dead 非空时调度器把结果 inject 进会话,让模型生成修复建议或直接改文档;
3. 全链路只读扫描 + 结构化结果,天然适合作为周期性文档健康检查的探测步骤。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ZhijiangTang/dsh-dead-links
扫描 Markdown 文档,找出失效链接并定位行号
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,288已汉化MCP
71.7
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9
原生编程智能体paean-ai/deeptide
由 DeepSeek 打造,为 DeepSeek 而生。
★ 1,107已汉化DSH
67.7
多引擎接力台emo-xiaoyu/harness-mix
macOS/Linux 已加入源码构建与启动适配;目标系统的完整桌面验收仍需在对应机器执行。安装方式、Linux…
★ 419已汉化DSH
66.8
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。