Twitterにつぶやくような感覚でObsidianにメモをためているので、タイムラインのような感じで最近書いたメモをターミナルからざっと連結して眺められると便利だろうなと考えた。そこで以下のようなシェルスクリプトを使ってターミナルから確認できるようにした。
#!/bin/bash set -euo pipefail # ObsidianのVaultのパス OBSIDIAN_VAULT="PATH/TO/YOUR/VAULT" cat "$OBSIDIAN_VAULT/.obsidian/workspace.json" \ | jq -r '.lastOpenFiles | reverse | .[]' \ | grep ".md$" \ | tail -5 \ | xargs -I {} glow "$OBSIDIAN_VAULT/{}"
Obsidianのvaultには .obsidian/workspace.json
というJSONファイルがあり、そこを参照すれば最近開いたファイルがわかる。
下に新しいファイルがあったほうが見やすいので jqで逆順にしている。Twitterのタイムラインとは逆の並びになる。
Obsidianではmarkdown以外のファイルも開けるので、grepで.md
拡張子がつくファイルのみに絞ってしている。Obsidian Canvasファイルなんかもここに入ってくるので、取り除いてMarkdownファイルだけにする。
逆順にしたので head ではなくて tail で最新5件を取得している。
glowは markdown をレンダリングして色付けして表示するコマンド。
あとは .zshrc
などにalias に追加しておけばいつでも使える。1
alias notes="~/obsidian-last-open-notes.sh"