ObsidianのBases機能でKindleの本棚を作る
Obsidianがバージョン1.10で導入した新機能「Bases」は、ノートのメタデータを活用してデータベースのようなビューを作成できる強力な機能です。このBasesのカードビュー機能が、まるで本棚のようにKindleの蔵書を整理するのに最適ではないかと考えました。
私のObsidianのVaultではKindle Highlightsプラグインを利用してKindleのハイライトを同期しており、各ノートには書影URLを含む書籍情報がフロントマターとして保存されています。今回はこの情報を活用します。
Kindle Highlightsのフロントマター
まず、Kindle Highlightsプラグインが生成するMarkdownのフロントマターを確認します。以下のような形式になっています。
---
kindle-sync:
bookId: '15428'
title: ガーリー・エアフォースVII (電撃文庫)
author: 夏海 公司、遠坂 あさぎ
asin: B01M5IECL8
lastAnnotatedDate: '2025-08-11'
bookImageUrl: 'https://m.media-amazon.com/images/I/91rWS46OsuL._SY160.jpg'
highlightsCount: 9
---
この中で特に重要なのが、書影のURLであるbookImageUrlです。このURLをBasesで表示させることで、視覚的な本棚を実現できます。
Basesの設定手順
ObsidianでBasesを利用するには、まずBases機能を有効にする必要があります。
-
Basesの有効化:
- Obsidianの
設定>コアプラグインを開きます。 -
Basesを有効にします。
- Obsidianの
-
Basesファイルの作成:
- 本棚ビューを作成したいフォルダで右クリックし、「新規作成」>「Bases」を選択します。
- 作成された
.baseファイルを、Obsidianの外部エディタ(VS Codeなど)で開くか、Obsidian内でテキストファイルとして開きます。
-
コードの貼り付け:
- 表示されたコードブロックに、後述する「完成したBasesの設定」のコードを貼り付けます。
この3ステップで、あなたのObsidianにもKindleの本棚が完成します。
完成したBasesの設定
そして、完成したBasesの設定がこちらです。
formulas:
booktitle: |
file.properties["kindle-sync"].title
bookimage: |
file.properties["kindle-sync"].bookImageUrl
author: |
file.properties["kindle-sync"].author
views:
- type: table
name: Table
filters:
and:
- '!note["kindle-sync"].isEmpty()'
order:
- formula.booktitle
- formula.bookimage
sort:
- property: formula.bookimage
direction: ASC
- property: kindle-sync
direction: ASC
- type: cards
name: View
filters:
and:
- '!note["kindle-sync"].isEmpty()'
groupBy:
property: formula.author
direction: ASC
order:
- formula.booktitle
sort:
- property: formula.booktitle
direction: ASC
image: formula.bookimage
コードの解説
このコードが何をしているのかを解説します。
formulas
formulasでは、フロントマターの深い階層にある情報にアクセスしやすくするために、短い名前の「変数」を定義しています。
-
booktitle:file.properties["kindle-sync"].titleというパスから、本のタイトルを取得します。 -
bookimage: 同様に、書影の画像URLを取得します。 -
author: 著者の名前を取得します。
views
viewsでは、取得したデータをどのように表示するかを定義します。ここではtableとcardsの2種類のビューを作成しています。
共通のフィルター
両方のビューにfiltersが設定されています。
filters:
and:
- '!note["kindle-sync"].isEmpty()'
これは、「kindle-syncというプロパティ(フロントマター)を持つノートだけを対象にする」という条件です。これにより、Kindleから同期した本の情報だけをBasesの表示対象にできます。
cardsビュー
cardsビューは、本棚のような見た目を実現するためのメインのビューです。
-
type: cards: 表示形式としてカードビューを選択します。 -
name: View: ビューの名前を「View」に設定します。 -
groupBy:formula.authorを指定することで、formulasで定義した著者名で本をグループ化します。これにより、同じ著者の本がまとまって表示されます。 -
order:formula.booktitleを指定することで、カードの表示順をタイトル順にしています。 -
sort:formula.booktitleを昇順(ASC)で並べ替える設定です。 -
image: formula.bookimage: カードの画像として、formulasで定義した書影のURLを使用します。これが書影を表示する重要な設定です。
このように設定することで、Kindleから同期した本の情報を、著者ごとにまとめられた本棚としてObsidian上で視覚的に閲覧できるようになります。
Discussion