플러그인과 테마 컴포넌트 중 언제 사용해야 할까요?

몇 가지 뷰에 작은 수정이 필요합니다:
예를 들어:

CSS만 살짝 수정하는 것처럼 아주 작은 변경 사항인 경우에도 각각 플러그인을 만들어야 하나요?
도움 주셔서 감사합니다.

아니요, 플러그인은 백엔드를 변경하려는 경우에만 필요합니다.

단순한 로컬 변경이라면 Admin → Customize → Theme로 이동하여 새로운 Theme Component에 변경 사항을 입력한 후, 현재 Theme에 추가하면 됩니다.

특히 다음 링크를 참고해 보세요:

https://meta.discourse.org/c/documentation/theme-developers/127

감사합니다!
그럼 라벨을 변경하거나 툴팁을 추가하려면 테마를 만들어야 하고, 페이지에 새 컬럼을 추가해야 할 때(예: 주제 목록)는 플러그인을 만들어야 한다는 건가요?

구분은 다음과 같습니다:

  • API를 변경해야 하는 경우, 예를 들어 .json 라우트의 데이터 변경, 인증 변경, 백엔드 데이터 처리 변경 등이 해당되며, 이 경우 플러그인이 필요합니다.
  • 다른 데이터가 필요하지 않은 많은 프론트엔드 변경 사항의 경우, TC만 있으면 됩니다. 즉, 많은 표현적 변경 사항이나 민감하지 않은 자바스크립트 로직 등이 이에 해당합니다.

그리고 회색 지대(이 경우에는 해당하지 않는다고 생각합니다)는, 사용 가능한 데이터가 없는 경우(예: 사용자 정의 필드)에는 필요한 시점에 JavaScript로 AJAX를 사용해 데이터를 가져오거나, 데이터 시리얼라이저에 데이터를 추가하는 플러그인을 사용하는 방법입니다.

네, 감사합니다. 가이드를 읽었는데, 로컬에서 TC를 설정하고 가져오는 방법을 이해하지 못하겠습니다. 원격 서버에 대한 예시만 있거든요.

이 훌륭한 도구를 사용하여 로컬에서 TC를 쉽게 생성하는 것을 권장합니다:

CSS 변경 사항이 아주 작은 것이 아니라면, 원격 테마나 CLI 도구를 사용하는 것을 권장합니다.

다만 "테마 설치"를 클릭하면 테마를 생성할 수 있는 다이얼로그가 표시되며(컴포넌트 페이지에서 수행하는 경우 테마 컴포넌트를 생성할 수 있습니다).

카테고리 토픽 목록에 “created_at” 열을 추가하고, 날짜 형식을 "tiny"에서 확장된 형식(예: DD/MM/YYYY HH:MM)으로 변경해야 합니다.

템플릿에 새로운 내용을 추가하고 싶다면 GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes · GitHub 에서 시작하는 것이 좋습니다. 하지만 거기에 컬럼을 추가하는 방법을 모르겠습니다. 자바스크립트로 뭔가 할 수 있을 것 같지만, 제 전문 분야가 아닙니다.

마우스를 올리면 해당 정보가 표시된다는 것을 알고 계시죠?

Plugin outlet locations theme component도 참고해 보시기 바랍니다. 다만, 해당 위치에 플러그인 아웃렛은 없습니다.

다음과 같은 플러그인 아웃렛이 있습니다: topic-list-after-columns와 topic-list-header-after.

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/list/topic-list-item.hbr#L90

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/topic-list-header.hbr#L27

좋은 지적입니다. 거기에 아웃렛이 없는 게 이상해 보였거든요. 아마 테마 컴포넌트가 그냥 표시하지 않는 것 같습니다.

플러그인 아웃렛 위치 테마 컴포넌트는 현재 원시 아웃렛(raw outlets)을 표시하지 않습니다.

이 테마 컴포넌트는 열을 추가하는 방법을 보여줍니다: GitHub - discourse/discourse-add-category-column · GitHub