dsh-at-file
FSMargoo/dsh-at-fileCodex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
把 DSH 助手 Markdown 里合格的 `> [!NOTE]`、TIP、IMPORTANT、WARNING、CAUTION 块引用渲染成跟随主题的 GitHub 风格提示卡片,不改会话存档。
English · 简体中文
为 DeepSeek Harness (DSH) 助手 Markdown 提供 GitHub 风格提示卡片。它把符合条件的 > [!NOTE] 引用块渲染为带稳定类型、图标和语义色的紧凑卡片,不修改存储的会话内容或 DSH 核心渲染器。
> [!WARNING]
> This operation may overwrite existing configuration.
安装插件并刷新 DSH Web 后,发送这段助手 Markdown。符合条件的首标记会成为警告卡片;畸形或未知标记仍按普通文本保留。
警告应该看起来像警告,而不必等到读者读到命令才意识到。关键结论应该容易定位,而不必把整段回答都套进彩色框里。
dsh-callout 让源格式保持可读的 Markdown,只在展示阶段做升级:
助手 Markdown → DSH MarkdownText → 普通引用块 → 提示卡片
它不修改存储的会话内容、provider、权限、工具或 DSH 核心渲染器。
| 类型 | 用途 | 语义色 |
|---|---|---|
NOTE | 前提、环境事实与边界 | 蓝 |
TIP | 更优或不太明显的做法 | 绿 |
IMPORTANT | 决策或关键结论 | 紫 |
WARNING | 潜在损失或破坏性操作 | 琥珀 |
CAUTION | 高影响或难以回退的操作 | 红 |
下面两张图把证据贴近实现:类型图展示支持的语义卡片,流程图展示带守卫的 DOM 展示层升级路径。
没有设置项。装上之后,宿主半会把写法说明注入系统提示词,浏览器半会升级合格的助手 Markdown。
dsh plugin --profile web add github:Aafff623/dsh-callout
然后硬刷新 Web UI(Ctrl+Shift+R)。dsh.bundle.patch 会把插件插入 profile bundle。
lib/ 已提交入库,git 安装无需本地构建。
尚未发布。只有包进入你使用的注册表后,dsh plugin --profile web add dsh-callout 才可用。
使用以下两种形式之一:
> [!NOTE]
> 正文写在下一行。
> [!NOTE] 正文写在同一行。
标记必须是引用块的第一段内容。多行 callout 的每一物理行都以 > 开头。
以下不是规范 callout:
[!NOTE] 没有 `>` 标记的正文。
普通文字 > [!NOTE] > 被压到同一行的正文。
畸形或未知标记会 fail-open,作为普通文本保留。插件不会把每一处出现的 [!NOTE] 都强行变成卡片。
body[data-ds-dark-theme] 开关。| 层 | 文件 | 职责 |
|---|---|---|
| 宿主 | src/index.ts | 向系统提示词注入简洁的输出契约 |
| Bundle | cordis.patch.yml | 在 DSH bundle 中注册插件入口 |
| 浏览器 | src/client/index.ts | 匹配渲染后的 DOM、应用卡片属性/CSS、观察流式更新、负责卸载 |
| 验证 | test/callout.test.mjs | 测试 GFM 形状、负例与 observer 状态机 |
两半都由 esbuild 构建到 lib/。浏览器部分刻意保持纯展示层:使用插件自有 data-md-alert-* 属性与 --dsh-callout-* 变量,并通过 Cordis ctx.effect() 注册清理。
npm install
npm run typecheck # tsc --noEmit
npm run build # esbuild → lib/index.js + lib/client.js(ModuleLoader 包装)
npm test # node:test,在 vm 沙箱中跑构建产物
lib/ 是刻意提交入库的:git 安装无需构建步骤。改动 src/ 后要执行 npm run build 并把刷新后的 lib/ 一起提交——CI 会检查漂移。
测试套件目前覆盖 30 个用例,包括:
需要快速目视时,打开 demo-before-after.html。本 README 中的图是确定性的实现示意,不是运行中会话的截图。
| 插件 | DSH 基线 | 状态 |
|---|---|---|
0.2.x | 0.1.2-rc.1 | 已测试 |
DSH 升级后,先运行 npm test,再冒烟测试一条标准 callout、一段代码示例、一次主题切换和一次会话切换。若渲染器、Markdown 根 class、客户端加载器或 chat-flow 属性发生变化,先复核 src/client/index.ts 再升级插件版本。
MIT——见 LICENSE。