InVerse3 downloads跟踪每个文档的阅读时长(区分窗口内/脱离窗口),并提供独立的手动计时;侧栏统一查看,数据存于 SQLite。
一个用于 Obsidian 的文档阅读时间追踪插件,帮助你了解在每个文档上花费的时间; 另附一个与文档追踪相互独立的手动计时器。
本仓库是重构版(v1.3.1):源码已从单体
main.js重构为src/下的 TypeScript 分层模块,存储由 JSON 改为 SQLite(sql.js / WASM)。行为与数据格式的对照说明见docs/,重构前的基线副本见docs/ROLLBACK.md。
一个正式的侧栏视图(ItemView),topbar 两个图标切换面板:
设置中可分别关闭「文档追踪」与「手动计时」;关闭文档追踪会同时停止计时并保存当前会话。
从仓库根目录复制 manifest.json,并从 dist/ 复制以下三个文件到 <vault>/.obsidian/plugins/documents-activity-tracker/:
main.js
styles.css
sql-wasm.wasm ← SQLite 由 sql.js(WASM) 提供,缺这个文件插件会降级为
「不落盘」并在界面与通知里明确告知,不会假装已保存
然后在 Obsidian 设置中启用插件并重新加载。
Components/History/readTimeHistory.json → Components/History/readTimeHistory.sqlite)。data.json(Obsidian 惯例)。events(事件流,唯一真相)、records(物化统计)、manual_sessions(手动计时)。最低支持 Obsidian 1.7.2。开发依赖固定为官方 [email protected],不再内置新版 API 类型声明。bun run lint:api 使用官方 obsidianmd/no-unsupported-api 规则检查源码;检查与发布构建均包含此步骤。
bun run check # tsc --noEmit + bun test
bun build.ts # 开发构建 -> dist/
bun build.ts --prod # 生产构建
bun build.ts --watch # 监听 src/ 与 styles/ 增量重建
# 部署目标由调用方给定 —— 仓库里不硬编码本地 vault 路径
RTT_VAULT_PLUGIN_DIR=/path/to/vault/.obsidian/plugins/documents-activity-tracker \
bun build.ts --deploy
core/ 纯逻辑,零环境依赖(无 window/document/localStorage),可离线单测
data/ SQLite 存储与适配器;服务层只依赖 HistoryStore 接口
services/ 计时服务(文档 / 手动),不 import obsidian 运行期值
ui/ 视图与 Obsidian 事件绑定(唯一在运行期 import obsidian 值的一层)
main.ts 装配,不放业务判断
styles/ 下 13 个模块按 build.ts 里的顺序逐字节拼接。拼接结果对既有模块有 md5
守门(CSS_REFERENCE_MD5),新增样式必须放进 CSS_MODULES_EXTRA,不得改动既有模块。
MIT License