Library Config

用obsidian实现书籍管理的配置和预设模板,开箱即用

觉得太长去读 [[Obsidian 个人藏书管理系统文档]]

Obsidian个人藏书管理系统

1. 系统概述

这个系统利用Obsidian的属性系统和Dataview插件,创建了一个高效灵活的个人藏书管理解决方案。核心设计理念是"一篇笔记对应一本书",通过属性系统记录书籍的元数据,通过Dataview实现动态筛选和聚合,最终实现全方位的藏书管理功能。

这个系统的主要优势包括: - 基于Obsidian的本地存储,数据完全自主可控 - 使用属性系统进行结构化数据管理,便于查询和筛选 - 动态维护书籍关联,无需手动更新目录 - 灵活扩展,可根据个人需求自定义属性和视图 - 无需复杂配置,主要利用Obsidian原生功能和常用插件

2. 系统架构

2.1 文件夹组织结构

系统采用以下文件夹结构来组织不同类型的笔记: - 已拥有:存放已购买的实体书籍笔记,这是系统的核心内容 - 未拥有:存放电子书或借阅书籍的笔记,用于记录阅读体验并统计已读书籍,即使没有实际拥有 - 系列表:存放系列书籍的索引笔记 - 书单:存放各种主题书单的索引笔记 - 杂志:专门用于存放杂志类读物,与图书分开管理 - Templates:存放各种模板文件

这种文件夹结构的优势是:

  • 直观区分了不同类型的读物和索引
  • 方便基于拥有状态进行筛选
  • 将特殊类型(如杂志)单独管理,避免混淆
  • 符合Obsidian的组织理念,便于内部链接和引用

2.2 笔记组织方式与属性系统

系统采用"一篇笔记对应一本书"的组织方式,每本书的所有信息(包括元数据和内容笔记)都存储在一个统一的笔记文件中。

属性系统设计

每本书的笔记使用Obsidian的属性功能来存储各种元数据。关键属性包括:

基本信息: - tags:分类标签,如 #纸质书#电子书#单本#系列#已拥有#二手书#原版 等 - 作者:书籍作者 - 译者:译者信息(如有) - 出版社:出版社信息(主要针对纸质书) - 价格:书籍价格(number类型)

分类与关联: - 分类:书籍类别(multitext类型,可多选),如小说、科幻、名著等等
- 书单:所属书单(multitext类型,可同时属于多个书单) - 所属系列名:系列名称(针对系列书籍) - 系列目录:指向系列索引笔记的内部链接 - 系列内序号:在系列中的顺序编号(number类型)

状态管理: - 状态:阅读状态,如未开始、阅读中、已读完等,可根据个人阅读习惯自定义 - 是否读完:复选框类型(checkbox),快速标记读完状态
- 是否集齐:复选框类型(checkbox),用于标记系列书籍是否集齐

时间跟踪: - 购买日期:书籍购入时间(date类型) - 开始阅读时间:开始阅读的日期(date类型) - 结束阅读时间:完成阅读的日期和时间(datetime类型)

这些属性可以根据不同类型的书籍灵活调整。例如,母语书籍可能不需要译者属性,电子书可能不需要出版社信息等。

2.3 目录与索引结构

系统使用专门的目录笔记来动态管理和展示相关书籍:

书单笔记: 书单笔记用于收集特定主题或目的的书籍,通过标签 #目录 #书单 进行标记。典型的书单笔记结构如下:

---
tags:  
  - 目录  
  - 书单  
---

书单笔记主体部分使用Dataview查询动态显示所有包含该书单名称的书籍。

系列笔记: 系列笔记专门用于管理系列书籍,存放在"系列表"文件夹中,遵循"系列:[系列名] 的命名格式。

这种目录结构的主要优势是: - 无需手动维护书籍列表,添加新书时只需在书籍属性中添加相应书单或系列名即可 - 通过Dataview提供丰富的筛选和排序功能 - 可以根据不同需求创建多种视角的书籍聚合视图

3. 核心功能与实现

3.1 书籍信息管理

使用Obsidian属性系统记录书籍元数据。以下是两个实际例子:

例1:单本图书(卡夫卡的《审判》)


---
tags:  
  - 单本  
  - 电子书  
