bbqisbbq/dsh-tiddlywiki0

dsh-tiddlywiki

将 TiddlyWiki 5 作为 DSH 持久化知识库的插件:提供 tiddlywiki_* 代理工具(增删改查与 Git 同步)、嵌入式编辑器及悬浮速记挂件。

AI 分析

核心用途是为 DSH 引入本地持久化的 TiddlyWiki 知识库,支持 Agent 读写和 Git 自动提交。适合需要构建个人知识库、让 AI 辅助整理笔记的深度用户。

包名
dsh-tiddlywiki
版本
0.1.1
许可证
MIT
最近更新
2026年9月2日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:bbqisbbq/dsh-tiddlywiki

配置

插件行默认如下(缺省即用默认值,无需手动配置)。如需自定义,编辑 profiles/web/cordis.patch.yml 或 profile 的 bundle 层,给该行加 config:

- id: dsh-tiddlywiki
  name: dsh-tiddlywiki
  config:
    wikiRoot: "$DSH_HOME/tiddlywiki"   # 缺省自动展开
    wiki: "main"
    port: 0                            # 0 = 自动探测空闲端口
    git:
      autoCommit: true
      debounceMs: 60000
      remote: ""                       # 空 = 仅本地 commit;填了才 push
      branch: "main"
    note:
      tag: "inbox"
    auth:
      username: ""                     # 默认 loopback 匿名;暴露到非 loopback 时才需要
      password: ""

config: 块随 profile 被 dsh-market 带走;wiki 数据($DSH_HOME/tiddlywiki) 走 git,不走 dsh-market。

运行时配置:设置页(见「设置页」)写入的 $:/plugins/dsh-tiddlywiki/config tiddler 是 config: 块之上的覆盖层(tiddler 优先、随 wiki 的 git 同步)。 无需改动 cordis 也能改 note tag / git 开关等。

使用

Agent(工具)

  • tiddlywiki_search {query, tag?} — 检索非系统 tiddler,返回标题/标签/摘要。
  • tiddlywiki_get {title} — 读单个 tiddler 全文。
  • tiddlywiki_put {title, text, tags?, fields?} — 写/覆盖 tiddler。
  • tiddlywiki_delete {title} — 删除 tiddler。
  • tiddlywiki_git_sync {action: pull|push|sync, message?} — git 操作。

同步纪律(三条):开工先 pull --rebase --autostash;收工 commit + push; 自动 commit 防抖 60s。真冲突 → abort 并报冲突文件,agent 人工处理,不自动吞数据。

人(GUI)

  • 侧边栏「TiddlyWiki」按钮开关中央编辑器面板。
  • 右下角「快速笔记」悬浮控件:写草稿/随手记,Ctrl+Enter 保存为独立 tiddler; 或点「✏️ 在 TW 中编辑」——保存后弹出独立小窗(可拖动/缩放)加载 TiddlyWiki 原生编辑器编辑该条。
  • 面板服务异常时显示错误 +「重试」按钮(POST /dsh-tiddlywiki/restart)。

设置页(插件/主题管理 + 配置)

DSH 设置 → TiddlyWiki 知识库 是插件的配置面板(settings.section):

