dataviewは面白いけど、表ができたらそれだけで、そこからの発展がない。 そう思ってました。 でもdataviewの沼は底無しに深かったのです。
インラインJS
インラインJSについて調べたとき、Markdown変換のコマンドがあったわけです。 なんのため? これは「使え」ってことだなあ。 どう使えばいいんだろう?
dv.el()
エレメント作成のコマンド。 これもdataviewに用意されている。 HTMLタグをつけるときに使えます。 じゃあ、buttonタグはどうだろう?
もしボタンでクリップボードに表が保存できたら。 それ、いいじゃないか。
コピーボタン
テーブルの下に「copy」というボタンが出てきます。 これをタップするとクリップボードにMarkdownが保存される。 貼り付けると、それが表になる仕組みです。
```dataviewjs
s = [
["阪神", 20, 13],
["DeNA", 19, 14],
["広島", 18, 16]
]
dv.table(["チーム", "勝ち", "負け"], dv.array(s))
const e = dv.el("button", "copy")
e.onclick = function(){
new Notice("copy")
t = dv.markdownTable(["チーム", "勝ち", "負け"], dv.array(s))
navigator.clipboard.writeText(t)
}
```
実行例
こんな感じに表示されます。
そしてコピーをペーストすると下記のようになります。
チーム | 勝ち | 負け |
---|---|---|
阪神 | 20 | 13 |
DeNA | 19 | 14 |
広島 | 18 | 16 |
うまく行きそうですね。
実は
このページを見て「便利そう」と思ったものの、スクリプトが煩雑で「もっと簡単に書けるのに」と思い、組み直してみました。
ボタンを作る試みは面白いと思います。 表の活用する幅が広がる。
まとめ
だんだんインターラクティブになってきた。