十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

dsh-chat-locator 插件:DSH Web 对话定位条配置插件,刻度粗细 / 轨道位置 / 悬停预览尺寸全可调

dsh-chat-locator 插件:DSH Web 对话定位条配置插件,刻度粗细 / 轨道位置 / 悬停预览尺寸全可调 项目地址https://github.com/hawkongz/dsh-chat-locator平台DSH WebDeepSeek Harness协议MIT运行时依赖零背景一条好定位条可惜改不了DSH Web 沿对话区边缘画一条轮次定位条turn rail每轮对话一枚刻度悬停出预览卡片、点击跳转到该轮、未加载的轮会先把历史翻进来。这套能力内置且完整——本插件没有、也不需要重复实现它们。问题在尺寸全部钉死刻度线宽固定 2px轨道固定贴在右侧预览卡片高度固定约合三行行数、字号、宽度都没有设置入口。轨道由 ChatView 直接渲染Slot 系统没给它留座位界面上任何地方都找不到对应开关。插件定位不重做轨道只把尺寸变成设置dsh-chat-locator 是一个 DSH 持久插件把这些钉死的尺寸变成七个设置项外加一条装饰性的曲线长度渐变。它的默认值精确对应内置外观——装上之后视觉零变化改动只发生在你调了设置之后。想改再改不想改它就是一个安静的后台插件。工作原理认领样式而不是重画重画一条轨道就得重新实现跳转轮次、未加载轮分页、活跃轮跟随——三件容易弄错且用户立刻能感知的事。插件选择第二条路认领现有轨道的样式。运行时发现类名。轨道的 CSS Module 前缀由打包器生成、随构建变化插件不硬编码discoverRail()遍历实时 DOM找含_mark子元素的_frame元素现场拿到真实前缀实测为eGxaPq但代码不依赖这个值。注入一张属于自己的覆盖样式表。按当前配置生成全部带!important的规则由于注入时机可能早于 ui-chat 自己的样式表!important保证规则不依赖插入顺序也能生效。轨道尚未渲染时不足两轮、容器窄于 900px、非会话视图不报错由一个 400ms 节流的 MutationObserver 等它出现再补规则。设置住在浏览器。浏览器半侧用deepseek-ai/dsh-client-store的createSnapshotStore自建作用域落本地存储键dsh.chat-locator.settings改动当场写入、重启浏览器不丢。代价是不跨浏览器、跨设备同步。上游改了类名会怎样安静失效——渐变停了轨道、跳转、预览照旧不会弄坏任何东西。七项设置一览所有配置在一页内设置 → 对话定位条。设置项默认范围显示对话定位条开开 / 关长度渐变开开 / 关横线粗细2px1–8px轨道位置右侧左 / 右预览正文行数31–6预览字号12px10–18px预览框宽度300px200–420px默认组合12px 字号 / 3 行 / 300px 宽对应的卡片高度恰好是内置的 100px这就是默认即原版的由来。「恢复默认」走逐字段unset而不是把默认值再写一遍全部处于默认值时按钮置灰。设置页内带一条七刻度小样轨道和示例预览卡改哪一项它就变哪一项不用回对话里试。曲线长度渐变的数据指针下那根刻度最长两侧沿幂曲线收回宽度表由12 20 * (1 - d/3)^2生成距悬停刻度0±1±2≥3宽度32px21px14px12px每格递减—11px7px2px调参记录项目设计文档公开指数 2.5 时第一格掉 15px读起来像断崖1.5 时邻居偏长、悬停刻度不突出2.0 是第一格 11px、落在弯而不陡的 9–12px 区间内的折中且悬停刻度是邻居的 1.52 倍。渐变锚在悬停刻度上当前轮刻度永不被改写关掉开关整条宽度家族连同框架加宽一起撤掉回到内置观感。安装步骤前置条件一份可用的 DSH 安装有dsh命令和一个 profile本文用webNode.js 20 或更新。插件本身零依赖、无构建步骤整个包就是四个文件。1. 安装dsh plugin 会把参数转发给 profile 目录里的 pnpmdsh plugin --profile web add dsh-chat-locator2. 重启宿主新 bundle 要等宿主重启一次才会挂载dsh web验证浏览器打开http://127.0.0.1:3080设置侧栏出现「对话定位条」打开任意对话把指针沿轨道上下滑一次指针下那根会变长两侧依次收回。更新与卸载dsh plugin --profile web update dsh-chat-locator # 更新后需重启宿主dsh plugin --profile web remove dsh-chat-locator # 卸载后需重启宿主没有网络访问 npm 或 GitHub 时也可以只下载四个文件package.json、index.js、client.js、cordis.patch.yml装文件夹README 里给了 macOS / Linux 与 Windows PowerShell 两套命令。已知边界长度渐变需要 CSS:has()Chromium 105不支持的浏览器忽略这些规则其余功能照常。粗细上限 8px刻度行高固定 10px再粗会互相重叠。容器窄于 900px 时内置轨道自行隐藏插件不强行召回。渐变开启时轨道框架从 28px 加宽到 36px给 32px 峰值留裁剪余量对话右缘的隐形交互带随之宽出 8px关掉渐变即恢复原宽。测试套件 125 项断言node test/verify-client.mjs一条命令跑完不需要浏览器和网络。项目地址https://github.com/hawkongz/dsh-chat-locator — MIT 协议欢迎 Star / Issue。
返回列表