dsh-paste-code-block: 将粘贴内容折叠为卡片

前言

在 DeepSeek Harness (DSH) Web 的对话输入框中,复制长日志、堆栈跟踪或 API 响应,会导致输入区域变成难以阅读的文本墙。dsh-paste-code-block 插件通过将粘贴内容转化为结构化的“芯片”卡片,解决了这一视觉杂乱问题。它利用 DSH 的隐藏引用机制,在保持内容可编辑和可恢复的同时,让输入界面保持整洁。

插件简介

名称:dsh-paste-code-block
作者:cjm-m
分类:趣味换装
许可:MIT

该插件是 Cherry Studio 风格粘贴功能的移植,专用于 DSH Web 环境。它将粘贴的文本或代码自动折叠为带边框、可折叠且带有语言标签的卡片。在发送消息时,原始内容会自动恢复为 fenced 代码块;而在对话记录中,这些代码块会保持折叠状态,仅显示为可展开的卡片。

核心功能

  1. 自动块检测
    插件会检测包含换行符、长度超过 96 个字符、大括号密集或 fenced 标记(```)的文本。满足任一条件即视为代码块,否则普通短文本直接通过。

  2. 语言标签与智能编号
    自动识别 Python、JS、JSON、YAML、SQL、bash、HTML/XML、C++、Go、Ruby(含 shebang)等语言。纯文本块会被标记为 text。代码块和文本块分别计数,编号自动回收未使用的数字。

  3. 卡片内编辑与删除
    点击芯片可展开卡片,支持内联编辑、复制、折叠/展开。卡片右上角提供 × 按钮可一键移除该块,同时释放其占用的编号。

  4. 发送与恢复
    点击发送后,内容会以完整的 fenced 代码块形式发送。若发送失败,输入框会自动恢复原始内容。

  5. 对话中的折叠显示
    发送后的消息在对话流中保持折叠状态,显示为类似 python · 128 行 的卡片。点击头部可展开阅读,再次点击折叠。

  6. 本地化支持
    卡片名称跟随 DSH 界面语言(中文/英文),例如 代码块 1 或 Code #1。在设置中切换语言时,现有卡片名称会实时更新。

安装与启用

插件通过 npm 发布,安装命令如下:

dsh plugin --profile web add dsh-paste-code-block

安装完成后,需要重启 dsh web 进程以加载插件。

使用步骤

  1. 复制:从任何地方复制任意代码或多行文本。
  2. 粘贴:在 DSH 输入框中粘贴,内容会自动折叠为芯片(如 代码块 1)。
  3. 管理卡片:点击芯片打开卡片,可进行阅读、内联编辑或点击 × 删除。删除操作会立即回收编号。
  4. 发送:发送消息。原始内容会以 fenced 代码块形式发出。
  5. 查看记录:在对话历史中,代码块以折叠卡片形式显示,点击头部可展开。

注意事项

  • 草稿安全:块被附加在草稿末尾,利用 DSH 的隐藏引用机制,这保持了光标和撤销操作的稳定。创建块时不会在前后留下多余空格。
  • 纯文本处理:纯文本块在发送时会包裹在 text fences 中,防止文本被挤成一行。
  • 删除机制:通过点击 × 或按 Backspace 删除都会释放编号。删除是普通编辑操作,支持 Ctrl+Z 撤销。
  • 显示与存储:发送后的折叠仅是显示样式,不会修改存储的消息内容。草稿重建恢复依赖 localStorage 镜像(若浏览器禁止本地存储,仅支持同标签页切换)。
羽毛球分组比赛记分
小程序二维码

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

小夜