区块内容
状态/重启TW 运行状态 + git 概览 + 「重启 TW」按钮
常规配置快速笔记默认 tag、git 自动 commit/防抖/远端/分支——改了什么保存什么
插件管理自带官方插件勾选(可搜索)→ 应用并自动重启 TW
主题管理自带主题多选加载 + 单选活动 → 应用并自动重启 TW
语言管理自带官方语言包勾选(含 zh-Hans/zh-CN 简体)→ 应用并自动重启 TW
  • 配置写入 wiki 内的 $:/plugins/dsh-tiddlywiki/config tiddler(JSON),随 git 同步; 作为 cordis config: 块之上的覆盖层(tiddler 优先),以后加配置项只需扩展该对象。
  • git 类配置修改后在 重启 dsh web 后生效(bootstrap 时读取)。
  • 插件/主题/语言均只管理 tiddlywiki 包自带的官方清单(plugins/tiddlywiki/*themes/tiddlywiki/*、包根 languages/*),全部离线、官方原版。
  • 主题机制(重点):TW 视觉主题由 $:/theme tiddler 决定(浏览器 themeManager), info.themes 只决定加载哪些主题插件。主题之间有依赖链plugin.infodependents):vanilla ← snowwhite ← heavier/centralised/readonly/starlightvanilla ← tight/seamless。设置页因此是两层:每行主题一个 ☑ 加载(多选, = TW 里可用的主题)加一个 ◉ 活动(单选 = 当前视觉主题)。应用时插件会:
    1. 把加载集(含所选活动主题)的完整依赖链写入 info.themes(如 heavier → [vanilla, snowwhite, heavier]),否则激活 heavier 时会丢掉 70KB 的 vanilla 基座样式;
    2. $:/theme 设为所选活动主题(激活它),然后重启 TW。 样式为空壳的主题(如本版 tight-heavier)会自动从清单里隐藏,避免选了没效果。

界面语言(中文)

TW 的界面语言由语言插件决定,不是某个配置字符串。tiddlywiki 包在 node_modules/tiddlywiki/languages/自带全部官方语言包(zh-Hans 简体、zh-CN、 zh-Hant、en-GB、ja-JP…),本插件离线启用即可:

  • 设置 → TiddlyWiki 知识库 → 语言管理:勾选 zh-Hans(简体)→「应用语言(重启 TW)」。 插件会把它写入 tiddlywiki.infolanguages 数组,并固定 $:/language$:/languages/zh-Hans,重启后 TW 界面即变为简体中文(已持久化,重启仍在)。
  • 配置自动应用:在设置页常规配置里写入 uiLanguage: "zh-Hans",每次启动 dsh web 时 自动启用该语言并固定 $:/language(若尚未启用)。留空则不干预。
  • 中文包缺字/想换繁中:语言管理里改勾 zh-Hantzh-TW 再应用即可。

设置页(插件/主题管理 + 配置)

DSH 设置 → TiddlyWiki 知识库 是插件的配置面板(settings.section):

区块内容
状态/重启TW 运行状态 + git 概览 + 「重启 TW」按钮
常规配置快速笔记默认 tag、git 自动 commit/防抖/远端/分支——改了什么保存什么
插件管理自带官方插件勾选(可搜索)→ 应用并自动重启 TW
主题管理自带主题多选加载 + 单选活动 → 应用并自动重启 TW
语言管理自带官方语言包勾选(含 zh-Hans/zh-CN 简体)→ 应用并自动重启 TW
  • 配置写入 wiki 内的 $:/plugins/dsh-tiddlywiki/config tiddler(JSON),随 git 同步; 作为 cordis config: 块之上的覆盖层(tiddler 优先),以后加配置项只需扩展该对象。
  • git 类配置修改后在 重启 dsh web 后生效(bootstrap 时读取)。
  • 插件/主题/语言均只管理 tiddlywiki 包自带的官方清单(plugins/tiddlywiki/*themes/tiddlywiki/*、包根 languages/*),全部离线、官方原版。
  • 主题机制(重点):TW 视觉主题由 $:/theme tiddler 决定(浏览器 themeManager), info.themes 只决定加载哪些主题插件。主题之间有依赖链plugin.infodependents):vanilla ← snowwhite ← heavier/centralised/readonly/starlightvanilla ← tight/seamless。设置页因此是两层:每行主题一个 ☑ 加载(多选, = TW 里可用的主题)加一个 ◉ 活动(单选 = 当前视觉主题)。应用时插件会:
    1. 把加载集(含所选活动主题)的完整依赖链写入 info.themes(如 heavier → [vanilla, snowwhite, heavier]),否则激活 heavier 时会丢掉 70KB 的 vanilla 基座样式;
    2. $:/theme 设为所选活动主题(激活它),然后重启 TW。 样式为空壳的主题(如本版 tight-heavier)会自动从清单里隐藏,避免选了没效果。