- Главная
- Плагины
- Улучшения UI
- dsh-gfm-alerts
dsh-gfm-alerts
nevstop-lab/dsh-gfm-alerts
Renders GitHub-flavored Markdown alerts (the `> [!NOTE]`, TIP, IMPORTANT, WARNING and CAUTION callout blocks) in DSH replies as theme-aware boxes with localized titles, and registers a system-prompt section asking the model to prefer them.
Установка
dsh plugin --profile web add github:nevstop-lab/dsh-gfm-alertsREADME
DSH 的 GitHub 提示块插件:把回复里的 GitHub Markdown 提示块渲染成 GitHub 的提示框——圆角底、左侧色条、图标加本地化标题,浅色/深色主题跟随宿主。插件还会注入一条偏好,让模型在回复里优先用提示块强调信息。
[!IMPORTANT] 插件默认把下面这条偏好注入系统提示(见提示注入),回复会更倾向使用 GitHub Markdown Callouts。
- Markdown 中倾向于使用 GitHub Markdown Callouts(
> [!NOTE]、> [!WARNING]等)来强调信息,而不是单纯的加粗或斜体,或使用强烈的语气词语。同样的要求也可以写进 AGENTS.md、copilot-instructions.md 或其他 AI 参考规范文档;和插件注入的内容一致即可。不需要插件注入时,把行
config的enabled设为false。
功能
- 支持 GitHub 的五种提示块:
[!NOTE]、[!TIP]、[!IMPORTANT]、[!WARNING]、[!CAUTION],类型大小写不敏感 - 标题本地化:跟随界面语言显示
Note/注意,中英词典随插件注册 - 主题自适应:颜色只用
--dsw-alias-*主题 token,切换浅色/深色不需要重启 - 流式输出中同样生效;宿主重新渲染把字面标记写回来时,立刻再处理一次
- 只改显示:会话记录、事件流、复制出来的 Markdown 原文都不变
- 提示注入:Host 半边向系统提示注册一段排版偏好,让模型优先用提示块(见提示注入)
| 写法 | 显示 |
|---|---|
> [!NOTE] | 蓝色「注意」框 |
> [!TIP] | 绿色「提示」框 |
> [!IMPORTANT] | 紫色「重要」框 |
> [!WARNING] | 琥珀色「警告」框 |
> [!CAUTION] | 红色「危险」框 |
提示注入
Host 半边往系统提示里加一个 prompt section,默认内容是:
回复中更倾向于使用 GitHub Markdown Callouts(> [!NOTE]、> [!WARNING] 等)来强调信息,而不是单纯的加粗或斜体,或使用强烈的语气词语。
它只改模型写回复时的排版偏好:不写会话事件、不产生消息、不改已有记录。
cordis.patch.yml 里这一行的 config 可以调整,字段全部可选:
| 字段 | 默认 | 作用 |
|---|---|---|
enabled | true | false 关闭注入 |
text | 上面那段 | 自定义注入文本;空字符串等于不注入 |
order | 10150 | 在系统提示里的排序值,越大越靠后(宿主内置段落占 9000–10200) |
[!NOTE] 注入是偏好而不是强制:模型仍可能不用提示块。插件不会改写模型输出的正文,也不会把普通加粗替换成提示块。
安装
需要 dsh CLI,宿主版本下界 0.2.0-rc.1。
从 GitHub 仓库安装:
dsh plugin --profile web add github:NEVSTOP-LAB/dsh-gfm-alerts
[!NOTE]
--profile web是默认 profile;其他 profile 换成对应名字。
建议锁定提交,避免后续更新改变实际内容:
dsh plugin --profile web add github:NEVSTOP-LAB/dsh-gfm-alerts#<commit-sha>
也可以从 Releases 下载 tarball 安装:
dsh plugin --profile web add ./dsh-gfm-alerts-0.2.0.tgz
安装后确认组合层里出现该插件:
dsh --profile web --dump-config
重启 DSH 并刷新页面后生效:带提示块的回复会显示为圆角提示框,而不是带竖线的引用块;之后的回复也更倾向用提示块强调信息。
卸载:
dsh plugin --profile web remove dsh-gfm-alerts
已知限制
- 只认 blockquote 形式:
> [!NOTE]才是提示块;单独一行[!NOTE]按普通文本渲染(GitHub 的规则相同)。 - 装饰依赖渲染后的 DOM 结构:宿主把 Markdown 渲染成
blockquote > p,插件据此识别首段的字面标记。宿主改渲染结构时最坏的结果是提示块退化成普通引用块,不会报错。 - 不改 Markdown 源:导出的会话记录、复制的全文仍是原文;样式只存在于界面。
- 只在 Web 界面渲染提示框:DSH Desktop 的对话界面同样由 Web 渲染,因此一并生效;纯终端(headless / ACP)没有这条渲染路径。提示注入走的是 Host 半边,不受此限。
- 提示注入只是偏好:模型可能不用提示块;宿主没有
systemPrompt服务时注入不生效。
实现
插件分两半:
- Host(
index.js):用ctx.systemPrompt.section()注册一段排版偏好;不 import 任何宿主包,也不写会话事件。 - Client(
lib/client.js):DSH0.2.1-rc.5的 Markdown 渲染器是宿主内置的 mdast 渲染器,没有可注册的块级渲染扩展点,也没有「助手正文」槽位。插件因此对渲染结果做增量装饰:识别blockquote首段开头的[!TYPE],挂data-dsh-gfm-alert*属性,由注入的样式表用伪元素画标题与图标,并去掉首段的字面标记;不插入、不移动 React 节点。
细节、DOM 契约、注入顺序与风险边界见 doc/design.md;开发与发版流程见 CONTRIBUTING.md。
License
MIT
Похожие плагины
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-TUI
ccch1mneyyy/dsh-tui
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui