Releases: Haoo-7/Obsidian-Dayline
Release list
Dayline Journal v2.4.0
Calendar release: On This Day entries you can actually find, plus mood marker styles.
Added
- On This Day calendar entry. Settings choose off, merge into the weather card, or a header icon. The merged strip shows a past-year thumbnail and date; the header icon sits beside the month controls.
- Calendar mood markers. Keep the corner dot, or draw a bottom color bar with a centered date. Narrow sidebars pin date, weather, and mood to corners so the date stays readable.
Changed
- Opening On This Day from the calendar uses the selected date, not always today.
- The header “today” jump appears only when the visible month is not the current month.
Verification
- 52 test files / 440 tests,
typecheck,build,verify:release,verify:release:zip, anddiff --checkpass. - Runtime check in the Obsidian Sandbox vault under plugin ID
dayline-journal: the merged strip and header icon opened On This Day for the selected date, the today jump stayed hidden on the current month, and no errors were captured.
Release assets
Obsidian's community installer downloads main.js, manifest.json, and styles.css individually. libheif-bundle.js is the optional HEIC decoder the plugin loads from its own folder, and dayline.zip bundles everything for a manual install.
日历版本:让「去年今日」入口真正可见,并新增心情标记样式。
新增
- 「去年今日」日历入口。 设置中可选择关闭、合并进天气卡或使用顶栏图标。合并条带显示往年封面和日期;顶栏图标位于月份控件旁。
- 日历心情标记。 可保留角落圆点,也可改为底部色条并让日期居中。窄侧栏会把日期、天气和心情钉在格子四角,保证日期可读。
变更
- 从日历打开「去年今日」时使用当前选中的日期,而不再总是跳到今天。
- 顶栏「今天」按钮只在月历不在本月时出现。
验证
- 52 个测试文件 / 440 项测试,
typecheck、build、verify:release、verify:release:zip和diff --check全部通过。 - 在 Obsidian Sandbox 测试库以插件 ID
dayline-journal完成运行时检查:合并条带和顶栏图标都会打开选中日期的「去年今日」,本月不显示「今天」按钮,未捕获到错误。
发布资源
Obsidian 社区安装器会分别下载 main.js、manifest.json 和 styles.css。libheif-bundle.js 是插件从自身目录加载的可选 HEIC 解码器,dayline.zip 则打包了全部文件,便于手动安装。
Dayline Journal v2.3.6
Follow-up release that clears the mechanical warnings from the community review. No user-visible behaviour change is intended.
Changed
- Popout-safe timers. All 47 timer calls now go through
window(setTimeout,clearTimeout,setInterval,clearInterval,requestAnimationFrame), so timers stay bound to the correct window when Obsidian uses popout windows. - No
globalThis. The device-capability probes and the Mediabunny bridge cache resolve their host through a guardedwindowlookup. Hosts without a window (headless test environments) keep the previousundefinedresults instead of throwing. - No hardcoded config directory. Both former
'.obsidian'fallbacks now readvault.configDirand skip the operation when it is empty, so neither the optional HEIC decoder path nor the legacydata.jsonmigration can build anundefined/plugins/...path. - Explicitly ignored promises. Fire-and-forget promises are marked with
void, and the fivesetTimeout(async () => ...)callbacks were wrapped so the timer callback stays synchronous. Error handling is unchanged: every one of those bodies already caught internally.
Verification
- 50 test files / 423 tests,
typecheck,build,verify:release,verify:release:zip, anddiff --checkpass. - Runtime check in an Obsidian vault under plugin ID
dayline-journal: the optional HEIC decoder still loads from the resolved config directory, capability probes report desktop correctly, the reminder timer returns a numeric id, the timeline rendered 25 entries, and no errors were captured.
Release assets
Obsidian's community installer downloads main.js, manifest.json, and styles.css individually. libheif-bundle.js is the optional HEIC decoder the plugin loads from its own folder, and dayline.zip bundles everything for a manual install.
变更
- 清除社区审核提出的机械类警告:计时器统一通过
window调用,保证弹出窗口下的计时正确;能力探测与 Mediabunny 桥接缓存改用带保护的window查找,不再使用globalThis;两处硬编码的.obsidian兜底改为vault.configDir,取不到时直接跳过,因此不会再拼出undefined/plugins/...这类路径。 - 明确忽略的 Promise 现以
void标记;5 处setTimeout(async () => ...)改为让计时器回调本身保持同步。错误处理逻辑未变,这些代码块本来就在内部捕获异常。
本版本不包含有意的界面行为变化。
验证
npm test通过:50 个测试文件、423 项测试。npm run typecheck、npm run build、npm run verify:release和git diff --check通过。- Obsidian 测试库以插件 ID
dayline-journal完成运行时检查:可选的 HEIC 解码器仍能从解析后的配置目录加载,设备能力探测正确识别桌面端,提醒计时器返回数字 id,时间线渲染 25 条记录,未捕获到错误。
发布资源
Obsidian 社区安装器会分别下载 main.js、manifest.json 和 styles.css。libheif-bundle.js 是插件从自身目录加载的可选 HEIC 解码器,dayline.zip 则打包了全部文件,便于手动安装。
Dayline Journal v2.3.5
Follow-up release that clears the warnings the 2.3.4 review surfaced. No user-visible behaviour change is intended.
Changed
- CSS warnings. The
column-gapinside a grid rule now usesgap(the review reported the property name as the partially supported multicolumn feature). The duplicatebackground,border, andmax-heightdeclarations moved into@supportsblocks, so thergba/100vhfallback and thecolor-mix/100dvhenhancement are no longer duplicate declarations in the same rule. The two:has()selectors became ahas-title-placeholderclass that the timeline view toggles, removing the broad-invalidation warning. - Unused code. 39
catch (_)bindings became optional catch bindings across 14 files, and two more catch bindings dropped their unread error variable. The unreferencedSCORES,_isImageLink,_calendarWeatherIconUrl,IMAGE_EXTS,CALENDAR_BADGE_MARKUP, andCALENDAR_BADGE_ICONSwere deleted. Unused locals such asoverlay,num,detailEl,extraEl, andstatusEllost only their names; the calls that create those elements are unchanged. - Intentionally kept: the
!importantdeclarations that override Obsidian's own styles, theall: initialrule on the viewport probe, and the deprecatedexecCommandclipboard fallback.
Verification
- 50 test files / 423 tests,
typecheck,build, anddiff --checkpass. - Runtime check in an Obsidian vault under plugin ID
dayline-journal: 25 timeline entries rendered, the three title-less entries carriedhas-title-placeholderwith a computedpadding-bottomof 24px, both@supportsblocks were active, and no errors were captured.
Release assets
Obsidian's community installer downloads main.js, manifest.json, and styles.css individually. libheif-bundle.js is the optional HEIC decoder the plugin loads from its own folder, and dayline.zip bundles everything for a manual install.
变更
- 清除社区审核对 2.3.4 提出的 CSS 警告:grid 规则中的
column-gap改用gap;重复的background、border、max-height移入@supports块,使兜底值与增强值不再重复声明;两处:has()改为由时间线视图切换的has-title-placeholderclass。 - 清理审核标记为未使用的代码:39 处
catch (_)改为可选 catch 绑定,另有 2 处不再声明未被读取的错误变量;删除无任何引用的SCORES、_isImageLink、_calendarWeatherIconUrl、IMAGE_EXTS、CALENDAR_BADGE_MARKUP和CALENDAR_BADGE_ICONS。overlay、num、detailEl、extraEl、statusEl等未使用的局部变量只去掉变量名,创建对应元素的调用保持不变。 !important声明、视口探测节点的all: initial、以及已弃用的execCommand剪贴板兜底均有意保留。
本版本不包含有意的界面行为变化。
验证
npm test通过:50 个测试文件、423 项测试。npm run typecheck、npm run build、npm run verify:release和git diff --check通过。- Obsidian 测试库以插件 ID
dayline-journal完成运行时检查:时间线渲染 25 条记录,3 条无标题条目的 body 带has-title-placeholder,计算出的padding-bottom为 24px;两个@supports块均生效;未捕获到错误。
发布资源
Obsidian 社区安装器会分别下载 main.js、manifest.json 和 styles.css。libheif-bundle.js 是插件从自身目录加载的可选 HEIC 解码器,dayline.zip 则打包了全部文件,便于手动安装。
Dayline Journal v2.3.4
Fixes the issues raised by the Obsidian community-directory review.
Fixed
- Obsidian review error: the plugin no longer creates and attaches
<style>elements at runtime. All plugin and source-editor CSS now lives instyles.css, which Obsidian loads itself, and the remaining fixed inline styles were replaced with CSS classes. - Obsidian review error: settings sections now use
new Setting(containerEl).setName(...).setHeading()instead of creating heading elements directly. - Review warning: removed the unsupported
dirfield frommanifest.json. - Closed the Dayline calendar no longer leaves media listeners,
tabIndex/aria-labeloverrides, or info buttons behind in Markdown notes, so reopening it cannot stack duplicate buttons or call into a closed view.
Changed
- Added an MIT license.
npm run verify:releaseand the build now fail whenmain.js,manifest.json, orstyles.cssis missing or empty, and the release archive is rebuilt from that verified set.
Verification
- 50 test files / 422 tests,
typecheck,build, anddiff --checkpass. - Verified in an Obsidian vault under plugin ID
dayline-journal: settings migrated,styles.cssconfirmed as the applied stylesheet, calendar/timeline/settings render with no captured errors.
Release assets
Obsidian's community installer downloads main.js, manifest.json, and styles.css individually. libheif-bundle.js is the optional HEIC decoder that the plugin loads from its own folder, and dayline.zip bundles everything for a manual install.
修复
- 修复 Obsidian 审核报错:不再在运行时创建并插入
<style>元素。插件与来源编辑器的样式改由根目录styles.css承载,由 Obsidian 自行加载;其余固定内联样式改用 CSS class。 - 修复 Obsidian 审核报错:设置分区改用
new Setting(...).setName(...).setHeading(),不再手工创建标题元素。 - 修复审核警告:从
manifest.json移除不支持的dir字段。 - 关闭 Dayline 日历时,不再把笔记里的媒体监听、
tabIndex/aria-label覆盖和媒体信息按钮留在 Markdown 笔记中,重复开关不会累积重复按钮,也不会再触发已关闭视图的回调。
变更
- 新增 MIT
LICENSE。 npm run verify:release与build.mjs现在会在main.js、manifest.json、styles.css缺失或为空时直接失败;npm run package:release从已验证的运行文件集重新生成dayline.zip,压缩包现在包含styles.css。
验证
npm test通过:50 个测试文件、422 项测试。npm run typecheck、npm run build、npm run verify:release、npm run verify:release:zip和git diff --check通过。- Obsidian Sandbox 测试库以插件 ID
dayline-journal完成运行时验证:旧设置成功迁移,确认实际生效的样式表就是styles.css,日历、时间线与设置页均正常渲染,未捕获到错误。
发布资源
Obsidian 社区安装器会分别下载 main.js、manifest.json 和 styles.css。libheif-bundle.js 是插件从自身目录加载的可选 HEIC 解码器,dayline.zip 则打包了全部文件,便于手动安装。
Dayline Journal v2.3.3
Dayline Journal v2.3.3
Maintenance release to refresh the Obsidian Community directory review after correcting the GitHub release tag format. There are no plugin runtime changes.
Fixed
- GitHub release tag now exactly matches
manifest.json:2.3.3. - The release tag points to the current default-branch commit.
- Community metadata continues to use
id: dayline-journalandname: Dayline Journal.
Verification
npm test: 48 test files, 400 tests passed.npm run typecheck,npm run build, andgit diff --checkpassed.
Install
Download dayline.zip, or add Haoo-7/Obsidian-Dayline to BRAT.
Dayline Journal v2.3.3 中文说明
这是一个维护版本,用于在修正 GitHub Release 标签格式后刷新 Obsidian 社区目录的评审。插件运行时没有变化。
修复
- GitHub Release 标签现在与
manifest.json完全一致:2.3.3。 - Release 标签直接指向当前默认分支提交。
- 社区元数据继续使用
id: dayline-journal和name: Dayline Journal。
验证
npm test:48 个测试文件、400 项测试通过。npm run typecheck、npm run build和git diff --check通过。
安装
下载 dayline.zip,或在 BRAT 中添加 Haoo-7/Obsidian-Dayline。
Dayline Journal v2.3.2
Dayline Journal v2.3.2
This release changes the community directory name from Dayline to Dayline Journal so the entry can pass the directory name uniqueness check. The product brand remains Dayline, and the plugin ID remains dayline-journal.
Changed
- Community directory name:
Dayline->Dayline Journal - Plugin ID: unchanged as
dayline-journal - Existing settings and weather cache continue to migrate from the old
daylinedirectory.
Verification
npm test: 48 test files, 400 tests passed.npm run typecheck,npm run build, andgit diff --checkpassed.- The community directory search returns no existing entry named
Dayline Journal.
Install
Download dayline.zip, or add Haoo-7/Obsidian-Dayline to BRAT.
Dayline Journal v2.3.2 中文说明
本版本将社区目录名称从 Dayline 调整为 Dayline Journal,以通过目录的展示名唯一性检查。产品品牌仍为 Dayline,插件 ID 仍为 dayline-journal。
变更
- 社区目录名称:
Dayline->Dayline Journal - 插件 ID:保持
dayline-journal - 旧
dayline目录中的设置和天气缓存仍会自动迁移。
验证
npm test:48 个测试文件、400 项测试通过。npm run typecheck、npm run build和git diff --check通过。- 社区目录搜索确认尚不存在名为
Dayline Journal的条目。
安装
下载 dayline.zip,或在 BRAT 中添加 Haoo-7/Obsidian-Dayline。
Dayline Journal v2.3.1
Dayline v2.3.1
This maintenance release changes the internal community plugin ID from dayline to dayline-journal so Dayline can be published alongside the existing marketplace entry. The public plugin name remains Dayline.
Changed
- Community plugin ID:
dayline->dayline-journal - Install directory:
.obsidian/plugins/dayline-journal/ - Existing settings and weather cache migrate automatically from
.obsidian/plugins/dayline/data.jsonwhen the new data file is absent. - Existing Calendar Sidebar 1.x migration remains supported.
Verification
npm test: 48 test files, 400 tests passed.npm run typecheck,npm run build, andgit diff --checkpassed.
Upgrade note
Verify the settings after updating, then disable or remove the old dayline plugin so both copies do not run at the same time.
Install
Download dayline.zip, or add Haoo-7/Obsidian-Dayline to BRAT.
Dayline v2.3.1 中文说明
这是一个维护版本,将内部社区插件 ID 从 dayline 改为 dayline-journal,以便和市场中已有条目并存;发布名仍然是 Dayline。
变更
- 社区插件 ID:
dayline->dayline-journal - 安装目录:
.obsidian/plugins/dayline-journal/ - 新数据文件不存在时,会自动迁移旧
.obsidian/plugins/dayline/data.json中的设置和天气缓存。 - 继续支持从 Calendar Sidebar 1.x 迁移。
验证
npm test:48 个测试文件、400 项测试通过。npm run typecheck、npm run build和git diff --check通过。
升级说明
更新后请确认设置正常,然后停用或删除旧的 dayline 插件,避免两个副本同时运行。
安装
下载 dayline.zip,或在 BRAT 中添加 Haoo-7/Obsidian-Dayline。
Dayline Journal v2.3.0
Dayline v2.3.0
Dayline now runs in the Obsidian mobile app as well as on desktop. This release also completes the timeline and mood UX overhaul, adds a structured Journal sources editor, and folds in the reliability fixes developed since v2.2.0.
Highlights
- Mobile support: native phone view, calendar/timeline switching, Markdown quick entry, touch-friendly controls, and return navigation to the original note.
- Journal sources editor: folder browsing, source type and date-field controls, per-source enable/remove actions, validation, staged apply, and advanced JSON fallback.
- Timeline overhaul: month grouping, compact statistics, container-aware layout, stable filters, preserved editing drafts, and clearer empty/error states.
- Mood editor: keyboard-aware sizing, compact landscape layout, reliable focus transfer between custom feelings and notes, per-date drafts, save locking/retry, and direct close behavior without the unsaved-changes confirmation layer.
- Weather overlay: keeps the frosted-glass appearance and positions itself below the mobile view header so it does not overlap host controls.
- Reliability: fixes for journal index races, mood metadata recovery/atomic writes, weather cache compatibility, and bounded EXIF/HEIC/media handling.
Verification
npm test: 47 test files, 399 tests passed.npm run typecheck,npm run build, andgit diff --checkpassed.- Mobile flows were exercised in Obsidian Sandbox and on an iPhone 13 mini, including navigation, timeline filters, mood editing, keyboard focus transfer, landscape layout, and weather overlay placement.
Install
Download dayline.zip and extract it into .obsidian/plugins/dayline/, or add Haoo-7/Obsidian-Dayline to BRAT.
Dayline v2.3.0 中文说明
Dayline 现在同时支持 Obsidian 桌面端和手机端。本版本完成了时间线与心情交互重构,新增结构化 Journal sources 编辑器,并合入 v2.2.0 之后的可靠性修复。
重点内容
- 手机端支持:原生手机视图、日历/时间线切换、Markdown 快速入口、触控友好控件,以及返回原笔记。
- Journal sources 编辑器:文件夹浏览、来源类型和日期字段、单条启用/删除、校验、分步应用,并保留高级 JSON 备用入口。
- 时间线重构:按月份分组、紧凑统计、容器自适应布局、稳定筛选、编辑草稿保留,以及更清晰的空状态和错误状态。
- 心情编辑器:键盘自适应尺寸、横屏紧凑布局、自定义感受与备注之间可靠切换焦点、按日期草稿、保存锁定/重试,以及直接关闭不再弹出未保存确认层。
- 天气浮层:保留毛玻璃质感,并定位到手机视图 header 下方,避免遮挡宿主控件。
- 可靠性:修复日记索引竞态、心情元数据恢复与原子写入、天气缓存兼容性,以及 EXIF/HEIC/媒体处理缺少上限等问题。
验证
npm test:47 个测试文件、399 项测试通过。npm run typecheck、npm run build、git diff --check通过。- 已在 Obsidian Sandbox 和 iPhone 13 mini 上跑过手机导航、时间线筛选、心情编辑、键盘焦点切换、横屏布局和天气浮层定位等流程。
安装
下载 dayline.zip 解压到 .obsidian/plugins/dayline/,或在 BRAT 中添加 Haoo-7/Obsidian-Dayline。
Dayline Journal v2.2.0
Added
- Added a desktop fluid mood control to the first step of the mood picker, with continuous pointer dragging, animated Canvas shapes, five-level snapping, keyboard navigation, accessible slider semantics, and reduced-motion support.
- Added focused coverage for fluid value mapping, color interpolation, pointer cancellation and capture failures, keyboard activation, two-step navigation, and saved mood payloads.
Changed
- The mood picker now tints the full modal surface as the mood changes, using a semantic spectrum from purple and deep blue through calm cyan to warm amber and coral red.
- The second step now carries the selected color forward and presents a compact fluid preview alongside the selected mood, labels, custom feelings, and note fields.
- Calendar mood markers and timeline mood colors now use the same five-color spectrum as the picker.
Fixed
- Body-only and task-only journal updates no longer rebuild the calendar, preventing visible day-cell flicker while preserving refreshes for date, media, mood, and weather changes.
- Guarded pointer capture and release when synthetic or cancelled pointer events no longer have an active native pointer, preventing
NotFoundErrorentries in Obsidian's error buffer.
Verification
npm testpassed: 38 test files and 182 tests.npm run typecheck,npm run build, andgit diff --checkpassed.- Verified in Obsidian 1.13.7 with dark and light themes: pointer dragging, five-level snapping, keyboard activation, full-modal color transitions, second-step color inheritance, repeated open/close, and clean error-level console output.
- Deployed the release build to the Main_Topic vault; repository and Vault runtime hashes matched, while
data.jsonandCalendar/journal-metadata.jsonremained byte-identical to their pre-deployment state.
新增
- 在心情选择器第一步加入桌面端流体心情控件,支持连续指针拖动、Canvas 动态形变、五档吸附、键盘导航、无障碍滑杆语义和减少动态效果设置。
- 增加针对流体数值映射、颜色插值、指针取消与捕获失败、键盘确认、两步流程和心情保存载荷的聚焦测试。
变更
- 心情变化现在会为整个弹窗表面同步染色,色谱从紫色、深蓝色经过冷静青蓝色,逐步升温至暖琥珀色和珊瑚红色。
- 第二步会继续继承已选颜色,并用紧凑的流体预览展示已选心情,同时保留标签、自定义感受和备注字段。
- 日历心情标记和时间线心情颜色现在与选择器使用同一套五色色谱。
修复
- 仅正文或任务发生变化时不再重建日历,避免日期格可见闪烁;日期、媒体、心情和天气变化仍会正常刷新。
- 当合成或已取消的指针事件不再具有原生活跃指针时,安全处理指针捕获与释放,避免 Obsidian 错误缓冲出现
NotFoundError。
验证
npm test通过:38 个测试文件、182 项测试。npm run typecheck、npm run build和git diff --check通过。- 已在 Obsidian 1.13.7 的深色与浅色主题中验证:指针拖动、五档吸附、键盘确认、整窗颜色过渡、第二步颜色继承、反复开关和错误级别控制台均正常。
- 已将发布构建部署到 Main_Topic Vault;仓库与 Vault 的运行时文件哈希一致,
data.json和Calendar/journal-metadata.json与部署前逐字节一致。
Dayline Journal v2.1.3
Changed
- Journal index initialization now runs in the background, so calendar and timeline views do not block workspace restoration in larger vaults.
- Calendar and timeline views now show an explicit loading state while the journal index is being built.
Fixed
- Re-indexed journal entries after Obsidian metadata-cache updates, so newly parsed image embeds appear without requiring a plugin or vault reload.
Verification
npm testpassed: 36 test files and 170 tests.npm run typecheck,npm run build, andgit diff --checkpassed.- Verified in the Main_Topic vault: Dayline reloaded cleanly, the journal index reached 305 entries, and no runtime errors were captured.
变更
- 日记索引初始化改为后台运行,日历和时间线不再阻塞较大 Vault 的工作区恢复。
- 日历和时间线在日记索引构建期间显示明确的加载状态。
修复
- 在 Obsidian 元数据缓存更新后重新索引日记,使新解析出的图片嵌入无需插件或 Vault 重载即可显示。
验证
npm test通过:36 个测试文件、170 个测试。npm run typecheck、npm run build和git diff --check通过。- 已在 Main_Topic Vault 中验证:Dayline 重载正常,日记索引达到 305 条,未捕获运行时错误。