Jazzと読書の日々

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

Obsidian dataviewでMemos起動ボタンをつける

ホーム画面からプラグインを起動する方法。

command ID

ObsidianのコマンドにはIDがあります。 app.commands.executeCommandById(id)でこのIDを呼び出すと起動できる。 そういう方法です。

IDは下記スクリプト実行すると表示されます。

```dataviewjs
d = dv.array(Object.entries(app.commands.commands))
    .sort(x => x[1].id)
    .map(x => [x[1].name, x[1].id])
dv.table(["command", "id"], d)
```

Button.md

dataviewでボタンを埋め込みます。

例えばMemosのIDはobsidian-memos:open-memosなので下記のようになります。

```dataviewjs
const btn = dv.el("button", "Memos")
btn.onclick = function(){
  s = "obsidian-memos:open-memos"
  app.commands.executeCommandById(s)
}
```

ボタンを増やす

ボタンを並べる場合はbtn1のように変数を変えてください。

```dataviewjs
const btn1 = dv.el("button", "Memos")
btn1.onclick = function(){
  s = "obsidian-memos:open-memos"
  app.commands.executeCommandById(s)
}

const btn2 = dv.el("button", "Review")
btn2.onclick = function(){
  s = "templater-obsidian:Template/Review.md"
  app.commands.executeCommandById(s)
}
```

TemplaterスクリプトもHotkeyに登録してあれば呼び出せます。

ホーム画面

いまRoomをホーム画面にしているので、一行目にボタン・スクリプトを埋め込んでみました。 むっちゃ使いやすい。

Memosを呼び出すとサイドパネルのMemosは消えるようです。 二画面では使えないということか。 まあ、2Hop Linksをサイドパネルにしたので、これはこれでアリ。

まとめ

テキスト内にボタンつけてもいいかも。

孔子不惑

孔子の時代には「心」をツクリに持つ漢字はなかったので「不惑」は「不或」だったろうと言われています。 「或」とは「域」のことで「土地を区切ること」。

この説に従うと「四十にして不或」とは「自分の活動範囲を限らなくなった」になります。 何にでも首を突っ込んでみる。 孔子らしい言葉だと思います。