コンテンツ依存関係(Content Dependency)
あるエントリの出力が別のエントリに依存することを示す記録です。依存先が変わると、依存元のエントリを再処理して、派生した内容の正しさを保ちます。
依存関係とみなすもの
WikiLink、埋め込み、別のエントリを読むプラグインのフックがコンテンツ依存関係を作ります。コンテンツグラフは、こうした関係の供給元の1つです。
伝播
依存関係はキャッシュの無効化に使われます。ノートの内容が変わると、コンテンツ依存関係トラッカー(packages/core/src/content/content_dependency_tracker.ts)が関係を記録し、ビルドコーディネーターが依存するエントリを無効化します。これにより、派生した内容(描画済みHTMLやグラフの辺など)が次のビルドで再生成されます。
依存関係の追跡の流れの例:
- エントリAが編集され、エントリBへのWikiLinkを含んでいる
- コンテンツ依存関係トラッカーが、BをAの依存先として記録する
- 次のビルドでエントリAのフィンガープリントが変わる
- ビルドコーディネーターがエントリBを無効として印を付ける
- エントリBのコンテンツが再処理され、派生した内容の正しさが保たれる
プラグインも、extendContentGraphや独自のフックを通じて別のエントリを読むことで依存関係を作れます。それらはCoreが解決した依存関係とあわせて追跡されます。