有相关文档,但据我所知,目前这些文档是零散的,而非作为独立的开发者指南呈现。
主要的权威参考资料包括:
-
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 的存储值。