【第2回】ノートに情報を足したら一覧ができた——YAML と Dataview の話
フォルダ整理の次に欲しくなったのは横断検索。ノートに「作った?」「評価は?」を書き足したら、リピ確定レシピの一覧が勝手にできあがった
← 前の記事: 【第1回】あの動画どこだっけ——Obsidian で動画メモを始めた話フォルダで整理しても、新しい壁が出てきた
前回、ノートをフォルダで分けることで「あの動画どこだっけ」はほぼ解決しました。料理ならジャンル別、IT ならチャンネル別、音楽なら気分別——自分がどうアクセスしたいかに合わせてフォルダを分けたことで、目当てのノートは探せるようになりました。
でも、しばらく使い続けるうちに、新しいことが気になってきました。
料理ノートが増えてきたとき、こんなことを考えました。「このうち、実際に作ったことがあるやつだけ、まとめて見たい」。
ジャンル別のフォルダには、まだ試していないレシピも、一度だけ作ったレシピも、もう何度もリピートしているレシピも、全部が一緒に入っています。「揚げ物」フォルダを開いても、その中から「作ったことがある」ものだけを見つけるには、1 本ずつノートを開いて確認するしかありません。
フォルダを 1 つずつ開いて確認するのは面倒です。「ノート自体に情報を書き足して、その情報を使って絞り込めないか」——そこから考え始めました。
ノートに情報を「付け足す」
「条件で絞り込む」には、まずノート自体に「絞り込むための情報」が必要です。
「作ったことがあるかどうか」は、ノートのタイトルには書いていません。フォルダ名にも入っていません。どこかに書き足す必要があります。
そこで使うのが、ノートの一番上に情報を追加できる仕組みです。ノートの先頭に --- という線で囲んだエリアを作ると、そこに「項目名: 値」の形でデータを書いておけます。
---
attempted: true
rating: 4
---
これがノートの冒頭に書かれているだけで、Obsidian はこのノートが「attempted が true で、rating が 4 のノートだ」と認識してくれます。
この書き方を YAML(ヤムル)といいます。難しそうな名前ですが、やっていることはシンプルです。項目名: 値 の形でデータを書くルールのこと。プログラミングとは無関係で、特別な記号も覚えなくて大丈夫です。設定ファイルや日常的なデータ管理に広く使われている書き方です。
そして、ノートの先頭の --- で囲まれた部分のことをフロントマターと呼びます。「ノートの表紙」みたいなものだと思えばいいです。本文の前に、このノートに関するデータをまとめて書いておく場所です。
私がレシピノートに足したのは 2 項目だけです。
attempted: true——作ったことがある(falseなら未挑戦)rating: 4——自分の評価。0〜5 の数字で
1 ノートあたり 2 行増えるだけ。書く手間は大したことありません。
YAML を付けたノートの全体像
実際のノートはこんな形になりました。
---
title: "ふわふわ唐揚げの作り方"
channel_title: "◯◯チャンネル"
tags:
- 鶏肉
- 揚げ物
rating: 4
attempted: true
---

二度揚げがポイント。1回目は低温、2回目は高温で仕上げる。
衣は片栗粉だけ。卵は使わない。
--- で囲まれた上の部分がフロントマター。--- の下からが普通のノート本文です。動画の埋め込みリンクも、ひと言メモも、前回と何も変わりません。
変わったのは、上に rating: 4 と attempted: true の 2 行が増えたことだけです。
これをレシピノートひとつひとつに書き足していくと、各ノートが「自分がそのレシピをどう評価しているか」という情報を持つようになります。でも、この時点ではまだ一覧にはなっていません。フロントマターに書いたデータは、ノートを 1 つひとつ開けば見えますが、それだけです。ここからが本題です。
「条件に合うノートを自動で集める」仕組み
YAML で情報を付けただけでは、まだ自分でノートを確認しなければなりません。欲しいのは「attempted が true のノートだけを全部集めて、一覧にしてくれる仕組み」です。
それが Dataview というプラグインで実現できます。
Obsidian にはプラグインという拡張機能があって、後から追加して機能を増やせます。Dataview はその中でも特に人気のあるプラグインで、何をしてくれるかというと「ノートのフロントマターに書いたデータを使って、条件に合うノートを集めて一覧にしてくれる」という機能です。
使い方はシンプルで、「どんな条件でノートを集めるか」を書いたノートを 1 つ作るだけでいい。そのノートを開くと、条件に合うノートの一覧が自動で表示されます。
条件の書き方の例はこうです。
table rating as "評価"
from "レシピ"
where attempted = true
3 行しかありません。
1 行目の table rating as "評価" は「評価(rating)の値をテーブルに表示してね」という意味。2 行目の from "レシピ" は「レシピフォルダの中から探してね」という意味。3 行目の where attempted = true は「attempted が true のノートだけに絞ってね」という条件です。
このクエリを書いたノートを開くと、レシピフォルダ内の「作ったことがある」ノートが全部テーブルとして表示されます。フォルダを 1 つずつ開かなくても、自動で集まってきます。
リピ確定レシピの一覧ができた
さらに絞り込めます。「作ったことがある」かつ「評価が 4 以上」のものだけにするには、こうです。
table rating as "評価"
from "レシピ"
where attempted = true and rating >= 4
最後に and rating >= 4 を足しただけ。これで「作ったことがあって、おいしかったもの」だけが残ります。
私が勝手に「リピ確定レシピ」と呼んでいる一覧が、これで自動でできあがりました。
管理しているレシピノートは 259 ファイルあります。この量になると、手動でひとつずつ確認するのは完全に無理です。Dataview がなければ確実に破綻していました。
YouTube のプレイリストでは「作ったかどうか」「おいしかったかどうか」は記録できません。プラットフォームが用意した「高評価ボタン」はあっても、「試したことがある」「評価 4 点」というような自分だけの基準は持てません。それができるのは、自分のノートだからです。自分が書き込んだ情報を、自分が設定した条件で絞り込めます。
新しいレシピノートを作って attempted: true、rating: 5 と書いておけば、次にそのノートを開いたとき、リピ確定レシピの一覧にそのノートが加わっています。管理する手間は何もありません。ノートを書いた瞬間から、一覧が更新されています。
この一覧を眺めるのが、地味に楽しいんです。「これ好きだったな」「そういえばしばらく作ってないな」と気づくきっかけにもなります。料理の記録が、単なるメモではなく、ちょっとしたデータベースになってきた感じがあります。あなたも、使い始めたらわかると思います。
次の記事では
一覧ができてくると、今度は各ノートの中身が気になってきます。
今のノートは、埋め込みリンクとひと言メモだけです。シンプルで十分なことも多い。でも「あのノートに書いてあった、あのポイント」を素早く確認したいとき、動画を最初から再生し直すのは手間がかかります。
次の記事では、動画を見ながらメモを取る方法を紹介します。「この部分が重要」という場面に、その時間を記録しておくことで、後で見返すときに動画の目当ての場面にすぐ飛べるようになります。ノートの密度がぐっと上がります。