dsh-script-cards:DSH 里的剧本卡片网格与两级分支画布

前言

在 DeepSeek Harness(DSH)里写长篇剧本或分支剧情时,人物、设定、待定问题、章节和情节往往散在很多小 Markdown 文件里,跨多次会话也很难一眼看清全貌。常见做法是自己在编辑器里来回翻目录,结构(画布坐标、连线、章节归属)要么记在脑子里,要么另开一份 JSON,和卡片正文容易脱节。

dsh-script-cards 是维护者 tokai-teiodh 发布的客户端插件:在项目目录下用「方片网格」管存档类卡片,用「两级分支画布」管章节与情节,在浏览器里改完直接写回卡片文件;画布结构落在 分支.json,与正文一样能进 git。下面介绍它做什么、怎么装、目录与卡片约定,以及可选的 cards.py 辅助工具。

这是什么

插件全名 dsh-script-cards(npm 包名同 GitHub 仓库名),当前资料中的版本为 0.2.1(MIT 许可证)。它面向 DSH 的 Web 客户端:装好后会话头会出现「剧本档案」按钮,右侧栏多一个可停靠页(与对话并排),左侧栏也有一页全屏入口。

一句话定位:两个视图、两族卡片——方片视图收存档族卡片,分支视图收分支族卡片,互不混用;编辑结果写回磁盘上的 Markdown 与 JSON,而不是只存在浏览器里。

视图 卡片 type(资料原文)
方片 project character setting scene beat dialogue open decision reference
分支 chapter node condition result

社区目录页:skillhub.cn 插件页。源码与说明:GitHub tokai-teiodh/dsh-script-cards。DSH 生态是「一切皆插件」;SkillHub 等目录站与 DeepSeek / 幻方无官方从属关系,安装前请自行查看源码与许可证。

核心功能

方片页:全貌与存档

方片页是自适应圆角方片网格,按类型分组;标签单行横滑(按住标签条左右拖,左侧卡片区不便拖选文字,右侧详情正文可选)。支持星标收藏与置顶,点开看正文。人物卡可右键设「角色色」,写入卡片 frontmatter 的 color,文档里该人物台词名会跟着变色。

分支页:章节 → 情节,两级画布

上级排章节,下级排该章节里的情节;配浏览器式导航(后退 / 前进 / 回到上级 / 刷新 + 面包屑)。双击章节卡片进入下级。

画布交互(资料中的要点):

  • 缩放与平移:滚轮以指针为中心走固定档位(25%~200%);空白处左键拖动画布;中键、Alt+左键 也可平移。
  • 连线:从卡片边缘圆点拖出贝塞尔线,松手连接;拖动卡片时连线实时跟随。线可点击命名,右键可重命名或删除。
  • 框选与批量:画布上右键拖虚线框多选;Delete 移出画布,Ctrl+A 全选本层;可编组、染色、自动排列(竖排 / 横排)等。
  • 引用卡:从「存档卡」抽屉拖入画布的是引用,不复制文件,位置记在 分支.json 的 refs;虚线边、只读详情,改内容回方片页。
  • 文本框与矩形:独立对象,记在 分支.json 的 objects;不参与连线与自动排列对卡片的同一套文件语义。
  • 展开卡片:默认浮动窗口(可图钉、可全屏);章节 / 节点另有「字段 | 文档」页签,文档是 <档案目录>/文档/<与卡片同名>.md 的独立文件。

文档页:长文与台词录入

仅在章节、节点类卡片上,文档与卡片正文的 ## 角色 等字段分离。文档输入框支持 Ctrl+S 保存,空文档不落盘。在文档里右键可调人物菜单(来自方片页 type: character 的标题规则)录台词 / 旁白,带 Enter / Shift+Enter 等行首标记规则。未保存草稿暂存在本机浏览器(不写进项目目录);写盘失败时输入框只读并说明原因。

更细的操作说明在仓库内 操作指南.md(README 中链接)。

安装与启用

该包未发布到 npm,需以源码形式放进 DSH profile 的 node_modules,并在 profile 的 bundle 列表里登记。改 bundle 后必须重启 DSH——客户端名单与 Typert 清单在 boot 时组装,不重启不生效。

资料原文安装步骤如下(Windows PowerShell 示例路径,Linux/macOS 请将 $env:DSH_HOME 换为对应环境变量):

# 1) 克隆进 profile 的 node_modules
git clone https://github.com/tokai-teiodh/dsh-script-cards "$env:DSH_HOME\profiles\desktop\node_modules\dsh-script-cards"

# 2) 把包名加进该 profile 的 dsh.profile.bundles(见 profiles/<profile>/package.json)
#    "dsh": { "profile": { "bundles": [ ..., "dsh-script-cards" ] } }

# 3) 重启 DSH

运行环境:package.json 要求 Node >= 20;peer 依赖含 @deepseek-ai/cordis ^4.0.2。

目录约定与卡片格式

默认目录在项目根下(名称可在面板「设置」里按项目改,存在浏览器本地):

<项目根>/
  剧本档案/
    卡片/*.md        ← 一张卡片一个文件
    归档/*.md        ← 会话总结
    文档/*.md        ← 章节 / 节点卡片的独立文档(与卡片文件同名)
    分支.json        ← 章节归属、画布坐标、连线、染色、引用位置等

正文在卡片 .md 里,结构在 分支.json 里;文档是第三份独立文件。frontmatter 字段白名单(与 cards.py 一致):id / type / title / code / chapter / mode / when / order / summary / tags / color / created / updated / source。

节点示例(资料原文):

---
id: node-n1
type: node
title: 神社训练
when: 第4天
order: 10
summary: 一行简介(面板卡片最下面那行)
tags: 日常, 支线
---

## 角色
- 甲

## 场景
- 某地

## 内容
- 发生了什么
  • code:章节序号,如 G1.1。
  • chapter:所属章节卡片键,形如 card/<文件名去掉 .md>。
  • mode: branch:画成分歧节点(带选项列与多出口)。

典型用法:cards.py(可选)

仓库附带零依赖 Python 工具 cards.py,用于初始化档案、增删卡片、归档会话、重建索引等。在项目根执行,例如:

python cards.py init    --root .
python cards.py add     --spec card.json --root .      # 新增卡片(--force 覆盖)
python cards.py archive --spec summary.json --root .   # 归档一次会话
python cards.py index   --root .                       # 重建索引

日常编辑以面板为主;CLI 适合批量建卡或与自动化脚本衔接。具体子命令与 JSON spec 以仓库 README 与脚本帮助为准。

适用场景与注意

适合谁:在 DSH 里长期维护游戏剧本、互动小说、带分支的情节设计,且希望「文件即真相、git 可 diff」的团队或个人。

权限与安全:插件随当前 DSH 进程运行,能读写你打开的项目目录;安装前应阅读源码与 MIT 许可证,确认 bundle 来源可信。不要在未审查的第三方 profile 里盲目加入 bundle。

依赖与平台:分类为客户端(Web);未 npm 发布意味着升级需自行拉取仓库或替换 node_modules 目录并重启。

结尾

dsh-script-cards 把「散落的 Markdown 卡片」和「分支结构」收进同一套 DSH 面板:方片看设定与素材,画布理章节与连线,改完写回文件。若你在 Harness 里做分支叙事,可按上文步骤装入 profile 并约定好 剧本档案 目录。

  • 目录页:https://www.skillhub.cn/plugins/tokai-teiodh/dsh-script-cards
  • GitHub:https://github.com/tokai-teiodh/dsh-script-cards
羽毛球分组比赛记分
小程序二维码

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

Xiaoye