DeepSeek Harness Hub
← 返回列表

yangzqq/dsh-mdvault

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

点开 Markdown 里的链接,直接就到达那个文件。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/12 · 已提供中文文档

DSH Web UI workspace document vault — a “文档” tab for previewing Markdown/PDF/Excel/images/code with wikilinks, Mermaid and in-page editing.

综合分
30.2
GitHub 分
30.2
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add yangzqq/dsh-mdvault
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-mdvault

npm
license
test

点开 Markdown 里的链接,直接就到达那个文件。

不是新开标签页跳到一个地址,而是就地打开:PDF 直接翻到指定页,图片直接显示,表格直接渲染,另一篇笔记直接跳过去。

dsh-mdvault 界面

dsh plugin --profile web add dsh-mdvault

DSH Web UI 的工作区文档库插件:在会话区新增一个 📄 文档 标签页,把当前工作区变成一个可浏览、可跳转、可编辑的“轻量 Obsidian”。

链接直达

这是本插件的核心能力。在文档里写下链接,点击即可到达:

| 你写的 | 点击后 |
| --- | --- |
| [[会议纪要]] | 打开同名笔记(全库范围查找) |
| 说明 | 跳转到另一篇笔记 |
| [[报告.pdf#page=17]] | 打开 PDF 并直接翻到第 17 页 |
| 设计图 | 打开图片,可缩放、可拖拽 |
| 统计表 | 打开表格,多工作表切换 |
| 流程图 | 在正文里直接显示图片 |

两套写法,各按各的规则解析(与 Obsidian 一致):

| 写法 | 相对谁解析 |
| --- | --- |
| [[双链]] | 工作区根目录;找不到时按文件名在全库范围匹配 |
| 文本 | 当前打开的这篇文档;../ 可用 |

用 | 加别名,让链接显示得更自然:

[[报告.pdf#page=17|第 17 页]]      →  点击「第 17 页」,翻到 PDF 第 17 页
[[很长的笔记文件名|简称]]           →  链接文字显示「简称」

解析不依赖文件树是否收录了该文件 —— 目录再深、文件再多,只要在会话工作区内就能打开。

为什么单靠平台做不到? DSH 自带的 Markdown 渲染器只认 http(s):// 绝对地址,相对链接和 [[双链]] 会渲染成点不动的纯文本。而且平台给链接统一加了 target="_blank" —— 插件若只在组件内部拦截,链接一经重新渲染就失效,浏览器会新开一个空白标签页。本插件在 document 级捕获阶段拦截点击并 preventDefault(),所以链接是真正“就地打开”的,也永远不会误跳出页面。

其他功能

文件树

- 全类型:Markdown / PDF / HTML / 代码 / 表格 / 图片,按类型用对应方式预览
- 默认全部折叠:只展开当前文档所在的那条路径;工具栏 ⊟ 折叠 一键收起全部
- 筛选框:输入关键字即时过滤,匹配时自动展开路径
- 分类图标:📝 Markdown · 📕 PDF · 📗 表格 · 🖼 图片 · 🌐 HTML · 💻 代码

Markdown 预览

- 完整 GFM:表格、任务列表、删除线、脚注、自动链接
- 数学公式:$...$ / $$...$$,由 KaTeX 渲染
- 代码高亮:围栏代码块带语法高亮与复制按钮
- Mermaid 图表:- YAML frontmatter:预览时自动隐藏,编辑时保留原文

渲染直接复用 DSH 平台自身的 MarkdownText,所以效果与聊天区完全一致,并自动跟随浅色 / 深色主题。

各种文件的预览方式

| 类型 | 说明 |
| --- | --- |
| PDF | 取回字节包成 Blob 再交给浏览器原生阅读器,避免被当成下载;#page=17 跳页锚点会保留;工具栏提供下载 |
| 图片 | 滚轮缩放、拖拽平移、复位、新窗口、下载;支持 png/jpg/gif/webp/svg/bmp/ico/avif |
| HTML | 在无 allow-same-origin 的沙箱 iframe 中预览 —— 页面处于不透明源,拿不到 GUI 的会话数据 |
| 代码 / 纯文本 | 只读查看,带语言提示与高亮 |
| 表格 | 内置 SheetJS 解析 xlsx/xlsm/xls/csv/tsv,多工作表切换 |

大文件保护

代码 / 文本按体积分档,避免把大文件塞进渲染管线:

| 体积 | 行为 |
| --- | --- |
| ≤ 200 KB | 正常语法高亮 |
| 200 KB – 2 MB | 纯文本显示(不高亮) |
| > 2 MB | 不渲染,只提供「新窗口 / 下载」 |

在线编辑另有限制:超过 6 MB 的文本文件拒绝加载。

编辑

- ✏️ 按钮进入编辑,Ctrl+S / ⌘S 保存写盘
- 行号栏、Tab 缩进、脏数据标记(未保存时路径后显示 •)
- 查找 / 替换:Ctrl+F 打开查找栏,Enter 下一个、Esc 关闭,支持替换与全部替换
- 放弃修改前会确认,不会静默丢失改动

与聊天输入框的关系
切换到 文档 标签时,底部输入框会自动隐藏,把整个窗口让给文档;切回 对话 自动恢复(草稿不会丢,只是被隐藏)。

工具栏的 ⌨ 输入框 按钮可以随时把它叫回来 —— 读文档时想顺手追问一句用得上。

与其他插件的关系

dsh-better-sidebar 是一个 VSCode 风格的侧边栏(终端 / Git / 浏览器 / 侧边对话等)。本插件把其中文件预览 / 编辑相关的能力搬到了主界面窗口:

| 能力 | dsh-mdvault(主窗口) | dsh-better-sidebar(侧边栏) |
| --- | --- | --- |
| Markdown 渲染 | ✅ 平台 MarkdownText | ✅ 平台 MarkdownText |
| 链接直达 | ✅ 双链 + 相对链接 | — |
| Mermaid | ✅ 按需加载 | ✅ 按需加载 |
| PDF / HTML | ✅ Blob 预览 / 沙箱预览 | ✅ 同 |
| 图片 | ✅ 缩放 / 平移 | 仅静态显示 |
| 编辑器 |  + 行号 + 查找替换 | CodeMirror 6(更高阶) |
| 终端 / Git / 浏览器 / 侧边对话 | ❌ 不在范围内 | ✅ |

两者可以共存,不冲突 —— 注册的 id 不同,渲染器各自独立。装了 dsh-better-sidebar 时,本插件还会额外提供:

- 一个 Markdown 渲染器 mdvault-markdown,可在侧边栏设置里开关(同一套渲染,双链在侧边栏里也能跳)
- 一个隐藏 Tab mdvault-pdf,用于侧边栏内的 PDF 跳页预览

未安装该插件时这部分自动跳过,不影响主界面任何功能。

安装
bash
dsh plugin --profile web add dsh-mdvault

然后重启 dsh web。会话区顶部出现 📄 文档 标签页即成功。

安装后可在「设置 → 插件」里看到它,开关和版本号都在那里。

其他安装方式
bash
dsh plugin --profile web add dsh-mdvault@1.2.1   # 指定版本
dsh plugin --profile web add /path/to/dsh-mdvault  # 从本地源码目录

环境要求

- DeepSeek Harness(@deepseek-ai/dsh)web 部署,dsh >= 0.1.5-rc.1
- 零依赖、零安装脚本:不会拉取任何 npm 包,安装时不执行任何代码
- 无构建步骤:lib/ 是可直接运行的纯 JavaScript
- 不需要外网:SheetJS 与 Mermaid 已内置在 dist/,用到时才按需加载

常见问题

标签页没出现?
空白的新会话不会显示顶部标签栏。打开一个已有内容的会话再看。

Mermaid 图表没渲染出来?
Mermaid 库有 3.4 MB,只在文档里真的出现
某个文件点不开?
请带上工具栏右端的构建号(形如 v1.2.4)反馈,它能确认你实际运行的版本。

文件树太窄或太宽?
拖动它与文档之间的分隔线即可调整,双击分隔线恢复默认宽度。分隔线可用键盘操作(聚焦后按 ←/→ 微调,Shift 加速,Home/End 到两端)。宽度会被记住。

历史对话显示的不是那个项目的文件?
正常情况下会自动定位到该对话当时的工作目录。若工具栏出现 ⚠ 非本会话目录,说明这个对话的目录没能读到,此时显示的只是部署默认目录。

卸载
bash
dsh plugin --profile web remove dsh-mdvault

再重启 dsh web。

许可

MIT。dist/ 内打包的第三方库(SheetJS / Mermaid)许可见 LICENSE。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群