シンプルなdataviewでもここまでできる。
プロパティ
前回プロパティをdataviewの検索ワードにする方法を考えました。 今回はその応用編です。 BookSeaechプラグインで得たデータを活用してみます。
ブック検索
dataviewjsだと以前のようになるのですが、プロパティで簡略化できます。
--- search: "" cssclasses: - table-wide - table-nowrap - cards - table-tiny --- ```dataview table without id link(file.name, title) as "タイトル", author as "著者", "![img|90x90]("+ coverSmallUrl + ")" as "書影" from "book" where contains(file.name, default(this.search, "")) sort file.mtime desc ```
BookSearchの保存先を book フォルダにしています。
from
で指定。
Minimalテーマのcssclassesを使い、カード形式の表示にしてみました。 書影もサイズ指定し、コンパクトにまとめています。
実行例
ふふふ、カタログっぽい。
タイトルをタップすると元のファイルを開きます。
プロパティのsearch
欄にキーワードを入れれば絞り込みになります。
Sortableプラグインを入れておくと、表示を著作者順に変更することもできます。 右肩の上下矢印で選択。 何かと便利ですね、このプラグイン。
default()
プロパティで検索すると、検索したときはいいのですが、キーワードを消して空欄にすると、全件表示にしてほしいのに、そうなりません。 画面が白紙になってしまう。
調べてみると、プロパティがないと null を返すようです。 絞り込めなくなる。
回避方法はあるだろうと試行錯誤した結果、default() という関数が極め手でした。 値がないときに代理値を持たせることができます。 これで一件落着。
プロパティを絡めるときは必須ですね。
まとめ
Obsidianに文献データを溜めて、そこに読書メモを書くかな。