dsh-tiddlywiki 0.26.2 → 0.26.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/host/seed-starter-docs.ts +5 -5
package/README.md
CHANGED
|
@@ -416,6 +416,7 @@ lib/ # 预构建产物(发布含 lib/**,提交入库;
|
|
|
416
416
|
|
|
417
417
|
> 最近几个主要版本的一句话记录(完整变更见 [Releases](https://github.com/bbqisbbq/dsh-tiddlywiki/releases) / git log)。
|
|
418
418
|
|
|
419
|
+
- **v0.26.3**(2026-09-23):**修正 starter-docs 教程里一处技术性错误说法**:「方法一」原来写「点标签后 TW 会自动生成该标签的页面,列出所有带此标签的笔记」——这不准确。实测(TiddlyWiki 5.4.1 内核,已核对 `$:/config/ViewTemplateBodyFilters.multids` 与 `$:/core/ui/TagTemplate`):内核**没有**"标签页"这种自动页面,点标签丸/侧边栏标签弹出的是**下拉列表**(`list-tagged-draggable`,全量不分页),直接打开以标签命名的条目只会看到条目本身(缺失则提示),不会自动列出成员笔记。教程现在如实描述弹层行为与它的局限(不分页、不可分享链接),并指出想要「一个页面 + 可翻页」的标签列表应自行写汇总页(笔记多时套分页)。纯 seed 文案修正,不影响任何运行时行为;新装 wiki 的「示例与文档」seed 应用新文案,已有 wiki 不受影响(seed 是 ONE-SHOT)。
|
|
419
420
|
- **v0.26.2**(2026-09-22):**修「catalog 标题用目录名推导」——`codemirror-fullscreen-editing` 的真名其实叫 `$:/plugins/tiddlywiki/codemirror-fullscreen`**。`bundledCatalog()` 一直用 `$:/plugins/tiddlywiki/${目录名}` 拼标题,而 npm 包里这个插件目录名与 plugin.info 声明的 `title` 不一致(全包仅此一例,本机实测确认)。v0.26.0 引入的状态徽标按**完整 tiddler 标题**匹配,于是这个插件一旦在 TW 里被禁用,行内不会出现「TW 内已禁用」徽标(勾选不受影响——勾选按 `tiddlywiki.info` 的插件名)。**修复**:标题改为**优先取 plugin.info 的 `title`**,缺失/为空才回落目录名(plugin.info 才是 TW 真正加载的那个 tiddler,是权威来源)。守门:`scripts/verify-plugin-runtime.mjs` 新增 2 条——① 行为断言(fixture 里目录名与 `title` 不一致时必须采用 `title`,无 `title` 时回落目录名);② **不变量断言**(遍历真实 npm 包的全部自带插件,catalog 标题必须逐条等于其 plugin.info 声明的 title,并单独锁定 codemirror-fullscreen 这一例),**已反向验证**(把优先逻辑去掉即红 2 条)。
|
|
420
421
|
- **v0.26.1**(2026-09-22):**修 P0:设置页插件/主题/语言的勾选框全部显示为「未勾选」,且误点「应用」会把启动清单整个清空**。回归由 v0.25.0 的 `CatalogPending` 引入(commit 883196f):契约是「`undefined` = 用户还没碰过、完全跟随服务器」,而挂载时把它初始化成了 `{ plugins: new Set(), themes: new Set(), languages: new Set() }`——`desiredPlugins()` 用 `??` 回退,而**空 Set 不是 `undefined`**,于是「没碰过」被读成「用户期望集合为空」:① 所有勾选框全空(用户看到「TW 里明明装着的插件,这里一个都没勾」——本次由作者实测报障);② 更严重的是,什么都没改就点「应用插件」会 POST 一个**空数组**,把 `tiddlywiki.info` 的 `plugins` 清单**整个清空**(主题清单、语言同理:一次误点等于卸载 codemirror/menubar/全部主题/中文语言,TW 重启后只剩内核 + 自动补装的 markdown)。**修复**:初始化改为空对象 `{}`;并给三个「应用」按钮加闸门——`pending.* === undefined`(未碰过)时按钮禁用、点击直接返回,只有真正改过勾选才允许提交(「用户刻意取消全部勾选」仍是合法提交,host 的 no-op 守卫照旧兜底)。顺带把「wiki 内已装」徽标的判据从 `desiredPlugins()` 改为服务器集合 `serverPlugins`——徽标描述当前事实,不该随未应用的勾选抖动。守门:`scripts/verify-plugin-runtime.mjs` 新增 4 条(空对象初始化 + 三个闸门 + 三个 sync 函数必须在 change 回调里重算按钮 + 徽标判据),**已反向验证**(改回空 Set 即红)。
|
|
421
422
|
- **v0.26.0**(2026-09-22):**修「设置页插件管理与 TW 实际状态对不上」——两套真相源不再互相说谎**。现象(作者本机实测):TW 控制面板里明明启用着的插件(TiddlyFlex、mermaid、pinboard 等经 TW 原生插件库装的),设置页勾选清单里**根本不出现**;反过来 menubar / comments / help 在 tiddlywiki.info 里(勾选着),但用户早在 TW 面板里禁用了它们。根因:**设置页只读 `tiddlywiki.info` 的 `plugins` 数组(启动安装清单),而 TW 运行时集合 = tiddlywiki.info ∪ 以 tiddler 形式装进 wiki 的插件 − `$:/config/Plugins/Disabled/<title>`(正文为 `yes`,TW 核心自己的判定)**——两个面板读的不是同一份真相,谁也没错但谁也不全。**修复(方向「修真」)**:勾选语义保持「是否写入 tiddlywiki.info」不变(它只管引擎自带插件的离线启停,这是 TW 原生界面做不到的唯一能力),但把缺失的另一半真相显示出来——① 每个插件行加状态徽标:「TW 内已禁用」(勾选着但被 TW 禁用)/「wiki 内已装」(不在启动清单但 wiki 里有同名 tiddler 版本,TW 运行时已在用);② 新增只读小节「**wiki 内插件(经 TW 原生安装)**」,列出第三方插件 tiddler(名称/版本/描述/禁用状态),启停/卸载引导去 TW 控制面板;③ 区块说明文字写明两边分工。**实现**:`GET /admin/state` 新增 `runtimePlugins` 字段,由 `scanWikiRuntimePlugins()`(`src/host/admin.ts`)扫 tiddlers 目录得出——插件库安装的插件是 `$__plugins_*.json` + `.json.meta`(只读几十字节的 meta,不碰几 MB 的插件 payload;无 meta 的裸 `.json` 还可能是拖拽导入的**多 tiddler 数组**,一并解析);禁用标记 `$__config_Plugins_Disabled_*.tid` 按文件自身 `title:` 头还原插件标题(不做有损的文件名反解码)。扫描失败返回 `null`(读失败 ≠ 不存在),客户端隐藏徽标与小节而不是显示空的假象;`dsh/*`、`dsh-tiddlywiki/*` 命名空间(插件自己的种子 bundle)排除在外。产品哲学不变:插件对 wiki 的强制定制依旧只有 `--init server` 基线 + 自动补装 markdown + 3 个核心种子,官方自带插件之外的安装/管理全部留给 TW 原生界面。
|
package/lib/index.js
CHANGED
|
@@ -3002,12 +3002,12 @@ const STARTER_DOCS_ITEMS = [
|
|
|
3002
3002
|
|
|
3003
3003
|
「汇总页」不是 TW 的特殊功能,而是:**一个普通笔记 + 正文里一段筛选器(filter)**。渲染时 TW 实时从整个 wiki 挑出符合条件的笔记列出来。**新笔记只要打上对应标签,汇总页自动出现,零维护**——不用像手工目录那样每次手动更新。
|
|
3004
3004
|
|
|
3005
|
-
##
|
|
3005
|
+
## 方法一:零代码,点标签自带的下拉列表
|
|
3006
3006
|
|
|
3007
|
-
-
|
|
3008
|
-
-
|
|
3009
|
-
-
|
|
3010
|
-
-
|
|
3007
|
+
- 打开任意笔记,点正文底部的**标签丸**,或侧边栏「标签」(标签云)里点某个标签;
|
|
3008
|
+
- 内核会弹出一个**下拉列表**,列出所有带此标签的笔记(还能拖拽排序、直接跳转)。
|
|
3009
|
+
- 优点:一行代码都不用写;缺点:列表**全量不分页**(标签下笔记很多时会很长)、不能加说明文字、不能自定义排序/样式,也做不了「多主题合一」。
|
|
3010
|
+
- ⚠️ 注意:它只是个弹层,**不是**一个可以打开、可以分享链接的「标签页面」——直接打开以标签命名的条目,看到的只是那个条目本身(不存在则是缺失提示),**不会**自动列出成员笔记。想要「一个页面 + 可翻页」的标签列表,用方法二自己写汇总页(笔记数量多时给它套上分页)。
|
|
3011
3011
|
|
|
3012
3012
|
## 方法二:一页一主题(最常用)
|
|
3013
3013
|
|