notebook

都内でWEB系エンジニアやってます。

ObsidianのTemplaterスクリプトをObsidian起動時に実行する

Templaterプラグインの話

年末にAdventCalendarの記事とかObsidianの記事を調べてたらTemplaterプラグインが便利そうだということで色々使ってみた

ちょっと本来の使い方に沿っているかと言われると微妙かもしれないが一例として

Templaterでは独自のスクリプトをHotKey呼び出し用にコマンドとして追加できる

Add new hotkey for templateを押下して作成したスクリプトを追加するだけ(スクショは既に追加したものが載っている)

HotKeyからも呼び出せるようにするには別途HotKeyの設定画面で設定が必要

コマンドだけでも実行は可能で編集中に/で特定して呼び出す方法やコマンドパレットから絞り込んで実行する方法などがある

さらに、Obsidian起動時、Templaterを使える準備が整った段階でスタートアップスクリプトとして実行するスクリプトを指定することもできる

Add new startup templateを押下して追加するだけ

startup時に実行するスクリプト

今回は毎回Obsidian起動時に行っている操作をTemplaterスクリプトにしてStartupに登録した

  • templates/startup.md
<%*
  /* Obsidian Memos のPost一覧が全件データ取得しているため、件数が増えるほど描画に時間がかかる、自分の使い方的には不要なので消す処理 */
  const memosListElement = document.querySelector('.memolist-wrapper');
  memosListElement ? memosListElement.remove() : ''
%>

Obsidian Memosを使っているがMemosの画面だと投稿の一覧表示が全件取得になっていて投稿をすればするほど重くなっていく

PC自体の挙動にまで影響でるようになってきてしまったので、毎度Obsidian起動時に一覧のDOMを消していた

最初はDevToolsを開いて丁寧に消していたがTemplaterが使えることを知って毎回Obsidian起動時に操作しなくて済んだので楽になった

まとめと感想

  • ObsidianのTemplaterプラグインで起動時に実行するスクリプトを設定した
  • TemplaterスクリプトではquerySelectorも使えるのでDOMの変更もやろうと思えばできる

どうしても既存のDOMから変えたい箇所があるならDevToolsを開いて色々やってみるのも良いかもしれない

ということで、Templaterプラグインは活用の可能性がかなり幅広い

ちょっとこの操作や作業面倒だな?と思ったらTemplaterで解決できないかな?みたいなふうに考えるようになった