作者: 卡夫卡  
状态: 已读完  
分类:  
  - 名著  
  - 小说  
是否读完: true  
书单:  
  - 严肃文学探索  
开始阅读时间: 2025-05-15  
结束阅读时间: 2025-05-21T16:30:00  
---

例2:系列图书(《爱,死亡,机器人1》)


---
tags:  
  - 纸质书  
  - 已拥有  
  - 系列  
出版社: 译林出版社  
购买日期: 2025-05-09  
状态: 未开始  
分类:  
  - 科幻  
  - 小说  
是否读完:   
书单:  
  - 暂无  
所属系列名: 爱,死亡,机器人  
系列目录: "[[系列表/系列:爱,死亡,机器人|系列:爱,死亡,机器人]]"  
---

3.2 动态书单与系列管理

系统通过多值文本类型属性(multitext)实现书单和系列的动态关联。一本书可以同时属于多个书单,只需在属性中添加相应的值即可。

对于系列书籍,使用以下属性进行关联: - 所属系列名:记录系列名称 - 系列目录:使用内部链接指向系列索引笔记,如 [[系列表/系列:爱,死亡,机器人|系列:爱,死亡,机器人]] - 系列内序号:记录在系列中的顺序

在书单笔记中,使用Dataview查询来动态显示所有关联的书籍:

TABLE without ID  
file.link AS 书名  
    ,状态  
    ,choice(是否读完, "√", "×") AS 是否读完  
    ,开始阅读时间 AS "start"  
    ,结束阅读时间 AS "end"  
WHERE contains(书单, "严肃文学探索") and file.folder!="Templates"and !contains(tags, "目录")  
sort 系列内序号 ASC  
sort 状态 DESC

这个查询会: 1. 显示所有包含"严肃文学探索"书单的书籍 2. 排除模板文件夹中的笔记和带有"目录"标签的笔记 3. 创建自定义列名显示(书名、状态、是否读完、开始时间、结束时间) 4. 按系列序号升序和状态降序排列结果

3.3 状态管理与筛选

系统设计了多种状态来追踪每本书的阅读和购买情况: - 未购买:计划购买但尚未入手的书籍 - 未开始:已经购买但尚未阅读的书籍 - 阅读中:正在阅读的书籍 - 已读完:已经读完的书籍 - 补买收藏:已经读过,后来为了收藏而购买的书籍 可以根据个人需求自由增减

通过Dataview可以轻松筛选特定状态的书籍:

TABLE author, publisher  
FROM #books  
WHERE status = "阅读中"

3.4 模板与自动化

系统利用Obsidian的模板功能实现新书笔记的快速创建。

4. 标签与查询系统

4.1 标签体系

系统使用标签来对书籍进行分类和标记,主要包括以下几类标签: 格式与拥有状态: - #纸质书 :实体书籍 - #电子书 :电子格式的书籍
- #已拥有:已经购买或获取的书籍

书籍组织形式: - #单本:独立的单本书籍 - #系列 :属于某个系列的书籍

索引与管理: - #目录:用于标记索引笔记,如书单笔记、系列目录等 - #书单 :特定主题或目的的书籍集合

这些标签与属性系统协同工作,在Dataview查询中发挥重要作用。例如,在书单查询中常会排除带有 #目录 标签的笔记,以免在结果中显示索引笔记本身。

4.2 Dataview查询示例

下面是一个典型的书单查询示例,用于"严肃文学探索"书单:

TABLE without ID  
file.link AS 书名  
    ,状态  
    ,choice(是否读完, "√", "×") AS 是否读完  
    ,开始阅读时间 AS "start"  
    ,结束阅读时间 AS "end"  
WHERE contains(书单, "严肃文学探索") and file.folder!="Templates"and !contains(tags, "目录")  
sort 系列内序号 ASC  
sort 状态 DESC

这个查询的关键特点:

  1. 使用 without ID 简化表格显示

  2. 通过 file.link AS 书名 显示笔记链接并重命名列

  3. 使用 choice() 函数将布尔值转换为更直观的符号显示

  4. 多条件筛选:书单包含特定名称、排除模板文件夹、排除目录笔记

  5. 多级排序:先按系列序号升序、再按状态降序

