Evernoteで重宝していた機能の1つに、ノートの先頭行が自動的にノートのタイトルになる、というものがあった。タイトル欄と本文欄でカーソルを移動する必要が無いし、先にタイトルを決めずともメモを書き始めることができるなど、この機能は地味かもしれないが、メモの作成頻度が高い自分にとっては欠かせない機能だった。
同じことをObsidianでやりたくてプラグインを探してみたが、完全に実現できるものは見つからず。ネットの記事を読み漁っていると、Templaterプラグインを使って類似機能を実現した事例を発見。それに倣って自分も実装してみた。手順は以下の通り。
- Templaterプラグインをインストールする。
- Template/Naming.mdというファイルを作成する。
正規表現部分はくどい記述になっているが、後から除外文字を追加していったせいでこうなった。気に入らなければ整理すればいいだろう。
12345678910111213141516<%*// メモの先頭行を取得s = tp.file.content.split("\n")[0];// ファイル名に使えない文字はアンダーバーに置換s = s.replace(/\*/g, '_');s = s.replace(/\"/g, '_');s = s.replace(/\\/g, '_');s = s.replace(/\//g, '_');s = s.replace(/\</g, '_');s = s.replace(/\>/g, '_');s = s.replace(/\:/g, '_');s = s.replace(/\|/g, '_');s = s.replace(/\?/g, '_');// ファイル名として割り当てるtp.file.rename(s);%> - Templaterプラグインの設定で、2で作成したファイルをTemplate Hotkeysに登録し、Templaterから実行できるようにする。
- ホットキーを追加する。たとえば以下のように:
Templater: Insert Template/Naming.md: Ctrl+Shift+S
新しいノートを作成したら、デフォルトで「Untitled」というファイル名になるのは既定動作通り。メモを書いた後にCtrl+Shift+Sを押すと、このテンプレートが機能して、メモの1行目をファイル名としてノートがリネームされるという仕組み。
参考サイト
GitHub – SilentVoid13/Templater: A template plugin for obsidian
https://github.com/SilentVoid13/Templater
Obsidian TemplaterでJavascriptを走らせる – Jazzと読書の日々
https://wineroses.hatenablog.com/entry/2023/02/02/214022
2023年2月2日
Obsidianの一行目をファイル名にするアクション – Jazzと読書の日々
https://wineroses.hatenablog.com/entry/2023/02/15/125336
2023年2月15日