在 DSH 的文件域中,Markdown 文件通常只以纯文本形式显示,缺乏排版和交互体验。dock-markdown 旨在解决这个问题,它为 .md、.markdown 和 .mdx 文件注册了查看器,提供 GFM 渲染、DOMPurify 内容消毒、文档大纲以及与编辑器的快速切换功能,让 Markdown 内容在 DSH 中具备“编辑器级”的阅读体验。
功能说明¶
Markdown 渲染与安全¶
插件使用 marked 库支持 GitHub Flavored Markdown (GFM) 语法。渲染后的 HTML 输出会经过 DOMPurify.sanitize() 消毒,确保写入 DOM 的内容是安全的。
相对路径资源解析¶
Markdown 中的相对图片与内部链接会按照以下优先级解析:
1. Markdown 所在目录
2. 当前路径所在 git 仓库根目录
3. 会话工作区根目录
图片以内联 data URL 形式展示,内部链接点击后在工作台打开目标文件,锚点链接(#锚点)支持平滑滚动。
文档大纲¶
工具栏中的 ☰ 按钮用于展开或收起大纲栏。大纲按标题层级(h1–h6)缩进列出,点击标题可跳转,滚动时当前章节会自动高亮。
查看器切换与主题¶
工具栏提供按钮,可一键在“查看”模式和 dock-editor 编辑模式之间切换。排版样式遵循 DSH 主题 token,自动适配亮/暗主题。代码块、表格、引用等常用 GFM 元素均有专门的样式。
安装与依赖¶
该插件运行在 DSH Web 环境,依赖 dock、dock-files 和 dock-editor 插件。
dsh plugin --profile web add dock-base
dsh plugin --profile web add dock-files
dsh plugin --profile web add dock-editor
dsh plugin --profile web add dock-markdown
依赖项要求:
* dock >= 0.1.0:提供 ctx.workbench。
* dock-files >= 0.1.0:注册 markdown 查看器。
* dock-editor >= 0.1.0:提供 /desk-editor/fs.read 接口及编辑视图。
* cordis ^4.0.0-rc.7:插件框架。
* react ^18.2.0:客户端渲染需要(可选,若未提供则查看器 UI 不激活)。
* marked / dompurify:随插件打包,无需单独安装。
注意事项¶
- 安全风险:DOMPurify 默认允许
style属性,理论上恶意 Markdown 可能利用 CSS 进行外联跟踪。如需更严格的安全策略,可配置FORBID_ATTR: ['style']。 - 文件访问权限:相对路径资源解析不受会话工作区限制。Markdown 文件可能位于主机任意位置(如
~/.dsh/skills/...),插件会按优先级尝试读取候选路径下的文件。 - 许可证:本插件遵循 MIT 许可证。
总结¶
dock-markdown 为 DSH 插件生态补充了结构化的 Markdown 阅读能力。通过集成大纲导航、一键编辑切换和安全的渲染机制,它能够满足文档审阅、技能库浏览等场景下的需求。
- GitHub: https://github.com/AKS1st/dock-markdown
- 目录: https://www.skillhub.cn/plugins/AKS1st/dock-markdown