尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Tolaria数据模型完全指南:VaultEntry核心类型逐项拆解

Tolaria数据模型完全指南:VaultEntry核心类型逐项拆解 Tolaria数据模型完全指南VaultEntry核心类型逐项拆解【免费下载链接】tolariaDesktop app to manage markdown knowledge bases项目地址: https://gitcode.com/GitHub_Trending/to/tolariaTolaria 是一款用于管理 Markdown 知识库的开源桌面应用它的核心数据模型就是VaultEntry——Vault库中每一个文件笔记、类型、视图都被解析为一个 VaultEntry 结构。本文带你逐项拆解这个结构的关键字段帮你理解 Tolaria 是如何把一堆普通 Markdown 文件变成一张可搜索、可链接、可筛选的知识图谱的。字段组作用 身份字段path/filename/title/hasH1 关系字段isA/aliases/belongsTo/relatedTo/relationships 类型与外观icon/color/template/sort/view 属性与元数据properties/status/archived/favorite/wordCount1. 先认识 VaultEntry一个文件就是一个条目Tolaria 的数据模型有一个极简原则文件系统即数据源。你的库里每个.md文件都会被后端扫描解析产出一个VaultEntry对象前端再据此渲染侧边栏、笔记列表和属性面板。![Tolaria YAML frontmatter 笔记属性配置界面](https://raw.gitcode.com/GitHub_Trending/to/tolaria/raw/d56b1be9b2cbda6405afa2e6b3550eec1aa40084/site/public/landing/yaml frontmatter.png?utm_sourcegitcode_repo_files)它的核心逻辑分两层文件的YAML frontmatter---包裹的头部决定了条目的元数据文件的正文标题、wikilink、字数决定了条目的内容摘要。后端Rust和前端TypeScript各有一份等价定义序列化格式完全对齐Rust 后端定义entry.rs前端类型定义types.ts官方文档 docs/ARCHITECTURE.md 也描述了这套文件优先的设计决策。2. 身份字段定位一条笔记的门牌号2.1 path 与 filenamepath相对于库根目录的路径用/分隔例如projects/laputafilename文件名本身如note-on-clear-prose.md这两个字段是整条记录的主键。Tolaria 的 标题与文件名同步机制 就基于它们重命名笔记时文件名与标题会自动保持同步。2.2 title 与 hasH1title笔记标题以正文第一行的 H1 标题为主要来源参见 0044-h1-as-title-primary-source.mdhasH1布尔值标记正文首行是否为 H1前端据此决定是否显示标题编辑栏例如示例库中的 demo-vault-v2/note-on-clear-prose.md正文首行# On Clear Prose就是它的title。2.3 fileKind决定文件怎么打开fileKind取值为markdown/text/binary决定前端用富文本编辑器、原始编辑器还是文件预览来打开文件。Tolaria 的扫描器会遍历库内所有文件不只是 .md因此图片、PDF 等二进制文件也会作为条目出现在列表中参见 0041-filekind-all-files-in-vault-scanner.md。3. 关系字段Tolaria 的知识图谱核心 ️这是 VaultEntry 最有意思的部分。Tolaria 的关系不是预先声明的外键而是从 wikilink 动态检测出来的参见 0010-dynamic-wikilink-relationship-detection.md。3.1 isA 与 aliasesisA这条笔记的类型。例如 demo-vault-v2/person-luca-rossi.md 的 frontmatter 里type: Person解析后就是isA: Personaliases别名列表通常是 wikilink用于 Quick Open 精确匹配和链接重定向3.2 belongsTo / relatedTobelongsTo纵向的父子关系上级/所属relatedTo横向的相关关系两者都来自 frontmatter值都是 wikilink 列表解析后存为路径数组。3.3 relationships自定义关系万能口袋 ⭐这是最灵活的字段——任何 frontmatter 字段只要值里包含 wikilink都会被自动识别为一种关系。例如 demo-vault-v2/note-on-clear-prose.md 中的topics: - [[topic-writing]]解析后relationships里就会出现{topics: [topic-writing.md]}。你不需要注册任何字段随手写has、events、sponsors都自动成为可浏览的关系。3.4 outgoingLinks正文中所有[[wikilink]]的目标列表不含 frontmatter是构建反向链接面板和关系图的基础数据。4. properties自定义属性的自由发挥区properties是一个键值对映射收纳所有非关系、非结构的 frontmatter 字段支持字符串、数字、布尔和标量数组参见 0122-scalar-array-frontmatter-properties.md。以 demo-vault-v2/person-luca-rossi.md 为例tier: 1st就会被收进properties。这些自定义属性正是自定义视图Custom Views筛选引擎的工作对象——你可以按任意属性组合过滤笔记参见 0040-custom-views-yml-filter-engine.md 和 site/reference/view-filters.md。listPropertiesDisplay则指定哪些属性以芯片形式展示在笔记列表卡片上。5. 类型元数据让每个 Type 都有个性 在 Tolaria 中类型本身也是笔记type: Type。像 demo-vault-v2/type/note.md 这样的类型文件会填充一组专属字段字段含义iconPhosphor 图标名kebab-case显示在侧边栏color强调色red / purple / blue / green / yellow / orangeorder侧边栏排序权重越小越靠前sidebarLabel侧边栏分区名覆盖自动复数化template新建该类型笔记时预填的 Markdown 模板sort该类型笔记列表的默认排序如modified:descview默认视图模式all / editor-list / editor-onlyvisible是否显示在侧边栏缺省为 true以 demo-vault-v2/type/person.md 为例icon: user、color: rose、sidebar label: People三个字段就让人员分区在侧边栏拥有了专属图标、颜色和名称。![Tolaria 笔记列表与类型图标配色展示](https://raw.gitcode.com/GitHub_Trending/to/tolaria/raw/d56b1be9b2cbda6405afa2e6b3550eec1aa40084/site/public/landing/Ai chat 3.png?utm_sourcegitcode_repo_files)6. 系统元数据字段状态、时间与收藏字段含义status生命周期状态用户自定义字符串archived是否已归档organized是否已整理移出收件箱favorite/favoriteIndex是否收藏 / 收藏区排序modifiedAt/createdAt修改与创建时间优先取自Git 历史0039-git-history-for-note-dates.mdfileSize文件字节数wordCount正文字数不含 frontmatter 和 H1这些字段驱动侧边栏的InboxArchivedFavorites等分区也是 Git 自动提交与脉冲视图Pulse的数据基础参见 docs/adr/0067-autogit-idle-and-inactive-checkpoints.md。![Tolaria Git 历史与改动追踪界面](https://raw.gitcode.com/GitHub_Trending/to/tolaria/raw/d56b1be9b2cbda6405afa2e6b3550eec1aa40084/site/public/landing/track changes and push.png?utm_sourcegitcode_repo_files)7. 快速上手与延伸阅读完整字段说明见官方参考文档site/reference/frontmatter-fields.md上手指南docs/GETTING-STARTED.md示例库所有 demo 文件都来自这里demo-vault-v2/核心源码入口src-tauri/src/vault/entry.rs、src/types.ts总结一下VaultEntry 用一组身份 关系 属性 元数据字段把每个 Markdown 文件变成了知识图谱中的一个节点。理解了它你就理解了 Tolaria 侧边栏分区、关系浏览、自定义视图背后的全部数据逻辑。【免费下载链接】tolariaDesktop app to manage markdown knowledge bases项目地址: https://gitcode.com/GitHub_Trending/to/tolaria创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表