依存するプラグインの設定は…最高!

おっ… これは本当に 最高 :chefs_kiss: です

図解で説明しましょう。

これが Chatbot の最新版におけるセレクターです。注目してほしいのは、これが「オフ」状態にあることです:

では、この選択を変更してみましょう:

すると、まるで :sparkles: が降り注ぐかのように、その値が選択された場合にのみ考慮すべき設定が表示されます。

これは、プラグイン設定の不要な複雑さを減らし、認知負荷を軽減して設定をよりシンプルにするために、本当に 素晴らしい 方法です :tada:

Daniel Labelle's Fast Cleaning Challenge

「いいね!」 12

あごが落ちる こんなものが来るのを本当に長~い間待ってました。リポジトリを確認しに急ぐ この件に関するドキュメントはありますか?

「いいね!」 1

Chatbotの使用を、その有用な例として自由に活用してください:

そして、今やコアにも多数の使用例があることでしょう…

「いいね!」 2

ドキュメントは存在しますが、現時点では独立した開発者向けガイドとして提示されているというよりは、断片的な状態です。

主な公式参照先は以下の通りです:

  • 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 の保存された値のみを評価します。

「いいね!」 4