プロパティを使う方法がおすすめ。
蔵書データベース
dataviewはdv.current()
で現在ファイルのプロパティを参照できる。
これを活用してファイルの絞り込みをします。
BookBase.md
keyword
というプロパティを設定します。
--- keyword: --- ```dataviewjs const k = dv.current().keyword || "" const d = dv.pages('"book"') .filter(x => (x.title + x.authors).includes(k)) .sort(x => x.publishDate, "desc") .limit(100) .map(x => [ "![image|60]("+x.coverUrl+")", dv.fileLink(x.file.name, false, x.title), x.authors]) dv.table(["著書", "題名", "著作者"], d) ```
limit(100)
で表示数を限定することにしました。
実行すると下記のようになります。
keyword
に書いた言葉で絞り込みをします。
title
とauthors
を対象にしてフィルターを掛けています。
この項目はお好きにカスタマイズしてください。
Table Sorting
最近見つけたプラグイン。 dataviewをソートします。
テーブルのヘッダー、たとえば「著作者」のところをタップすると「著作者名順」にテーブルを並べ替えます。 もう一度タップすると降順になる。
インストールはBRAT経由になります。
まとめ
プロパティに入力して改行で確定。 そのあと検索を始めるので、少し待たされるのがこの方法の弱点。 でも応用はしやすい。
追記
スクリプトでEvaluation Errorが出るとしたら、bookフォルダにプロパティの無いファイルが紛れ込んでいる場合と思います。 プロパティに title や authors が見当たらない状態。 Book Searchプラグインの保存先がbookフォルダである前提で組んでいます。
ただ、その場合でも「includes is not function」とは出ないので、ほかの場合も考えられます。 それが何かは思いつかないですが。