Chronicler 页面插入(Page Inserts):一处修改,全库复用的强大功能

发布时间:2026/11/2 10:51:09
Chronicler 页面插入(Page Inserts):一处修改,全库复用的强大功能

【免费下载链接】chronicler

Chronicler is a free, offline worldbuilding tool and local wiki for writers, game masters, and tabletop RPG creators. It saves your notes as plain Markdown files on your computer. No sign-up, no subscription, no cloud. Your world stays on your device.

项目地址:https://gitcode.com/gh_mirrors/chroni/chronicler
点击查看免费下载

Chronicler 是一款免费、完全离线的世界构建(worldbuilding)工具和本地 Wiki,专为小说作家、跑团 GM 和桌游创作者设计。它的**页面插入(Page Inserts)**功能可以把任意一个 Markdown 页面的内容直接嵌入到另一个页面中——只需写一次,就能在整库复用;修改一处,所有引用它的地方自动更新。无需云同步、无需注册账号,你的世界永远只存在你自己的设备上。

🧩 什么是 Chronicler 页面插入(Page Inserts)

页面插入的语法只有一个:

{{insert: 页面名称}}

在任意页面里写上这一行,Chronicler 的预览就会把「页面名称」对应页面的完整内容渲染出来,放进一个带标题栏的引用框中。它特别适合这类"会被反复引用"的内容:

  • 🗺️导航框(navbox):章节导航、地区索引
  • ⚔️属性块(stat block):怪物数值、武器卡牌
  • 📜通用条目:魔法体系规则、货币换算表、组织简介

好处很直接:只写一份,到处引用。改规则时只改一个文件,全库立即生效——这就是"一处修改,全库复用"。

官方帮助文档中的功能说明见 HELP.md,语法解析规则在 renderer.rs。

🚀 3 步快速上手:如何写出第一个页面插入

第 1 步:建一个"素材页"

先新建一个专门存放可复用内容的页面,例如魔法规则.md,只写内容本身,不写多余说明。

第 2 步:在目标页面插入它

在你想引用的页面(比如某个角色页)中写入:

{{insert: 魔法规则}}

页面名匹配不区分大小写,写魔法规则或魔法规则.md都可以,Chronicler 会通过索引自动定位到正确文件(解析逻辑见 parser.rs)。

第 3 步:切到预览查看效果

保存后在预览面板中,内容会以带标题栏的插入框呈现,右上角的[hide]按钮可随时折叠/展开(点击处理逻辑在 actions.ts)。插入框的默认样式定义在 preview.css。

🎛️ 4 个常用属性:让插入框更合身

在{{insert: ...}}语法里用|追加属性即可:

属性作用示例
title="自定义标题"覆盖默认标题(默认是文件名){{insert: 魔法规则 \| title="第三章·魔法"}}
hidden默认折叠,读者点击才展开{{insert: 剧透内容 \| hidden}}
centered标题居中显示{{insert: 章节导航 \| centered}}
borderless去掉边框和标题,透明嵌入{{insert: 魔法规则 \| borderless}}

组合使用也很简单:

{{insert: 大战争 | title="大战争概要" | centered | hidden}} {{insert: 附魔匕首 | borderless}}

属性解析的具体实现位于 renderer.rs 的 process_single_insert 函数。

🔄 为什么能"一处修改,全库复用"?

页面插入不是复制粘贴,而是渲染时的动态嵌入(transclusion)。当你打开某页预览时,渲染器会:

  1. 用索引找到被插入页面并读取其内容;
  2. 自动剥离 YAML frontmatter(信息框元数据不会出现在插入框里);
  3. 递归渲染正文——被插入的页面里如果还有{{insert: ...}},会继续展开。

配套的两个"省心机制":

  • 重命名自动跟随:当你重命名页面时,全库所有[[wikilinks]]和{{insert: ...}}引用都会被自动改写,属性参数(如title、hidden)原样保留,实现见 writer.rs。
  • 循环引用保护:如果 A 插入 B、B 又插入 A,Chronicler 会在渲染栈中检测到并返回CircularInsert错误(error.rs),而不是无限递归卡死。

💡 实用技巧与常见问题

  • 提示:插入框标题默认取被插入文件的文件名,起好素材页的文件名,插入效果会更整洁。
  • 提示:hidden属性非常适合"剧透折叠"场景——配合||spoiler||语法可以做到双层隐藏。
  • Insert not found:预览出现该报错框,通常是页面名拼写错误,或目标页面刚被删除,检查文件名即可。
  • Could not read insert:文件存在但读取失败,检查文件权限或是否被外部程序占用。

📚 相关文档与源码路径

资源路径
页面插入官方说明HELP.md
插入语法渲染核心renderer.rs
重命名时自动更新插入引用writer.rs
插入引用提取(索引)parser.rs
插入框样式preview.css
功能演进记录CHANGELOG.md

页面插入是 Chronicler 把"本地 Wiki 化写作"做到极致的一小块拼图:素材只写一次,链接自动维护,样式随主题走。对管理大型世界观的作家和 GM 来说,这是提升复用效率的必备技巧。

【免费下载链接】chronicler

Chronicler is a free, offline worldbuilding tool and local wiki for writers, game masters, and tabletop RPG creators. It saves your notes as plain Markdown files on your computer. No sign-up, no subscription, no cloud. Your world stays on your device.

项目地址:https://gitcode.com/gh_mirrors/chroni/chronicler
点击查看免费下载
上一篇:CMake构建类型配置详解:Debug/Release/RelWithDebInfo的区别
下一篇:asyncpg批量操作:事务隔离级别

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考