Jazzと読書の日々

iPadを筆記具として使う方法を模索します

Obsidianで定型句を埋め込むスクリプト

スクリプトを組んでいて面倒になったのでスクリプト

Tempra.md

配列listの内容を表示して選ぶだけ。 これでややこしいスクリプトをタイプせずに済みます。 どれも似ていて覚えにくい。 何か本末転倒な気がするけど気にしない。

<%*
const list = {
"Lr: カーソル行読み込み" : "e = app.workspace.activeLeaf.view.editor\np = e.getCursor().line\ns = e.getLine(p)\n",
"Lw: カーソル行上書き" : "e.setLine(p, s)\n",
"Lp: カーソル移動" : "e.setCursor(p, 0)\n",
"Lv: 全文上書き" : "e = app.workspace.activeLeaf.view.editor\ne.setValue(s)\n",
"M: メッセージ" : "new Notice(s)\n",
"Fp: ファイル絶対パス" : "p = app.vault.getAbstractFileByPath(f)\n",
"Fr: ファイル読み込み" : "s = await app.vault.read(p)\n",
"Fn: ファイル新規作成" : "p = await app.vault.create(f, s)\n",
"Fw: ファイル上書き" : "  await app.vault.modify(p, s)\n",
"Fo: ファイルを開く" : "app.workspace.activeLeaf.openFile(p)\n",
"Cr: クリップボード読み込み" : "s = await navigator.clipboard.readText()\n",
"Cw: クリップボード保存" : "navigator.clipboard.writeText(s)\n",
"X: コマンド実行" : "app.commands.executeCommandById(s)\n"
}
k = Object.keys(list)

x = await tp.system.suggester(k, k)
if (x) tp.file.cursor_append(list[x])
%>

使い方

メニュー形式で検索もできる。 リストの一文字目をタイプすると絞り込めます。 選択するとそのコードが書き込まれる。 まあ、テンプレートなんですけどね。

「全文読み込みとか無いじゃないか」と思われそうですが、デフォルトで揃っているコマンドは tp. と打つと出てきます。 Templaterがサポートしてる分は、そちらを使うのが間違いも起こらない。

応用編

listの中身を書き換えれば普通の定型文にも使えます。 その方が用途としては広い。

でもスクリプト組むのも需要があるんですよ、個人的にですけど。 他のスクリプトから引っ張ってきてもいいけど、探すのが大変で。 楽するためにコードを書くのだから、書くのも楽したい。 怠ける力を高めたい。

まとめ

Templa.mdという名にすると探しにくいのでTempraにしました。