Obsidian v1.4.0 にて Properties という機能が追加された。 これは、YAMLフロントマターを拡張し、ユーザーが自由にキーと値を割り当てられるようにしたものである。
これを、読書カードに用いてみようと思う。
読書カード
読書カードの目的は「本を読んだことを記録する」ことである。どんな本を、いつ買って、いつ読んだのか。読書カードを作ればあとで振り返ることができ、読書の実績が明らかになる。 さらに、Obsidianで扱う上では、リンクを貼ることで知見の引用元を示すことにも使えるのだ。
読書カードに求められる内容はたいてい決まっている。ということは、構造化データにできる。 とりあえず私が用いているのは以下のようなものだ。
- タイトル
- 著者
- ページ数
- 出版社
- 発行日
- 初版
- 読了日
書き方の変遷
読書カードの内容は構造化できることはわかった。しかしちょうどいい書き方がこれまで決められなかった。以下はその変遷である。
- 箇条書き
- 一行で
key:value
を書く書式 - 「:」の位置が揃わず見た目が汚い
- 一行で
- 和地空白で見た目を整えた箇条書き
- とくに
key:value
で言うところのkey
部分著 者:
と発行所:
とか
- 3文字に制約されたりする
- 見た目のためにデータを壊してはならない
- とくに
- テーブル表現で整える
- 見出しと本文
- Markdown文書としては正しい形
- 見出し1行、内容1行なのでスカスカしており、目が滑る
- 検索性もなにもない
Obsidian Properties
読書カードの項目に Properties を使うと何が得られるか。
- Properties なら、見た目が整う
- Properties なら、検索性が得られる
- Properties なら、データの構造を損ねない
- Properties なら、入力補助が得られる
- テキスト、テキストリスト、数値、日時などがある
Properties の制約
- 一部予約されている項目がある(aliases, tags, cssclasses)
- キーを定義すると、Vault全体で共通の型として扱われる
- キーの幅は狭く、asciiで11文字くらいしかフルで表示できない
型を壊してみた
- 型に合わない変更を行うと確認のダイアログが出るが、強行できる
Text
をDate
にするなど、扱えないデータの場合は単純に無視されるText
とList
の間には特別な処理が挿入されていて、ある程度互換性がある
読書カードにPropertiesを使ってみた
- 絵文字のプレフィックス📖を付けてみた
- 読書カード用のテンプレートを用意し、あらかじめキーを入力しておいた
- 検索はしやすくなった
["📖/読了日": 2023]
などと絞り込める