README file from
GithubDayline Journal
Dayline 把一文件夹的 Markdown 每日笔记变成 Obsidian 里的可视化日记。你可以在月历中查看一天,在时间线里搜索过去,记录心情和天气,同时不必移动或改写原有笔记。
插件支持 Obsidian 桌面端和手机端,适合已经在使用 Daily Notes 的 vault。
不只看到文件,还能看到日记
日历可以显示图片封面、心情标记、天气和多篇日记徽标。点击日期即可打开笔记;缺少笔记时,确认一次就会按 Daily Notes 模板创建(支持 Templater)。
时间线会把同一批 Markdown 笔记整理成可浏览的日记记录。全文搜索和筛选覆盖日期范围、来源、心情、收藏、位置、标签和媒体类型。
主要能力
- 会读取日记的日历。 每日笔记中的图片会成为日期格背景,心情颜色、可选天气、今天、浏览日期和多篇日记状态都一目了然。
- 为回忆而做的时间线。 搜索日记全文,并按日期、来源、心情、收藏、位置、标签和媒体类型筛选。
- 有上下文的心情记录。 五级颜色、备注和标签,可查看趋势与报告,也提供恢复、备份、完整性检查及 JSON/CSV 导出。
- 回忆与媒体。 “去年今日”会整理往年摘要和照片墙,入口可以关闭、合并进天气卡或放到顶栏图标;图片、视频和音频条目支持封面、元数据、EXIF 浮层,以及桌面端 HEIC/HEIF 缩略图。
- 可定制的心情标记。 日期格上的心情可以用角落色点,也可以改成底部色条并让日期居中;窄侧栏下日期、天气和心情会分列在格子四角。
- 桌面端与手机端。 手机视图支持日历/时间线切换、触控控件、键盘自适应心情编辑,并可从 Markdown 笔记快速进入。
- vault 仍是数据源。 日记正文继续使用 Markdown。Dayline 只索引你选择的目录,并把可视化元数据单独保存,笔记始终可读、可迁移。
工作方式
- 指定每日笔记文件夹。
- Dayline 识别日期并索引其中的 Markdown 笔记。你也可以把外部导入目录添加为普通日记来源。
- 通过日历或时间线浏览,记录心情和上下文,然后直接从日期打开 Obsidian 笔记。
默认情况下,心情元数据保存在 Calendar/journal-metadata.json,天气快照保存在插件的 data.json。Frontmatter 心情镜像默认关闭。Dayline 不依赖远程媒体:附件链接仍留在 vault;你未主动开启前,不会把 EXIF GPS 坐标交给反向地理编码服务。
安装
在 Obsidian 中安装
- 打开 设置 → 第三方插件。
- 浏览并安装 Dayline Journal。
- 启用插件,然后运行命令
Open Dayline。
通过 BRAT
- 安装并启用 BRAT。
- 添加 Beta 插件
Haoo-7/Obsidian-Dayline。 - 启用 Dayline Journal,然后运行命令
Open Dayline。
手动安装
- 从 Releases 下载
dayline.zip。 - 解压到 vault 的
.obsidian/plugins/dayline-journal/。 - 重新加载 Obsidian,启用 Dayline Journal,然后运行
Open Dayline。
如果新插件目录没有 data.json,Dayline 会迁移旧 dayline 或 Calendar Sidebar 1.x 的设置。迁移不会改写 vault 笔记和心情元数据。
常规
| 设置 | 作用 |
|---|---|
| 显示语言 | 统一控制插件界面、提示、标签和辅助文本,可选系统、简体中文、繁体中文、English、日本語、한국어、Français、Deutsch、Español、Русский。默认中文。 |
| 每周起始日 | 设置日历每周从星期几开始。默认跟随系统。 |
日历和日记
| 设置 | 作用 |
|---|---|
| 日记来源目录 | 配置每日笔记目录(默认日记目录 字段,默认 Calendar/Daily;填 / 表示日记就放在笔记库根目录,此时只读取根目录下的文件,不包含子目录)和可选外部导入目录。旧版独立条目来源不再默认启用。 |
| 缩略图筛选 | 选择哪些嵌入图片作为日期缩略图:所有嵌入图片(默认)或 仅日期前缀 (YYYY-MM-DD_*)。 |
| 日记工具 | 打开时间线或检测外部导入目录。 |
| 显示时间线心情趋势 | 在日记时间线顶部显示近七天的心情轨迹。默认开启。 |
| 显示时间轴日记标题 | 在日记时间线中显示标题及标题编辑入口。默认开启。 |
| 显示日历心情标记 | 在日期格显示心情颜色标记;关闭后不会删除心情记录。默认开启。 |
| 日历心情样式 | 色点 放在格子角落(默认);色条 贴在底部并让日期保持居中。仅在上面的标记开启时显示。 |
| 显示同日记录角标 | 同一天有多篇记录时显示额外篇数,点击角标打开主日记。默认开启。 |
| 显示日历天气卡片 | 显示月历顶部天气卡片;关闭后不影响日期格天气图标。默认开启。 |
| 显示天气位置 | 在天气卡片中显示配置的地点名称。默认关闭;仅在天气卡片开启时显示。 |
| 显示日期天气图标 | 显示日期格右上角天气图标;关闭后不影响顶部天气卡片。默认开启。 |
心情
| 设置 | 作用 |
|---|---|
| 镜像心情到 frontmatter | 开启后保存心情时才写入 Markdown 的 mood 和 mood_labels。默认关闭。 |
| 每日提醒 | 今天没有日记记录时显示本地提醒。默认关闭。 |
天气(需先开启 启用天气,否则下列各项不显示)
| 设置 | 作用 |
|---|---|
| 启用天气 | 在日历侧边栏中显示日期天气信息。默认关闭。 |
| 纬度 / 经度 | 所在地坐标,决定天气数据来源。失焦或停止输入约 0.8 秒后才会保存;不合法或超出范围的输入会就地提示且不会保存。 |
| 使用当前位置 | 只在你点击按钮时读取一次设备定位并填入坐标(保留 2 位小数,约 1 km 精度)。仅在 Obsidian 手机端显示,桌面端 Electron 通常没有可用的定位服务。 |
| 位置名称 | 显示名称(可选,鼠标悬停时显示)。 |
| 温度单位 | 摄氏 (°C)(默认)或 华氏 (°F)。 |
| 天气字段 | 选择天气卡片中显示的字段。体感和湿度默认开启;风速、降水、日出、日落和位置可单独开启。 |
| 天气时区 | 日记日期比较和 Open-Meteo 使用的 IANA 时区。auto 使用系统时区。 |
| 自动获取天气 | 打开日记时自动获取天气数据。默认开启。 |
| 缓存时长(小时) | 天气数据缓存的有效时长,过期后重新获取。默认 2 小时。 |
媒体元数据与隐私
| 设置 | 作用 |
|---|---|
| 显示图片 EXIF 信息 | 鼠标悬停在日历图片上时,显示相机参数和拍摄数据。默认开启。 |
| 解析 GPS 地点 | 将 EXIF GPS 坐标发送到 OpenStreetMap Nominatim 以显示地名。默认关闭,未主动开启前不会发送坐标。 |
去年今日
| 设置 | 作用 |
|---|---|
| 侧边栏入口 | 关闭、合并进天气卡(默认)或 顶栏图标。合并条带显示往年封面和日期,顶栏图标位于月份控件旁。 |
| 摘要模式 | 如何生成往年日记的文字预览:自动提取正文(默认)、从 frontmatter 字段、自定义模板 或 不显示摘要。 |
| Frontmatter 字段名 | 读取哪个 frontmatter 键。默认 excerpt,仅在 从 frontmatter 字段 模式下显示。 |
| 模板 | 自定义摘要的模板字符串,支持 {body}、{year}、{date} 或任意 frontmatter 键。默认 {body},仅在 自定义模板 模式下显示。 |
数据与维护
| 设置 | 作用 |
|---|---|
| 心情元数据路径 | vault 内 JSON 路径。默认 Calendar/journal-metadata.json,JSON 是心情主数据源。 |
| 心情导出 | 导出心情记录为 CSV 或 JSON。 |
| 元数据备份 | 导出或恢复心情元数据备份。 |
| 数据维护 | 检查数据完整性或导入 frontmatter 记录。 |
| 恢复心情记录 | 检查被删除或移走的心情记录,并恢复到原始文件路径。仅在检测到孤立记录时出现。 |
| 回填历史天气 | 为所有已有日记但缺少天气数据的日期批量拉取天气(约需数分钟)。仅在开启 启用天气 后出现。 |
天气功能可选,使用 Open-Meteo 且不需要 API Key。天气卡可显示当前条件;历史日期会在归档接口有覆盖时读取历史数据。
设备定位:天气设置里的 使用当前位置 按钮只在你主动点击时读取一次设备定位并填入坐标(保留 2 位小数,约 1 km 精度),不会自动跟踪、不会在后台读取,也不用于其他用途。桌面端 Electron 通常没有可用的定位服务,因此该按钮只在 Obsidian 手机端(iOS/Android)显示,桌面端可手动输入坐标。填入的坐标会随天气请求发送到 Open-Meteo。
导入 Day One 或 Apple Journal 时,先使用 Day One Importer 或 Obsidian Importer,再把输出目录添加为 Journal source。Dayline 不解析 JSON/ZIP 导出,也不改写导入文件。
日期会依次从配置的日期字段、date、creationDate 和合法的日期前缀文件名识别。插件不会用修改时间猜测日期;无法解析日期的文件会进入诊断,而不会进入时间线。
兼容性与限制
- 需要 Obsidian v1.5.0+,支持桌面端和手机端。
- 每日笔记默认使用
YYYY-MM-DD.md,目录、来源和日期字段可以配置。 - HEIC/HEIF 缩略图转换仅在桌面端提供。视频封面、音频封面以及不支持或过大的媒体,会根据设备能力降级为元数据或原始附件。
- 历史天气是否可用取决于归档覆盖。刷新失败时,兼容的缓存可能继续显示为过期或离线状态。
- 时间线只打开你配置目录中的笔记,不替代 Obsidian 的文件浏览器、Markdown 编辑器或同步系统。
开发
npm install
npm run typecheck
npm test
npm run build
仓库中的 main.js 由构建生成。打包发布前请运行 npm run verify:release,版本变更见 CHANGELOG.md。