Basesを使う前の準備

 Obsidian Basesには自分で設定するプロパティ(以下、公式にならって ノートプロパティ と呼ぶ)を設定していなくても使える ファイルプロパティ がある。このファイルプロパティにはファイル作成時間を示すfile.ctimeというプロパティが標準で備わっているのだが、今回はこちらは使わない。なぜかというと、file.ctimeはファイルシステム上の作成日時であり、同期やファイルのコピー・移動などによって変化する可能性がある。

 なのでノートプロパティに、たとえばcreatedとかcreation_dateとか、わかりやすいプロパティを自分で設定するのがよい。かといって自分でいちいち時刻を入力するのは面倒である。そのため、TemplaterやQuickAddといったプラグインを使って、ファイル作成と同時に時刻を自動で入力するなど対応する必要がある。
 しかし、それもそれで面倒といえば面倒な場合、ファイル作成時や更新時を自動でノートプロパティに入力してくれる専用のプラグインの使用が考えられる。わたしはUpdate modified dateを使用している。

 Update modified dateはインストールして設定すれば、ファイルを編集していると勝手に作成日時や更新日時を自動でノートプロパティに挿入してくれる。ファイルの先頭にプロパティの区切りがない場合や、作成日時を挿入するためのプロパティが設定されていない場合は、それらもいっしょに補ってくれる。ちなみに作成日時のプロパティにすでに値がある場合は上書きしない。
 とりあえず設定すべきなのは4箇所。

  1. Modified date property: ノートプロパティにファイル更新日時を挿入するためのプロパティ名を決める。わたしはmodifiedにしている。
  2. Created date property: ノートプロパティにファイル作成日時を挿入するためのプロパティ名を決める。わたしはcreatedにしている。
  3. Date format: 日付をどういうフォーマットで自動挿入するか決める。わたしはYYYY-MM-DD HH:mm:ssにして時分秒まで記入しているが、今回の用途的には年月日だけでも事足りる。
  4. Exclude folders: Update modified dateの対象から外したいフォルダを指定する。たとえばテンプレートファイルなど。

 ただ、厳密にいうとこのプラグインはファイルを作成した瞬間ではなく、ファイルを初回に編集したときにプロパティに値を挿入する。つまり、Obsidian Webclipperなどでクリップするだけして放置→同期してしまうと、けっきょく作成日時がずれてしまう可能性がある。

Basesで今月作成したファイル一覧を内部リンク形式で取得する

 新規ベースを作成後、必要な手順は3つ。

  1. フィルターで今月作成したファイルを絞り込む。
  2. 一覧にしたファイルをリンクとして取得できるようにするため、プロパティに数式を追加。
  3. ベース左上にある「n件の結果」をクリックしてコピー、任意のファイルにペースト。

 順に説明する。

1. フィルターで今月作成したファイルを絞り込む

 フィルター > このビュー > 次のすべてが真 > </>をクリックして簡易フィルターから詳細フィルターに切り替え

 それらの操作を行ったら詳細フィルターに以下のように追加する。
 createdとなっているところは先ほど自分で決めたプロパティ名に入れ替えて使おう。

date(created).year == today().year &&
date(created).month == today().month

 date(created).year == today().yearのみ指定すると、2026年に作成したファイルの一覧が取得できる。

 このやり方は、一度設定してしまえば自分でなにもしなくてもファイル一覧が取得できるので楽だが、うっかり月をまたいでしまったときに困る。2026年12月31日から2027年1月1日になった場合、表示されるのは2027年1月に作成したファイルのみである。

 なので、解決法としてはかなりアホっぽいのだが、いっそ手打ちにしてしまったほうがいい。つまり、2026年10月に作成したファイル一覧を絞り込んで取得したいのであれば次のようになる。

date(created).year == 2026 &&
date(created).month == 10

 毎月地味な手間が発生するが、わたしのようにぼんやりしていて物忘れが多い人間には気楽でいい。これなら任意の過去の年月を指定して作成したファイル一覧が取得できる。

info

作成したファイルに含めたくないノートなどがある場合、ここでいっしょに指定しておくのがいい。
たとえば「Template」という名前のフォルダを除きたいのなら、
フィルター > フィルターを追加 > フォルダ (file.folder) is not Template
を指定すればよい。

2. 一覧にしたファイルをリンクとして取得できるようにするため、プロパティに数式を追加

 プロパティ > 数式を追加をクリック、数式の欄に次のように記入する。

"[[" + file.name + "]]"

 表示名は適当に「リンク」などとしておけばよい。
 その後、ちゃんと追加できたか確認する。もう一度プロパティをクリックして、さきほど作成した「リンク」にチェックが入っていることを確かめる。

info

プロパティに追加した数式は、もとのファイルには影響を及ぼさない。
(勝手にノートプロパティに値を追記して汚したりはしない)

 さらにここで表示したいプロパティを選んでおこう。それらもまとめてコピーできるからだ。
 まず、「リンク」は=ファイル名を含んでいるので「name」のチェックは外していいだろう。
 あとは好きに選ぶ。たとえばノートプロパティにdescriptionを設定していて、それもいっしょにコピーしたいのであればチェックを入れておこう。

3. ベース左上にある「n件の結果」をクリックしてコピー、任意のファイルにペースト

 ここまでの操作の結果を確認しておこう。狙ったファイルが絞りこめているだろうか。問題なければベース左上にある検索結果をクリック。「クリップボードにコピー」を選べばOK。そのままペーストすると表形式でペーストされる。プレーンテキストとしてペーストしても一項目一行でペーストされる。

【応用編】今月読んだ本や見た映画一覧をリンク形式で取得する

準備

 以下をやっておく必要がある。

  1. 書籍や作品ひとつごとにノートもひとつ作っておく。
  2. そのカテゴリのノートをすべて取得できるようにしておく。分類方法はフォルダでもタグでもノートプロパティでもよい。たとえば#bookをつける、書籍フォルダをつくるなど。
  3. 各書籍や作品のノートに読み終わった日時を記入するためのプロパティ名を設定する。たとえばwatch_dateなど。わたしは本も映画もfinishedを使っている。自分がしっくりくる表記を選べばよい。
  4. 3のプロパティタイプをリスト型にしておく(日付型や、日付・時刻型ではない)。これは再読や再鑑賞時のデータも取得することを念頭に置いている。

プロパティのタイプを変更するには、プロパティ名の横にあるタイプアイコンをクリックし、別のオプションを選択します。1

フィルターで今月読んだり見たりしたファイルを絞り込む

 フィルターをクリックし、以下の数式を入力する。finishedとなっている箇所は自分で決めたプロパティ名を入れる。年月が入っているところは自分で取得したい期間に変更しよう。日付フォーマットも自分が普段から使用しているものに合わせて使う。

finished.toString().contains("2026-10")

 finishedに含まれているのはとうぜん日付だが、プロパティタイプをリスト型にしているためテキストとして扱う。リスト型だと、ひとつのプロパティにたいして複数の値をもたせることができる。再読や再鑑賞時に便利だ(というか最初はdateでどうにかしようとしたけどうまくできなかった)。
 いちおうこれで運用しているけど問題はないはず。なにかあったら追記します(というか疑問点やバグはたぶんAIに聞いたら解決してくれると思う……)。

 あとは自分が取得したい種類のファイルが表示されるようにタグやフォルダ、ノートプロパティを使ってフィルタリングしよう。
 一覧をリンクとして取得するやり方は、上記したものと変わりない。プロパティ > 数式を追加を選んで"[[" + file.name + "]]"を記入すればいい。

コピー前
コピー&ペースト後。ちゃんとリンクとして機能している