ドキュメントは存在しますが、現時点では独立した開発者向けガイドとして提示されているというよりは、断片的な状態です。
主な公式参照先は以下の通りです:
-
config/site_settings.yml:52 のスキーマドキュメント(depends_on、depends_on_values、depends_behavior、dependent_setting_display をカバー)。
-
.skills/discourse-site-settings/SKILL.md:203 のより詳細なガイダンスと例。
-
spec/lib/site_setting_extension_spec.rb:706 のバックエンド動作に関するスペック。
-
frontend/discourse/admin/services/admin-site-setting-store.js:41 のフロントエンド依存関係解決。
-
frontend/discourse/tests/acceptance/admin-site-settings-test.js:142 の UI 例。
基本的な構文は以下の通りです:
child_setting:
default: ""
depends_on:
- parent_setting
depends_behavior: "hidden"
列挙型または文字列型の親設定の場合:
child_setting:
default: ""
depends_on:
- parent_setting
depends_on_values:
parent_setting:
- enabled_mode
- another_mode
depends_behavior: "hidden"
dependent_setting_display: "inline"
重要な制限事項として:依存関係には複数の直接の親設定を含めることができますが、依存関係の解決は推移的ではありません。A → B → C のようなネストされたチェーンの場合、C が B が A によって非表示になっているかどうかを自動的に考慮することはありません。C は B の保存された値のみを評価します。