- User scripts for Obsidian Templater Plugin.
- Templaterコミュニティプラグインをある程度使っていて、APIのもっと初歩的で具体的なサンプルがほしい人。
- 例えば、「Templaterコミュニティプラグインって、templateにJavaScriptが書けるらしいね。
- そこからObsidianのAPIが呼べるので、いろいろできそう。
- でも、うまくいかなかった。よくわからない。」
 
- 便利な機能の共有用
- 後述の sakuraeditor-bookmark-likeとinsert-fileの機能が使えるようになります。
 
- 後述の 
- ノウハウの共有用
- Templaterプラグインは、JavaScriptでObsidianのAPIを呼べるので、便利ですよね。
- テキストエディタのマクロのようなことができます。
- 例えば秀丸エディタ、テキストエディター「Mery」、サクラエディタ、のような。
- コミュニティプラグインに比べて、手早くObsidianに機能追加をしたいときに向きます。
 
- さわってみたところ、例えば Hello, World!がすぐできるような資料があると楽そう、と感じました。
- そこで後述の templater-js-hotとinsert-fileを公開します。何かの参考になれば幸いです。
 
- sakuraeditor-bookmark-like- どんな機能?:
- 現在行をハイライトします。トグル動作します。
- 範囲選択した場合は、Obsidian標準機能の「ハイライトをトグル」と同じ動作です。
 
- 他のエディタの機能で例えると:
- サクラエディタの「ブックマーク設定・解除」(CTRL + F2)
- 秀丸エディタの「現在行をマーク」
 
