Jazzと読書の日々

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

ObsidianのNotion-like Tablesを埋め込む

dataviewならできるかも。

Notion-like Tables

Obsidianに表計算っぽいことをさせるプラグイン。 便利だけど、他と連携させることができない。 ちょっと惜しい。 せめて表をテキストに埋め込むことができたら。

そんなわけで実験。

TabView.md

まずNotion-like Tablesで表を作ります。

そのあと、テキストに下記スクリプトを埋め込みます。

```dataviewjs
p = "assets/セリーグ.table"

s = await dv.io.load(p)
d = JSON.parse(s)
k = d.model.headerCells.map(x => x.markdown)
a = d.model.bodyCells.map(x => x.markdown)
b = splita(a, k.length)
dv.table(k, b)

function splita(x, n){
     z = []
    while (x.length > 0) z.push(x.splice(0, n))
    return z
}
```

変数pにNotion-like Tablesのファイルを指定します。

実行例

下図のように文中に表が埋め込まれました。 成功。

dv.io.load()という読み込み関数を使っています。 ファイルの中身を取得できる。 これは他にも応用が利きそう。

問題点

データを分配しているだけなので、行の順番が反映しないときがあります。 idを使ってセル位置を指定しているので、dataviewと考え方が違う。 そこを無理に配列内配列として分割しています。 少しでも想定外のことをすれば表組は崩れそう。

とりあえず、動いたということで。

まとめ

コピーボタンをつければ表の使い回しができます。