zhaohongxuan5k downloadsHighlight timestamps in your Journal section, capture quick notes, images, and audio from a sidebar, dictate with real-time speech-to-text, and review your year with a heatmap.
一款陪你写日记的 Obsidian 插件。自动识别并高亮 Journal 区域的时间戳,让每一条记录的时间一目了然;配套一个快速记录侧边栏,让你随时把想法、图片、语音丢进今天的日记;并在同一个面板里集成全量统计,用热力图回顾一年的坚持。
在 ## Journal 区域下,每行行首的 HH:MM 时间戳会被渲染为醒目的胶囊徽标:
## Journal
- 06:42 把我的工作笔记从 Obsidian 工作流中移出去
- 07:31 成功安装并配置了 OpenClaw!
- 08:10 多花点时间做自己的事情,跑步、读书、练字都行
↓ 渲染后时间戳高亮显示,颜色可自定义。
Journal)和层级(如 ##),插件只在该区域内生效HH:MM 起头HH:MM 格式,可修改为任意正则表达式以适配其他时间格式打开「快速记录」侧边栏(羽毛笔图标或命令面板),即可在同一个面板里完成速记和统计回顾。顶部两个胶囊 Tab 居中切换:记录 / 统计。
## Journal 区段;若文件或区段不存在则自动创建(依赖 Obsidian 内置「Daily Notes」核心插件)⌘V 粘贴剪贴板里的图片,插件自动保存到 Vault 附件目录并插入 ;也支持把图片文件拖拽到输入框m4a,不支持则 webm)并以 ![[audio.m4a]] 嵌入,时间线上会渲染为可播放的音频条和记录 Tab 共享同一个侧边栏,点击「统计」胶囊即可切换。第一次打开会扫描所有 Daily Notes,之后改动日记会自动 300ms 防抖刷新。
- HH:MM 格式插件注册了 obsidian://journal-partner URL 协议,可以从任何能打开 URL 的地方(iOS Shortcuts、macOS Shortcuts、命令行 open)一键写入今天的日记,无需打开 Obsidian 主界面:
obsidian://journal-partner?text=<URL编码内容>
obsidian://journal-partner?text=<URL编码内容>&audio=<vault相对路径>
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
text |
text/audio 至少一项 | 条目文字内容(URL 编码) |
audio |
text/audio 至少一项 | vault 内的音频附件相对路径,例如 Assets/audio/2026-06-21_153012.m4a,会以 ![[...]] 嵌入,渲染成可播放的音频条 |
time |
否 | HH:MM 格式,默认使用当前时间 |
搭配 iPhone Action Button:在 iOS Shortcuts 里创建一个捷径——
Assets/audio/ → 打开 URL(text + audio 两个参数)」(文字 + 录音双轨)把捷径设为 Action Button,按一下手机侧键就能听写并自动落到今天的日记,全程不打断当前操作。
💡 一键导入:插件设置面板提供了「获取捷径」按钮,或直接点这里 → iCloud 捷径模板,添加到「快捷指令」app 即可使用。
BRAT(Beta Reviewer's Auto-update Tool)能自动跟随本仓库的 release 升级,是目前推荐的安装方式:
https://github.com/zhaohongxuan/journal-partner之后每次本仓库发布新版本,BRAT 都会在 Obsidian 启动时自动更新。
main.js、manifest.json、styles.css.obsidian/plugins/journal-partner/ 目录下- HH:MM 文字 的形式追加到今天日记的 ## Journal 区段多行输入会被保存为带 markdown 软换行的列表项,渲染时保持段落结构。粘贴图片 / 录音后会自动保存到 Vault 附件目录(路径取自 Obsidian「附件文件夹」设置)。
在「快速记录」侧边栏点麦克风按钮开始录音,插件会在输入框上方显示实时波形与时长。配置好转写接口后,支持两种模式:
prompt 喂给下一段,解决跨段同音词和断词问题。停止时再用完整音频做一次整段转写,替换掉实时拼出的草稿,得到既实时又准确的最终文本。转写完成后,文本与音频 embed(![[audio.m4a]])会一起插入光标处。录音格式优先 m4a(audio/mp4),浏览器不支持时自动降级为 webm。
接口地址 / API Key 留空时,转写自动关闭,麦克风按钮仅作纯录音用。
打开 Obsidian 设置 → 插件选项 → Journal Partner:
| 设置项 | 说明 | 默认值 |
|---|---|---|
| 目标标题名称 | 插件生效的标题文字(不含 #) |
Journal |
| 标题层级 | 目标标题的层级 | H2 |
| 设置项 | 说明 | 默认值 |
|---|---|---|
| 文字颜色 | 时间戳徽标的前景色(同时影响时间线弧线、内容气泡底色) | #7c3aed |
| 背景颜色 | 时间戳徽标的背景色 | #ede9fe |
| 设置项 | 说明 | 默认值 |
|---|---|---|
| 时间戳只读 | 防止在编辑器中修改已有时间戳 | 开启 |
| 回车自动插入时间戳 | 在 Journal 区块内按回车时自动插入当前时间 | 开启 |
| 圆形复选框 | 在日记区域内将 checkbox 渲染为圆形而非方形 | 关闭 |
| 删除前确认 | 右键删除 memo / 录音前弹出确认对话框 | 开启 |
| 设置项 | 说明 | 默认值 |
|---|---|---|
| 时间戳匹配正则 | 识别时间戳的正则表达式 | \d{2}:\d{2} |
录音转文字使用 OpenAI 兼容的 /audio/transcriptions 接口,接口/Key 留空则关闭转写(仅保留纯录音)。
| 设置项 | 说明 | 默认值 |
|---|---|---|
| 转写接口地址 | OpenAI 兼容的音频转写地址,留空关闭转写 | 空 |
| API Key | 以 Bearer 形式发送的密钥 | 空 |
| 模型 | multipart 中的 model 字段 |
whisper-1 |
| 语言 | ISO-639-1 语言提示(如 zh、en),留空自动识别 |
zh |
| 实时转写 | 录音时边说边出字,停止后整段重转替换草稿 | 开启 |
国内推荐(免费、可直连) —— 硅基流动 SiliconFlow 的 FunAudioLLM/SenseVoiceSmall:
转写接口地址: https://api.siliconflow.cn/v1/audio/transcriptions
模型: FunAudioLLM/SenseVoiceSmall
语言: zh
到 siliconflow.cn 注册并实名后生成 API Key 填入即可,该模型常驻免费。也可填 OpenAI、Groq 或自建 faster-whisper 服务(OpenAI 兼容格式即可)。
# 安装依赖
npm install
# 开发模式(保存自动重建)
npm run dev
# 生产构建
npm run build
# 部署到本地 Obsidian Vault(需在 deploy.sh 中配置 VAULT_PATH)
npm run deploy
构建产物为 main.js,与 manifest.json、styles.css 一起复制到插件目录即可。
MIT