obsidian-bases について
Obsidian Bases Skill は、Obsidian の保管庫内でノートを表示する `.base` ファイルの作成と保守を支援します。タスク管理や索引などの構造化ビューを作る人向けに、YAML、数式、フィールド、表示結果の検証手順を示します。
主な機能
- 01保管庫のプロパティと規約を確認
- 02フィルター、ビュー、表示項目を定義
- 03数式の追加と任意値への対応
- 04YAML とプロパティ参照の検証
- 05Obsidian で表示結果を確認
活用シーン
- 01タスク管理用のビューを作成
- 02読書リストのビューを作成
- 03デイリーノートを索引化
- 04base 内の数式やフィルターを調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ timlai666/ skills --skill obsidian-basesインストール後、Claude Code で/obsidian-basesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/examples.mdFUNCTIONS_REFERENCE.mdproperties-and-formulas.mdschema-and-views.md詳細
Obsidian Bases スキル
ワークフロー
- 編集時は対象の
.baseファイルを読み、ビューを作成または変更する前に、ボルト内の関連するノートのプロパティと規則を確認します。 - ベースに含めるノートを定義し、ビューと表示するプロパティを選択します。ネストされたフィルター、グループ化、集計、またはビュー固有の設定を使用する前に、スキーマとビューを読んでください。
- 必要に応じて数式を追加します。ファイルプロパティ、
this、日付演算、数式の例についてはプロパティと数式を読み、実際に使用する関数については関数リファレンスを参照してください。 - タスクトラッカー、読書リスト、またはデイリーノートのインデックスを作成する場合は、対応する完全な例を読んでから調整してください。ボルトで実際に使われているフィールド名と型を維持してください。
- 有効な YAML を含む
.baseファイルを目的のボルト内の場所に保存し、以下の検証を実行します。
最小限のベース
ベースは、拡張子が .base の YAML ファイルです。この例では、アクティブなノートを一覧表示し、日付から算出した列を計算します。status と due_date はボルトに合わせて調整してください。
filters:
and:
- 'file.ext == "md"'
- 'status == "active"'
formulas:
days_until_due: 'if(due_date, (date(due_date) - today()).days, "")'
properties:
formula.days_until_due:
displayName: "Days Until Due"
views:
- type: table
name: "Active Notes"
order:
- file.name
- status
- formula.days_until_due
グローバルフィルターはすべてのビューに適用され、ビューのフィルターはそのビューをさらに絞り込みます。 完全なスキーマと、テーブル、カード、リスト、マップの例については、 スキーマとビューを参照してください。ビューを選ぶ前に、必要なプラグインと ビュー固有の設定を確認してください。
プロパティと数式のリファレンス
- ノートのプロパティはフロントマターに由来します。例:
note.authorまたはauthor。 - ファイルプロパティはファイルを表します。例:
file.name、file.mtimeなど。 - 数式のプロパティは定義を参照します。
formula.my_formulaに対応するmy_formulaエントリがformulasの下に必要です。 - 関連するノートを確認し、値の欠落やデータ型を調べます。すべてのノートにプロパティが存在する必要はありません。任意の入力を使う箇所では、ガードを設定してください。
ファイルプロパティの完全な一覧、this の動作、数式の例については、
プロパティと数式を参照してください。
よくある落とし穴
YAML の引用符
二重引用符を含む式は、単一引用符で囲んでください。コロンの後にスペースが続く場合など、YAML が構造として解釈する可能性のある表示文字列は引用符で囲んでください。
Incorrect: displayName: Status: Active
Correct: displayName: "Status: Active"
Incorrect: label: "if(done, "Yes", "No")"
Correct: label: 'if(done, "Yes", "No")'
期間と値の欠落
日付を減算すると Duration が返されます。数値関数を適用する前に、.days、
.hours、.minutes、.seconds、.milliseconds などの数値フィールドにアクセスしてください。
Incorrect: (now() - file.ctime).round(0)
Correct: (now() - file.ctime).days.round(0)
変換または減算を行う前に、任意の日付入力をガードしてください。
formulas:
days_until_due: 'if(due_date, (date(due_date) - today()).days, "")'
日付式の例については、 日付演算を読んでください。
ベースの埋め込み
![[MyBase.base]]
![[MyBase.base#View Name]]
検証
- 実際の
.baseを YAML として解析します。引用符のエラーを解消し、フィールドにスキーマの選択肢ではなく具体的な値が含まれていることを確認します。 - 参照されるすべての
formula.Xがformulasの下に存在することを確認し、ノートのプロパティ名と型を対象のノートと照合します。 - 値が欠落している任意のプロパティを持つノートも含め、フィルター、表示列、グループ化、集計が要求された結果と一致していることを確認します。
- Obsidian で
.baseを開き、影響を受ける各ビューを実際に確認します。数式、フィルター、集計が機能することを確かめ、問題があれば修正して再確認します。 - Obsidian または必要なプラグインを利用できない場合は、未検証のビューや動作を報告します。YAML の解析だけでは、表示や数式の正しさは確認できません。