- サクラエディタの「ブックマーク設定・解除」(
 
- どんな機能?:
- sakuraeditor-bookmark-next- サクラエディタの「次のブックマークへ」(F2)
 
- サクラエディタの「次のブックマークへ」(
- sakuraeditor-bookmark-prev- サクラエディタの「前のブックマークへ」(SHIFT + F2)
 
- サクラエディタの「前のブックマークへ」(
- insert-file- どんな機能?:
- 現在行に指定したファイルを挿入します。(現在行は削除します)
 
- 用途は?:
- 例えばデイリーノートのテンプレートに組み込みます。
- 例えば 20時のタスクをここに挿入するという行を用意して、20時にそれをクリック。すると、20時のタスクをここに挿入するという行は削除され、そこに、用意しておいたTemplatesファイルが挿入されます。さらにそのファイルの末尾に21時のタスクをここに挿入すると書く使い方もできます。
 
- 例えば 
- あくまで一例です。人によってもっとマッチする使い方がある想定です。
 
- 例えばデイリーノートのテンプレートに組み込みます。
 
- どんな機能?:
- templater-js-hot- スニペット的なものです。
- Hello, World!のように、小さく、単体で動作するコード群です。
- コメントアウトされています。
- それぞれアンコメントすることで、実際に動作します。
 
- 筆者は CTRL + Tに割り当てて使っています。- sakuraeditor-bookmark-likeと- insert-fileは、これを使って開発しました。
 
- メリットは小規模ゆえ導入コストと運用コストが低いこと、
- デメリットは(ほかの大規模開発環境に比べて)開発サポート機能が少ないことです。
- まず導入して小規模scriptを書いてみる、という用途に向く想定です。
 
 
- スニペット的なものです。
- sakuraeditor-bookmark-like- Templater
- Obsidianに、Templaterコミュニティプラグインをインストールします。
 
- フォルダ
- Templater設定の「User Script Functions」の「Script files folder location」を設定します。
- 例えば TemplaterJS
 
- 例えば 
 
- Templater設定の「User Script Functions」の「Script files folder location」を設定します。
- ファイル配置
- vault配下のディレクトリ TemplatesとTemplaterJSディレクトリに、- 当リポジトリの TemplatesとTemplaterJSディレクトリの内容をコピーします。
- (MarkdownファイルとJavaScriptファイルです)
 
- 当リポジトリの 
 
- vault配下のディレクトリ 
- ホットキー
- Templater設定の「Template Hotkeys」欄に、例えば Templates/sakuraeditor_bookmark_like.mdを入力します。
- 近くにある「+」ボタンをクリックし、ホットキー設定を開き、右上欄に sakuraを入力して、「Templater: Insert Templates/sakuraeditor_bookmark_like.md」が表示されたことを確認し、
- 右の「+」ボタンをクリックし、
- 例えば CTRL + F2キーを押して、キーを割り当てます。
 
- Templater設定の「Template Hotkeys」欄に、例えば 
- 動作確認
- CTRL + F2キーを押し、現在行がハイライトされることを確認します。
- 再度押して、現在行のハイライトが消える(トグル動作する)ことを確認します。
 
 
- Templater
- sakuraeditor-bookmark-next- 筆者はひとまず、使わずに様子見しています。
- Obsidianの標準機能の F2(ノートのリネーム)と衝突するためです。- 筆者はひとまず、ノートのリネームを優先しています。
 
 
- Obsidianの標準機能の 
 
- 筆者はひとまず、使わずに様子見しています。
- sakuraeditor-bookmark-prev- 導入
- 前提は、sakuraeditor-bookmark-likeの作業を実施済みであること。
- 同様に、sakuraeditor_bookmark_like_prev.mdをSHIFT + F2に割り当てます。
 
- 前提は、
- 動作確認
- SHIFT + F2キーを押し、ハイライトした行にジャンプすることを確認します。
 
 
- 導入
- insert-file- 導入
- 前提は、sakuraeditor-bookmark-likeの作業を実施済みであること。
- Advanced URI
- Advanced URI コミュニティプラグイン をinstallします。
- Advanced URI のオプション画面を開き、Open file on write等の設定をすべてoffにします。動作確認を確実に行うためです。なお筆者はそのまますべてoffで使っています。
 
- Template command 登録
- Templater設定の「Template Hotkeys」欄に、例えば以下の2つを登録します:
- Templates/insert_file.md
- Templates/insert_fileを書く用テンプレ.md
 
 
- Templater設定の「Template Hotkeys」欄に、例えば以下の2つを登録します:
 
- 前提は、
- 動作確認
- コマンドパレットで insert_fileと入力するか、スラッシュコマンドで/insert_fileと入力します。
- 候補から insert Templates/insert_fileを書く用テンプレ.mdを選びます。
- 現在行に [test用mdを挿入(現在行は削除)](obsidian://adv-uri?commandid=templater-obsidian:Templates/insert_file.md&insert-filename=Templates/insert_fileを書く用テンプレ用test.md)が挿入されることを確認します。
- それをクリックします。
- 現在行が これは insert_fileを書く用テンプレ用test.md の中身ですとなることを確認します。
 
- コマンドパレットで 
- 補足
- Shukuchi(縮地)コミュニティプラグイン があるとキーボードだけで素早く使えて便利です。
- あたかも「便利なボタン」を「キーボードで素早く押す」かのように使えます。筆者はこの方法で毎日使っています。
 
 
- 導入
- templater-js-hot- 導入
- 前提は、sakuraeditor-bookmark-likeの作業を実施済みであること。
- 同様に、Templater_js_hot.mdをCTRL + Tに割り当てます。
 
- 前提は、
- 編集
- Templater_js_hot.jsを編集します。- hello, worldの行をアンコメントします。
 
 
- 動作確認
- CTRL + Tキーを押し、カーソルのある場所に「Hello, World!」が挿入されることを確認します。
 
 
- 導入
- Script User Functions
- TemplaterのScript User Functionsの説明です。
- 当リポジトリも、Script User Functionsの方式をとっています。
 
 
- TemplaterのScript User Functionsの説明です。
- Obdisian Editor API
- editorのAPIリファレンスです。
 
- Templater File Module API
- Templater tp.file のAPIリファレンスです。
 
- 📕Templaterでよく使うコマンド・スニペット
- scriptを書くとき参考になります。
 
- Obsidian Tempura
- Script User Functionsと、Templater scriptの統合開発環境です。