5. 使用的插件与工具

5.1 核心插件

  • Properties (内置功能):Obsidian的属性功能是整个系统的基础,用于存储书籍的元数据
  • Dataview:核心插件,用于创建动态查询和视图,实现书单、系列和状态视图等功能
  • Templates (内置功能):用于创建书籍笔记和索引笔记的模板,确保数据格式一致性(我没有开启,欢迎各位大佬配置)

5.2 查询技巧

Dataview在这个系统中发挥了关键作用,一些常用技巧包括:

  1. 自定义表格列名: file.link AS 书名

  2. 格式化布尔值输出: choice(是否读完, "√", "×") AS 是否读完

  3. 多条件筛选: WHERE contains(书单, "严肃文学探索") and file.folder!="Templates"and !contains(tags, "目录")

  4. 多级排序: sort 系列内序号 ASC
    sort 状态 DESC

这些技巧结合使用,可以创建高度定制化的视图,满足不同的查询和展示需求。

6. 模板系统

6.1 模板类型

系统使用多种模板来确保数据录入的一致性,同时提高创建新笔记的效率。主要模板类型包括:

书籍模板:

  • 单本纸质书模板:适用于普通独立书籍
  • 系列纸质书模板:适用于系列书籍,包含系列相关属性
  • 电子书模板:适用于电子版书籍
  • 特定系列模板:对于大量添加同一系列的书籍,可以创建专门的模板,预填写系列信息

索引模板:

  • 系列表模板:用于创建系列索引笔记
  • 书单模板:用于创建主题书单索引笔记

6.2 模板定制与使用

模板设计的关键原则是灵活性和适应性。用户可以根据需要:

  • 从基础模板派生出更具体的模板(如特定系列的模板)
  • 在使用模板时删除不需要的属性(如母语书籍可删除译者属性)
  • 根据实际需求随时创建新的模板类型

这种灵活的模板系统使得书籍信息的录入既标准化又能适应各种特殊情况,大大提高了系统的可用性和效率。

7. 使用案例

7.1 添加新书

系统通过模板和属性实现了高效的书籍添加流程:

  1. 选择合适的模板:根据书籍类型(单本/系列、纸质/电子等)选择相应模板
  2. 填写基本信息:输入作者、出版社、价格等基本信息
  3. 设置分类和标签:添加相应的分类和标签以便后续检索
  4. 关联书单和系列:将书籍添加到相关书单或关联到系列
  5. 记录购买和阅读信息:记录购买日期、阅读状态和时间等
  6. 添加读书笔记:在笔记正文部分添加阅读感悟、摘抄和评论

这一流程确保每本新添加的书籍都能被合理分类并集成到现有系统中。

7.2 创建和管理书单

书单是组织和发现书籍的重要工具:

  1. 创建书单笔记:使用书单模板创建新笔记
  2. 设置书单标签:添加 #目录 和 #书单 标签
  3. 编写书单简介:说明书单主题和创建目的
  4. 添加Dataview查询:设置合适的查询条件和显示格式
  5. 关联书籍:在相关书籍的属性中添加该书单名称

一旦创建完成,书单将自动更新,显示所有关联的书籍。

7.3 系列书籍管理

对于系列书籍,系统提供了专门的管理方式

  1. 创建系列索引:在系列表文件夹中创建系列索引笔记
  2. 添加系列书籍:使用系列书籍模板创建各卷笔记
  3. 设置系列关联:在每本书中设置系列名称和序号
  4. 追踪收集进度:通过"是否集齐"属性标记收集状态
  5. 按序阅读:利用系列序号进行排序,便于按顺序阅读

这种方式特别适合管理多卷小说、文学全集或特定主题的系列丛书。

8.扩展思路

  • 改变标签(已拥有->未拥有/想要)并改变相应筛选条件即可变成愿望单
  • ···

结语

祝大家使用愉快!

有什么我没有想到的实用功能或者方法可以告诉我

Related

How to Install

  1. Download the ZIP or clone the repository
  2. Open the folder as a vault in Obsidian (File → Open Vault)
  3. Obsidian will prompt you to install required plugins

Stats

Stars

8

Forks

0

Last updated 10mo ago

Categories