読書メモは疑問から始まる。
Book Search
ObsidianにはBookSearchプラグインがあり、Google Books の書籍情報を拾うことができます。 これが蔵書管理には最適。 本のサブタイトルや著者名、発行日をプロパティに収めてくれる。
設定の「Preferred locale」を「ja」にしてください。 日本の書籍を検索します。
Books.md
BookSearchのデータを閲覧するdataview。 今回アスクリストを付けてみました。 ノートにタスクリストがあるとそれを表示します。 読んで疑問に思ったことをメモします。
```dataviewjs const FOLDER = "book" dv.span(">[!test]- `$= dv.pages('\"" + FOLDER + "\"').file.tasks.filter(x => !x.completed).length` asks\n>```dataview\n>task from \"" + FOLDER + "\" where !completed group by file.link\n>```\n") 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(`"${FOLDER}"`) .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><img style="max-width:60px;" src="${x.coverSmallUrl}"></td><td><a class=internal-link href="${x.file.name}">${x.title}</a></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>" } ```
変数FOLDERにBookSearchのフォルダを設定してください。
実はdv.pages()に変数を使う方法を見つけ、嬉しかったので書き直したスクリプトです。 今までフォルダの指定に難儀してたものなあ。 ひらめくまでに時間がかかった。
使い方
アスクリストにタスクの数が表示されます。 タップすると該当の「疑問」が開く。 解決したらチェックして消していきます。
検索欄でデータの絞り込みもできます。 タイトルと著者名、あとdescriptionのところも検索対象になります。 関連ありそうなら表示する方針。
さらに検索欄右横の「+」。 タップするとBookSearchを起動します。 そのとき検索欄の内容をクリップボードに保持するので、それをペーストして検索してください。 この方法が手早い。
リンク
タイトル名をタップすると元ノートが開きます。
従来は書影をリンクにしていたのですが、オフラインのとき書影の取得ができず、ノートが開けませんでした。 デザイン的にまずい。
ノートを開いてタスクリストを書き込む。 これを「アスクリスト」として表示しようという作戦です。 本を読んで疑問を持つ。 その疑問が次の読書への足がかかりになる。 そうした連鎖が起きると面白いかな。
まとめ
データ構造は「図書館イズム」を参考にしています。 テンプレートに「ステータス」や「読了日」を追加しておくと、いろいろ便利。
「ステータス」は「読みたい」とか「読書中」とか書くプロパティで、これがあると「まだ買ってないけど読みたい本」も入れておくことができます。 そういう本ってタイトル忘れちゃうから、気になったら即登録。