종속 플러그인 설정은 ... 정말 최고입니다!

오 … 이건 정말:chefs_kiss:

설명해 드릴게요.

최신 버전의 Chatbot에서 선택자(selector)를 확인해 보세요. “off” 상태인 것을 볼 수 있습니다:

이제 선택을 변경해 보겠습니다:

그러면 해당 값이 선택된 경우에만 고려해야 할 설정들이 마치 :sparkles: 마법처럼 나타납니다.

이것은 플러그인 설정에서 불필요한 혼란을 줄이고, 인지 부하를 낮추어 설정을 더 쉽게 만드는 정말 훌륭한 방법입니다 :tada:

Daniel Labelle's Fast Cleaning Challenge

13개의 좋아요

턱이 떨어지다 정말로 아주~ 오래전부터 이런 걸 기다리고 있었어요. 레포지토리를 확인하러 재빨러 달려감 이거에 대한 문서가 있나요?

1개의 좋아요

Chatbot use를 유용한 예시로 자유롭게 사용해 보세요:

지금쯤 코어에도 다양한 용도로 사용되고 있을 거라고 확신합니다 …

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"

열거형(enum) 또는 문자열 부모 설정의 경우:

 child_setting:
    default: ""
    depends_on:
      - parent_setting
    depends_on_values:
      parent_setting:
        - enabled_mode
        - another_mode
    depends_behavior: "hidden"
    dependent_setting_display: "inline"

중요한 제한 사항이 하나 있습니다: 의존성에는 여러 직접적인 부모 설정을 포함할 수 있지만, 의존성 해석은 이행적(transitive)이지 않습니다. A → B → C와 같은 중첩된 체인의 경우, C가 B가 A에 의해 숨겨져 있는지 자동으로 고려하지 않습니다. C는 단순히 B의 저장된 값만 평가합니다.

4개의 좋아요