Hugo から Quartz4に乗り換えて、Obsidian でBlog更新を完結させるで、一つ問題になったのがObsidianのノート内で張り付けていた画像が表示されないこと。
自分は /resources
配下にすべての添付ファイルが配置されているが、Quartzは特定のディレクトリを対象にビルドされる。つまり指定した特定のディレクトリ内部に画像が存在しない場合、参照時に画像が存在しないので、表示がされない。
quartzでページ生成時にもエラーがでている。
一番簡単なのは、すべてのresources を Quartzのビルド対象化に入れることだが、秘匿したいファイルも含まれているのでそれは避けたい。
可能なら Quartzでビルドされるファイルから参照されている添付ファイル(主に画像)のみ抽出して、指定されたディレクトリ配下に移動させれば解決できる。
image_move.sh
これを実行後、無事に表示されるようになった。
よっしゃー
deploy時にこのshell script が実行されるようにしておく
Obsidianの画像表示は、どんなディレクトリ配下であってもファイル名で表示される設計のおかげで、元のマークダウン内部の参照名は書き換える必要がなく、画像だけ移動させればいいのは楽だな。
またこういうのがシュッとできるのは、ローカルファイルで扱える Obsidianならではの長所
余談
Obsidianで ![[Pasted image 20250114115920.png]] という内容があります。 Pasted image 20250114115920.png という画像ファイル名を grep で抽出したいのですがどうすればいいでしょか?
このプロンプトで Gemeni 2.0 Flash experimental だと正規表現がうまく動かなかったが、GPT 4o mini だとさらっと動いて感動…