Jazzと読書の日々

iPadを筆記具として使う方法を模索します

Obsidian dataviewで蔵書管理をしよう(簡略版)

シンプルな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に文献データを溜めて、そこに読書メモを書くかな。