Jazzと読書の日々

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

ObsidianでインラインJSを使ってみる

書いている途中にスクリプトを埋め込む。 文章とプログラミングの融合。 そんな変な使い方がObsidianならできます。 特殊すぎて頭の切り替えが追いつかない。

基本形

前回、数式を埋め込めることが判明しました。 OK?

何か難しいですよね。 でも計算式を残すと、なぜその計算をしたか理由もわかる。 反面、他のアプリで開いても計算するわけではない。 一長一短です。

応用編

数式が一本ならいいけど、複数の場合はどうすればいいのでしょうか。

どうやらコンマ区切りで書くことができます。

`$= a=11, b=22,  a+b`

変数を使って公式に代入したい場合ですね。 これなら数値を変えながら計算結果を参照できる。

DataviewJS

もっと複雑な場合はどうしたらいいでしょうか。

それはdataviewjsにしちゃえばいいわけです。

```dataviewjs
a=11
b=22
dv.span(a+b)
```

改行が区切りになるし、やはり見やすい。 結果の表示にはdv.span()を使います。 テキストも数字もこれで表示できます。

表を書く

普通の表を書くこともできます。

```dataviewjs
s = [
  ["阪神", 20, 13],
  ["DeNA", 19, 14],
  ["広島", 18, 16]
]

dv.table(["チーム", "勝ち", "負け"], dv.array(s))
```

Markdownの表だと下記のように書きます。

```dataviewjs
s = [
  ["阪神", 20, 13],
  ["DeNA", 19, 14],
  ["広島", 18, 16]
]

t = dv.markdownTable(["チーム", "勝ち", "負け"], dv.array(s))
dv.paragraph(t)
```

さらに下記コマンドを追記すると、クリップボードMarkdownが保存されます。

navigator.clipboard.writeText(t)

Templaterスクリプトと同じでCodeMirrorのコマンドが使えます。

禁忌

alert()やprompt()は使うとObsidianが落ちます。 ダイアログ系は無理らしい。 Notice()は表示するけど、文章を書くたびに出てくるから、Dataviewって背後で再実行されてるんですね。 表示に関しては、埋め込みに頼るのが良さそうです。

CSVを読み込む?

csvファイルを読み込んで表の作成ができるみたいだけど、上記のとおり行っても「Loading」で止まってしまいました。 モバイルでは無理なのかなあ。

まとめ

Obsidian - Connected Notes 1.4.4
分類: 仕事効率化,辞書/辞典/その他
価格: 無料 (Dynalist Inc.)

役に立ちそうで立たない豆知識でした。