Che-Year/dsh-unidoc
dsh-unidoc
dsh-unidoc is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add github:Che-Year/dsh-unidocRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-unidoc)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from Che-Year/dsh-unidoc, cleaned of badges and images.
dsh-unidoc — 通用文档中心(Universal Document Center)
🌐 中文 | English
DeepSeek Harness 的文档预览 / 编辑 / 管理插件。在 DSH Web GUI 中提供一个 VSCode 风格的「文档中心」工作台:左侧文件树,点击即预览,代码与 Markdown 支持编辑与
Ctrl/Cmd+S保存;同时为 Agent 暴露doc_read/doc_edit/doc_create三个文档工具,让模型可以通过自然语言读写工作区文档。
功能总览
1. 文件预览与编辑(验收标准对照)
| 类别 | 格式 | 实现方式 |
|---|---|---|
| 办公文档(只读) | .docx .xlsx .pptx | 元数据 + 「暂不支持在线预览」友好提示卡(Office 预览内核未加载) |
| 代码与配置 | .py .java .go .rs .cpp .c .js .ts .jsx .tsx .json .yaml .yml .toml .xml .ini .conf 等 | 轻量语法高亮(关键词/字符串/注释/数字)+ 编辑 + Ctrl/Cmd+S 保存 + Tab 缩进 + 括号自动配对 |
| 标记语言与富文本 | .md .html | Markdown:编辑/预览双模式,预览渲染标题/列表/代码块/表格/图片,支持相对图片与相对链接跳转;HTML:沙箱预览(CSP 禁脚本 + iframe sandbox 属性双重隔离)+ 源码视图 + 新标签页打开(unidoc.openExternal) |
| 静态资源与版式 | .png .jpg .jpeg .gif .svg .webp .pdf | 图片自适应缩放;PDF 内嵌浏览器查看器(翻页/缩放由浏览器原生提供) |
| 数据科学(探索性) | .ipynb | 只读 Notebook 预览:Markdown 单元渲染 + 代码单元高亮 + 文本输出 |
| 纯文本兜底 | .log .csv .txt 及任意未归类文本 | CSV 渲染为表格;其余以只读纯文本打开——未知扩展名绝不崩溃 |
| 明确不支持 | 音视频(.mp4 .mp3 等)、iWork(.pages .numbers .key)、CAD(.dwg)、OpenPencil(.op) | UI 给出友好「暂不支持预览」提示与文件信息 |
2. 界面入口
- 侧边栏底部「📝 铅笔文件」图标按钮(
sidebar.footer.action,纯图标无文字,Font Awesomefa-file-pen)——打开/关闭工作台; - 全屏工作台(
shell.overlay):- 顶部显示标题与当前工作区根目录路径(自动识别当前 DSH 会话工作区,切换 Agent / 会话时自动感知——打开时先刷新根目录并重载文件树,运行期每 5s 感知切换;每次上报「当前选中会话」工作区作为权威信号(
hintCwd),切换到任意工作区(含早已创建的历史会话)都能精确命中,不再残留旧根;切换后文件树完全重置:清空缓存、重置展开状态、选中路径与滚动位置到根目录、关闭预览,顶部路径与文件树内容始终一致); - 左侧为文件区:
- 文件树顶部显示工作区根目录;文件树支持懒加载、点击目录展开/折叠、文件大小,文件图标按扩展名映射 Font Awesome 标准图标(代码/文档/图片/PDF/Office/压缩包/音视频等);
- 「展开全部」:一键递归展开工作区全部目录(含
.git、.github、.vscode、node_modules等隐藏目录),异步分批加载并每层让出主线程,超大仓库不卡页面;**「折叠全部」**一键收起并释放缓存; - 刷新 / 展开全部 / 折叠全部 / 选项 / 关闭操作键统一排列在文件区下方(左下角),从布局上避免与其他插件悬浮按钮(如 better-sidebar 的折叠侧边栏图标)在右上角位置重合;
- 右侧为预览/编辑面板:所有视图工具栏均有「外部打开」按钮(点击 → 浮现编辑器选择菜单 → 选择 → 跳转打开,并记住上次选择的编辑器),HTML 预览另有「新标签页」按钮(
window.openraw 路由 URL);
- 顶部显示标题与当前工作区根目录路径(自动识别当前 DSH 会话工作区,切换 Agent / 会话时自动感知——打开时先刷新根目录并重载文件树,运行期每 5s 感知切换;每次上报「当前选中会话」工作区作为权威信号(
- 运行卡片(
tool.view.cordis):显示插件激活状态与一键打开按钮; - Toast 反馈:加载 Loading 状态、保存成功/失败提示;
- 选项面板(会话级内存配置,从文件区下方「⚙ 选项」键向上弹出):代码编辑开关、Markdown 双模式开关、「暂不支持」提示卡开关、外部编辑器列表(增删改,自定义名称与命令,默认 VS Code / Sublime Text / Atom / Notepad++ / Vim / Neovim / Typora)。
3. Agent 集成工具
| 工具 | 说明 |
|---|---|
doc_read | 按路径读取文档/代码(支持 offset/limit 按行读取大文件;二进制返回文件信息) |
doc_edit | 将文件中唯一出现的 old_string 替换为 new_string 并原子保存(0 次或多处匹配都会明确报错) |
doc_create | 创建工作区内新文件(默认不覆盖;overwrite=true 可覆盖) |
所有路径均相对文档中心根目录(当前会话工作区),并经 fs.contains 校验,
杜绝目录穿越。
技术架构
双端结构(DSH 动态 Cordis 插件)
…

