dsh-ext-master:为 DeepSeek Harness 管理文档预览扩展名

前言

DeepSeek Harness(DSH)内置的文档预览通常只认少数后缀,例如 Markdown 只注册了 md / markdown。若项目里大量使用 Cursor 规则文件 .mdc,或其它自定义后缀(如 mdx),在侧边栏点开时可能无法走 Markdown 预览。改 app.asar 不可行,也不利于随 DSH 升级维护。下面介绍社区插件 dsh-ext-master:在 profile 级通过 bundle 与 client 插件机制,把可配置的后缀追加到对应预览定义,默认把 .mdc 当作 Markdown 预览。

这是什么

dsh-ext-master 由维护者 maxid 发布,归类为 DSH 客户端插件。一句话定位:DeepSeek Harness 的文档预览扩展名管理——当前以 Markdown 为主,配置结构按预览类型分组,后续可扩展 html、code 等类型。

仓库:https://github.com/maxid/dsh-ext-master
社区目录页:https://www.skillhub.cn/plugins/maxid/dsh-ext-master(独立站点,与 DeepSeek / 幻方无官方从属关系)

适配 DSH >=0.2.1-rc.3 <0.3.0-0(package.json 的 engines.dsh 声明;-0 边界使 0.3 预发布不算在内)。不修改安装包内的 app.asar,通过 DSH profile 的 bundle + client plugin 加载。

核心功能

  • 内置预览只注册了 md / markdown;本插件在运行时把配置的后缀追加到对应预览定义。
  • 默认 previews.markdown: [mdc];也支持 mdx 等任意安全后缀(小写、去前导 .、去重,并校验字符)。
  • 监听预览注册变化;即使目标预览定义晚于本插件注册也能补上。
  • 配置经 Host 注入页面的 __DSH_DOCUMENT_PREVIEW_EXTENSIONS__ 传递到前端。

实现上分为 Host 与 Client 两部分(见仓库结构):

lib/index.js        Host 插件:校验配置并通过 webserver/index-inject 注入页面
lib/client.js       Client 插件:按预览类型把后缀追加到对应预览定义
cordis.patch.yml    Bundle patch:插入 dsh-ext-master 行,默认 markdown: [mdc]

Client 侧使用 DSH 预构建的 window.__ModuleLoader__.load({ id, factory }) 协议;仓库直接提供 lib/client.js,无额外构建步骤。

版本与安装

本仓库 tag 与 DeepSeek Harness 官方 release 对应,命名为 dsh-v<版本>。在 engines.dsh 声明范围内,一般不必为每个 rc 换 tag;DSH 进入 0.3(含 alpha/rc)时,插件会先发布对应 tag。

DSH 版本 对应插件 tag 说明
0.2.1-rc.5 dsh-v0.2.1-rc.5 README 记载已在独立 profile 中验证 Host 注入与 Client bundle
0.2.1-rc.3 dsh-v0.2.1-rc.3 桌面版日常使用验证

推荐用 DSH 插件命令安装(把 desktop 换成你的 profile 名):

dsh plugin --profile desktop add "github:maxid/dsh-ext-master#dsh-v0.2.1-rc.5"

若需手动接入:将仓库放到 ~/.dsh/profiles/desktop/plugins,在 profile 的 package.json 里 link 依赖并把 dsh-ext-master 追加到 dsh.profile.bundles 末尾,再建立 node_modules 符号链接。完整步骤见 GitHub README「安装」一节。完成后刷新 DSH 页面;若 profile 未开 HMR,需重启 DSH。

典型用法:扩展 Markdown 后缀

bundle 自带默认配置:

previews:
  markdown:
    - mdc

要增加例如 mdx,在 ~/.dsh/profiles/desktop/cordis.patch.yml 追加(或合并):

- id: dsh-ext-master
  name: dsh-ext-master
  config:
    previews:
      markdown:
        - mdc
        - mdx

previews 的 key 对应预览定义 id 的最后一段(如 markdown、html)。后续若插件支持更多预览类型,可沿用同一结构:

previews:
  markdown: [mdc, mdx]
  html: [xhtml]

改配置后刷新页面(扩展名在页面加载时注入);仅改本插件 lib/client.js 时,代码本身可被 DSH HMR 热重载。

适用场景与注意

适合谁:在 DSH 里经常打开 .mdc、.mdx 等 Markdown 变体,希望侧边栏文档预览与内置 md 行为一致的用户;需要 profile 级扩展、且愿意自行维护插件与 DSH 版本对应关系的使用者。

权限与安全:插件以当前 DSH 进程权限运行。安装前应阅读仓库源码与 MIT 许可证,确认来源与行为符合你的环境策略。

已知限制(来自 README):

  • 文件树中 .mdc 图标可能仍为通用图标:前端 file-kind 映射在只读 bundle 内,插件无法覆盖;预览行为不受影响。
  • 这是 profile 级扩展,不进入 DSH 安装包;DSH 升级后 profile 与插件仍可继续使用(注意 engines.dsh 与 tag 对应关系)。
  • 更彻底的做法需上游把 mdc 写入 @deepseek-ai/dsh-client-ui-sidebar-documentpreview 的 extensions,并同步 file-kind 映射。

结尾

dsh-ext-master 用可配置的预览后缀补上了 DSH 默认 Markdown 注册表的缺口,默认即可预览 .mdc,并预留按预览类型扩展的结构。按需选择 tag 安装、在 cordis.patch.yml 里调整后缀即可落地。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