今年のものは今年のうちに。
Books
Book Search プラグインを使ってデータベースを作ります。
作品の詳細もデータにあるのに検索の対象としてなかった。 ちょっともったいないなあと思ったのでサブタイトルも含め、絞り込みできるようにしました。
Books.md
dataviewスクリプトです。
```dataviewjs
const p = dv.el("input")
p.placeholder = "..."
p.style = "font-size:large;border-radius:3px;"
const btn = dv.el("button", "+")
btn.style = "font-size:small;margin:5px;width:40px;"
const b = dv.el("div", "")
b.style = "max-height:14000px;"
disp()
p.onkeyup = () => disp()
btn.onclick = () =>{
navigator.clipboard.writeText(p.value)
s = "obsidian-book-search-plugin:open-book-search-modal"
app.commands.executeCommandById(s)
}
function disp(){
const d = dv.pages('"book"')
.filter(x => (x.title + x.subtitle + x.author + x.description).includes([p.value]))
.sort(x => x.file.ctime, "desc")
.map(x => `<tr style="font-size:small;padding:4px;"><td><a class=internal-link href="${x.file.name}"><img style="max-width:60px;" src="${x.coverSmallUrl}"></a></td><td>${x.title}</td><td>${x.author}</td><td>${(x.publisher || "")}</td><td>${x.publishDate.toLocaleString()}</td></tr>`)
b.innerHTML = "<br><table style='width:100%;'>" + d.join("\n") + "</table>"
}
```
dv.pages('"book"') の book は Book Search のファイルが作成されるフォルダです。
ご自分の環境に合わせ書き換えてください。
カード型データベース
プロパティはdataviewの検索対象になる。 考えてみるとこれは「カード型データベースになる」ということですね。 FileMakerみたいな感じで。
現状でもコアプラグインの Properties view でプロパティの検索はできます。 でも、このインターフェースでは活用する気になれない。
どうも Dynamic views という「プロパティのデータベース化」がロードマップに載っています。 ちょっと前まで「databases」という名前だったけど「Dynamic」に変わりました。 ただ表示するだけじゃない。 ダイナミックだ、ということでしょう。 Dynalist社が言うからには、この名前に意気込みが籠ってそう。
どんなのになるでしょう? 来年が待ち遠しい。
まとめ
しめ縄も飾ったしお鏡さんも床の間に置いたし。