dsh-md-overlay
DSH web plugin: a floating, resizable, multi-tab Markdown preview panel plus an md_preview model tool — preview any .md report right from the conversation, without opening local apps.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:2017java/dsh-md-overlay说明文档
阅读完整 README ↗dsh-md-overlay
DSH 里的 Markdown 浮层预览面板:对话里点一下,报告就在可拖拽的右侧浮层里渲染。
给 DSH 一个悬浮式、可拖拽调宽、多标签的 Markdown 预览面板,外加一个 md_preview 模型工具:
- 你在对话里说"预览一下 report.md",agent 调用
md_preview→ 对话出现紧凑卡片 + 右侧浮层打开渲染好的预览; - 浮层支持同时打开多个文档、标签切换、宽度拖拽(320px~75% 屏宽);
- 渲染质量:标题、表格、代码块、徽章、剥离 HTML 注释,无需打开本地应用。
与 dsh-md-viewer(融合进 dsh-better-sidebar 侧边栏)互补:需要"融入布局、不遮挡"用 md-viewer;需要"随时弹出的浮层阅读区"用 md-overlay。
✨ 功能
- 🖥️
md_preview模型工具:读取 workspace 内 .md 并触发浮层预览 - 📑 多标签浮层:一次打开多个文档,点击切换,逐个关闭
- 📏 可拖拽宽度:左缘拖动 320px~75% 屏宽
- 🎨 完整渲染:标题/列表/表格/代码块/链接/图片/引用/分隔线
- 🛡️ HTML 处理:
→图片、剥离、实体反转义;纯 React、无innerHTML - 🔒 安全边界:只读 workspace 内文件,超 1MB 拒绝
🚀 安装
前置:DSH(dsh web 可运行)。
dsh plugin --profile web add dsh-md-overlay@latest
装完硬刷新浏览器(Cmd/Ctrl+Shift+R)。之后在对话里让 agent 预览某个 md 文档(或你提到某个报告文件),浮层即会自动打开。
🔌 机制
- Host 半(
lib/index.js):用ctx.tools.register(defineTool(...))注册md_preview工具,经fs读取文件(workspace 守卫 + 1MB 上限);文件内容通过output.presentationMeta随tool/result事件带给客户端卡片。 - Client 半(
lib/client.js):tool.call.toolview卡片解析block.meta拿到内容并写入标签页;shell.overlay渲染多标签可拖拽浮层。
⚠️ 已知限制
- 浮层是覆盖层,小屏会遮挡会话(介意的话用 dsh-md-viewer 的融合侧边栏版);
- 卡片内容来自
md_preview调用的返回;不经过工具调用的文档不会出现在浮层里; - markdown 相对路径图片不解析;不支持 LaTeX / Mermaid / 任务列表。
📦 发布
见 PUBLISHING.md(npm 发布 + dshfind 插件超市收录的完整流程)。
📄 License
MIT