前回、入力ボックスを検討しましたが、別の技がありました。
Dataview
dataviewはキーの埋め込みができます。 「key::テキスト」とすると「dv.current().key」で「テキスト」を拾うことができる。 「dv.pages('').key」とすると、全ファイルから「key::なんとか」の部分を集めてきます。
これを「メタデータ」と呼びます。 たぶんdataviewの最大の特徴でしょう。 ただのテキストがそのままデータベースに早変わり。 書式の縛りもない。
このメタデータを応用して「アプリ」を作ることもできます。
Unicode表
文中に「部首::」という一行を設け、その文字を拾って表を作る方法。
部首::
```dataviewjs
a = dv.current().部首
if(a){
k = a.codePointAt(0)
s = ""
for(i=0; i<500; i++){
s+= String.fromCodePoint(k + i) + " "
}
dv.span(s)
}
```
使い方
「部首:: 水」と書くと、サンズイの漢字リストが表示されます。 「部首:: 犬」にするとケモノヘン。 「部首:: 鳥」ならトリヘン。 「部首:: 馬」ならウマヘン。
「部首::」がdataviewjsのコードとは別のところにあるのに、そのデータが反映してスクリプトが実行されます。 しかもキーは「dv.current().部首」と漢字のままで構いません。 おいおい、と思うくらい融通性の高い仕様です。
メタデータ
メタデータは [key:: データ] と書くことで明示できます。 どの範囲がデータかわかりやすい。 しかもリーディングビューにするとメタデータは非表示になります(という仕様だけど、iPadでは出てしまいますね)。
また、フロントマターに埋め込むこともできます。 そのときは「key:データ」と書けば良く、コロンが一つで済みます。
部首が出せない
ニンベンの「亻」より「人」のほうがコードでは先になります。 これはUnicode表の不思議なところで、部首より常用漢字が先になります。
でもシンニョウ「辶」は「辶」じゃないと出てこないのです。 この法則性がとんとわからない。 結局ネットで調べちゃうんだよなあ。
まとめ
今回のポイントはメタデータのほう。 部首の謎ではありません。
少子化の利点
なぜ「少子化」が問題視されるかと言えば、日本社会が「代わりはいくらでもいる」のロジックで動いてきたからだろうなあ。 団塊の世代ジュニアが犠牲になって、この30年を支えてくれていた。
でもそれはおかしなことだから。