覚え書き。
Templater
侮ってました。 これは「アクション」です。 ちょっとした機能をスクリプトで追加する。 それをツールバーやホットキーで呼び出す。 そういう「アクション」です。
スクリプトの書き方
mdファイルを下記形式で書きます。
<%* Javascript本体 %>
TemplaterのTemplate Hotkeysに登録すると、モバイルツールバーのグローバルコマンドで追加できます。 アイコンが?になるので、CommanderのMobile Toolbarで設定。
専用コマンド
本文を取得する。
s = tp.file.content;
選択範囲を取得する。
s = tp.file.selection();
または
s = document.getSelection().toString();
カーソル行を取得する。
e = app.workspace.activeLeaf.view.editor; p = e.getCursor(); s = e.getLine(p.line);
カーソルを動かす。
document.getSelection().modify("move", "right", "character");
カーソル位置に結果を返す。
return s;
または
tp.file.cursor_append(s);
文末に追加する。
tR += s;
本文を書き換える。
e = app.workspace.activeLeaf.view.editor; e.setValue(s);
カーソル行を書き換える。
e = app.workspace.activeLeaf.view.editor; p = e.getCursor(); e.setLine(p.line, s);
クリップボードを読み込む。
s = await navigator.clipboard.readText();
クリップボードに保存する。
navigator.clipboard.writeText(s);
SafariやURLスキームを呼び出す。
open(s);
HTTPリクエストを送る。
r = await tp.obsidian.request({url}); d = JSON.parse(r);
HatenaBlog.md
たとえば、はてなブログのアプリに投稿するには下記のようになります。
<%* p = tp.file.content.split("\n"); a = p.shift(); b = p.join("\n"); url = "hatenablog:///new?title=" + encodeURIComponent(a) + "&body=" + encodeURIComponent(b); open(url); %>
URLスキームが使えるアプリにテキストを渡す方法。
CutLine.md
カーソル行をクリップボードに保存して削除します。
<%* d = document.getSelection(); d.modify("move", "left", "paragraphboundary"); d.modify("extend", "right", "paragraphboundary"); navigator.clipboard.writeText(d.toString()); d.deleteFromDocument(); %>
カーソル行の操作はこれの応用で。
まとめ
すでに発表されているスクリプトが参考になります。