2026年4月19日 · 阅读 —

用Obsidian做一套自驾旅行攻略管理系统

AI 工程实践随感与生活

用Obsidian做一套自驾旅行攻略管理系统

上周在规划五一烟台自驾的时候,突发奇想:能不能在Obsidian里搞一套简单的旅行管理系统?不用第三方工具,就用原生功能,把行程、费用、里程这些数据自动统计起来。

折腾了一个下午,成品还算能用。今天就把这套东西的搭建过程分享出来。

核心思路

其实很简单,就是「模板 + 属性 + 数据库」三件套:

  • 用模板保证每天的行程笔记格式统一
  • 用YAML属性记录所有结构化数据(日期、里程、费用、酒店等)
  • 用Database插件把这些数据聚合起来,自动统计

这套东西的好处是所有数据都在本地,都是纯文本,换设备、迁移都方便,而且完全免费。

目录结构

我是这么组织文件的:

.
├── 98-Templates/          # 模板文件夹
│   └── 旅行单日.md         # 单日行程模板
├── 30-Travel/             # 旅行总目录
│   ├── travel_DB.md       # 数据库视图
│   └── 2026-05-烟台/      # 具体某次旅行
│       ├── 2026-05-01.md
│       ├── 2026-05-02.md
│       └── ...
└── 01-Articles/           # 文章(就是这篇)

第一步:做模板

先搞一个单日行程的模板,保证每次新建笔记时,属性字段都是统一的。

模板的核心就是前面的YAML Frontmatter:

---
travel_名称: 2026-05-烟台
travel_Day: Day1
travel_日期: 2026-05-01
travel_类型: drive
travel_行程: 石家庄->烟台
travel_时长: 7.5 h
travel_里程: 741
travel_油费: 300
travel_高速费: 0
travel_酒店: 维也纳酒店(烟台万达广场所城里店)
travel_住宿: 413
travel_景点:
travel_备注:
created: 2026-04-19 10:18
updated: 2026-04-19 10:18
type: travel-plan
status: 计划中
tags:
  - 旅行
  - 烟台
  - 自驾
---

字段解释一下:

  • travel_名称:用来标识这次旅行,数据库筛选的时候用
  • travel_Day:第几天,排序用
  • travel_类型:drive(自驾)/ play(游玩)/ rest(休整)
  • 其他都是字面意思,里程、费用这些都是数字,方便统计

模板后面可以留空,或者加上一些固定的章节,比如「行程安排」、「景点备忘」、「费用明细」之类的,看个人习惯。

第二步:建数据库

这里用的是Obsidian的Database插件,社区插件里搜一下就能找到。

数据库文件其实就是一个普通的Markdown文件,我命名为travel_DB.md,内容大概是这样:

formulas:
  未命名: ""
properties:
  note.Day:
    displayName: travel_Day
  note.行程:
    displayName: travel_行程
  note.里程:
    displayName: travel_里程
  note.油费:
    displayName: travel_油费
  note.高速费:
    displayName: travel_高速费
  note.酒店:
    displayName: travel_酒店
  note.景点:
    displayName: travel_景点
  note.行程日期:
    displayName: travel_日期
  note.备注:
    displayName: travel_备注
  note.名称:
    displayName: travel_名称
views:
  - type: table
    name: 表格
    filters:
      and:
        - file.folder == "30-Travel/2026-05-烟台"
    order:
      - file.name
      - travel_名称
      - travel_Day
      - travel_日期
      - travel_类型
      - travel_行程
      - travel_里程
      - travel_时长
      - travel_油费
      - travel_高速费
      - travel_住宿
      - travel_酒店
      - travel_景点
      - travel_备注
      - tags
      - formula.未命名
    sort:
      - property: travel_Day
        direction: ASC
    summaries:
      travel_油费: Sum
      travel_住宿: Sum
    columnSize:
      file.name: 100
      note.travel_名称: 125
      note.travel_Day: 67
      note.travel_日期: 131
      note.travel_类型: 114
      note.travel_行程: 116
      note.travel_里程: 116
      note.travel_时长: 117
      note.travel_油费: 108
      note.travel_高速费: 119
      note.travel_住宿: 113
      note.travel_酒店: 249
      note.travel_景点: 168
      note.travel_备注: 178
    footer:
      note.travel_里程: sum
      note.travel_油费: sum
      note.travel_高速费: sum
      note.travel_住宿: sum

关键点:

  • filters:这里用文件夹来筛选,只显示某一次旅行的笔记
  • sort:按travel_Day升序排列,保证日期顺序正确
  • footer:开启里程、油费、高速费、住宿的自动求和

配置好之后,打开这个文件,就能看到一个表格视图,所有数据自动聚合,底部自动计算总和。

第三步:实际使用

用的时候很简单:

  1. 新建一个文件夹,比如2026-05-烟台
  2. 用模板创建每日笔记,比如2026-05-01.md、2026-05-02.md
  3. 填好属性里的各项数据
  4. 在正文里写详细的行程安排、景点攻略、注意事项
  5. 打开数据库文件,就能看到自动统计的结果

如果想再进一步,可以写一个简单的Python脚本,读取所有笔记的属性,生成一个更漂亮的统计汇总Markdown文件,就像我在烟台文件夹里做的那个统计汇总.md一样。

总结

这套东西不算复杂,核心就是「结构化数据 + 自动聚合」。Obsidian的好处就是足够灵活,你可以根据自己的需求随意调整字段、调整视图。

如果你也在规划自驾旅行,不妨试试这个思路。当然,如果你不想自己折腾,也可以直接拿我这套结构去用,改改字段名称就行。

下次旅行回来,我打算再优化一下,比如加个预算对比、实际费用记录之类的功能,到时候再分享。


变更摘要(改了什么)

这是第一版,主要完成了:

  • 模板字段设计
  • 数据库视图配置
  • 目录结构规范
  • 实际使用验证(烟台自驾攻略)

风险点(哪里可能翻车)

  • Database插件的filters路径如果写错,会导致显示不出数据
  • 属性字段名如果不统一(比如有的写travel_里程有的写里程),统计会出问题
  • 费用字段如果填了非数字内容,求和会失败

回滚方案(怎么撤)

  • Database插件的配置都在Markdown文件里,删了重新建就行
  • 每日笔记都是纯文本,随时可以手动修改属性
  • 实在不行,把数据库文件删掉,回到普通文件夹的方式也能用

行动清单(读完怎么做)

  1. 安装Obsidian Database插件(如果还没装)
  2. 复制本文的模板,根据自己的需求调整字段
  3. 创建数据库文件,配置filters、sort和footer
  4. 用一次短途旅行试试水,有问题再调整

推荐标签

#Obsidian , #旅行攻略 , #效率工具 , #自驾旅行 , #数据库 , #模板 , #个人知识管理