私の愛しいアップルパイへ
私がZettelkastenを実践するパートナーとしてObsidianを選んだことはあなたもご存知の通りです。
Obsidianでノートを作成していると、タグの情報をはじめとして作成日や作成者などノート自身の情報(メタデータ)を管理したいことは多いでしょう。
そんな時に使えるのがFront Matterです。ObsidianではYAMLというデータ形式に基づいたメタデータの埋め込みに対応していますので、やり方をあなたにもお教えせねばと馬を走らせてきた次第であります。
YAML Front Matterとは?
Obsidianに限らず、Markdown形式ではFront Matter(ノートの1行目)にYAMLを埋め込んでノートのメタデータを管理する方法が標準的に用いられています。このようなメタデータはYAML Front Matter、YFM、または単にYAMLと呼ばれます。
(ちなみに、YAMLは厳密には単にデータ形式の記法であり、ノートのメタデータに限らず設定ファイルやログファイルなどで使われることも多いです。厳密にはYAML = ノートのメタデータではありません。)
YAML Front MatterについてはMulti Markdownの生みの親であるFletcher T. Penney氏による公式のガイドにもちゃんと記載されています。1
そういったことから、ObsidianでもYAMLによるFront Matterへのメタデータ埋め込みに対応しているわけです。
なるべく標準的な技術が用いられているところがObsidianの良いところで、メタデータの埋め込みに関してもこのように標準的な技術が採用しています。つまり、他のアプリからも読み取りしやすく、アプリを移行することになっても安心です。
ObsidianのFront MatterにメタデータをYAMLで挿入する方法
具体的にObsidianのノートにメタデータを埋め込んで行く方法をお教えしましょう。
ObsidianにYAMLの形式でメタデータを埋め込む際には、ノートの冒頭に—(ハイフン3つ)で区切ったブロックに書き込んでいく必要があります。ちなみに、この記述方法も多くの別のノートアプリやテキストエディタでもサポートされていることが多いので安心感があります。
▼具体的なYAML記述例としては以下のようになります。これをノートの1行目に書き込みます。
YAMLは自分で好きに項目を追加できるので、埋め込みたいメタデータがあれば自分なりに構造を追加してもOKです。
例えば、Zettelkastenの実践においてFolgezettelを採用しているのなら、YAML Front Matterにノートのidを埋め込んでおくと良いでしょう。
▼実際にYAMLを埋め込んだノートは以下のようになります。
ちなみに、よく使われる項目を以下に記載しておきましょう。
- title: ノートのタイトル(Markdown標準の項目)
- author: ノートの著者(Markdown標準の項目)
- date: 作成日(Markdown標準の項目)
- keywords: ノートのキーワード(Markdown標準の項目)
- aliases: ノートの別名(Obsidian独自)
- tags: ノートにつけるタグ(Obsidian独自)
foo: bar
は機能しますが
foo:bar
は機能しません。これはYAML公式の記法に即しています。2
下2つはObsidian独自のサポートです。aliasesはノートをリンクする際に候補として表示してくれるので、同じ意味で別の表現がある場合には設定しておくとノートを検索しやすくなります。
例えばDionysus神はローマ名でBacchusとも呼ばれますが、タイトルに両方の名前を埋め込むのは少々エレガントさにかけます。そのため、タイトルにはどちらかを使い、aliasesにもう片方の名称を使ったタイトルを埋め込んでおけば、どちらの名前でも検索できるようになります。Cooooool!
tagsはその名の通りノートにタグを付与するものです。YAML Front Matterでは、#を付ける必要はありません。ちなみに、文中での#によるタグ付与も継続してサポートされています。
なお、現時点(2020-12-01)でObsidianでの標準的なYAMLの構造は定義されていませんが、基本的には今後もMulti Markdownのガイドライン3に沿って考慮されることになると考えられます。
ObsidianのYAML Front Matterのサポートはv0.9.17でtagsに対応するなど、現在でも頻繁に改良が進んでいる部分です。4
Obsidianフォーラムでも活発な議論がされており5、YAMLが一般的な形式であるのは間違いないものの、今後Obsidian上での仕様変更がなされる可能性がある点は注意しておいた方が良いでしょう。
貴下の従順なる下僕 松崎より
参考文献
- Penney Fletcher T., “MultiMarkdown Syntax Guide,” fletcher/MultiMarkdown, Jul. 26, 2020.
- “YAML Ain’t Markup Language (YAMLTM) Version 1.2,” YAML 1.2 (3rd Edition).
- Penney Fletcher T., “MultiMarkdown Syntax Guide,” fletcher/MultiMarkdown, Jul. 26, 2020.
- Licat, “Obsidian Release v0.9.17 – Announcements,” Obsidian Forum, Nov. 21, 2020.
- “Metadata standard – Feature archive,” Obsidian Forum, May 30, 2020.