왜 Discourse 커스터마이징이 이렇게 어려운가요?

CSS를 편집하려면 컴포넌트를 생성하고 CSS 파일을 만들어야 하며, 그렇게 하면 제대로 동작합니다. 하지만 예를 들어 'Discourse Topic Cards’와 같은 다른 컴포넌트를 추가한 뒤, 커스텀 CSS 파일로 돌아가서 변경 사항을 적용하고 저장을 클릭한 다음 페이지를 새로고침하면 커스텀 CSS가 적용되지 않습니다.

또한, 관리자 영역에서 템플릿을 편집할 수 있는 방법이 왜 없는지 궁금합니다. ‘Discourse Topic Cards’ 템플릿을 편집하려면 discourse 도커에 ssh로 접속하여 변경 사항을 적용해야 하는 것인가요?

워드프레스가 더 익숙하신가요? 그렇다면 이해하기가 더 쉬울 겁니다. 업데이트 시 모든 수정 사항이 사라지기 때문에 코어, 플러그인, 테마를 직접 편집하지 않는다는 점 때문이죠.

그래서 이러한 어려움의 상당수는 실제로는 디스커스에서 비롯된 것이 아니라, 세상이 어떻게 작동하는지와 관련이 있습니다 :smirking_face:

다른 곳에서 정의된 규칙보다 우선순위를 갖도록 CSS에 !important를 추가해야 할 수도 있습니다. 여러 컴포넌트가 특정 순서로 로드되는 경우 이러한 상황이 발생하면 자연스러운 일입니다. 이는 일반적인 문제이며, 반드시 Discourse에만 국한된 문제는 아닙니다. "해당 컴포넌트가 마지막에 로드되어야 한다"는 식의 가중치 시스템을 도입할 수 있을지 확신은 없지만, 그렇게 하면 관리하기가 매우 어려울 것입니다.

따라서 테마 및 테마 컴포넌트에서는 절대적으로 필요한 경우가 아니라면 CSS에 !important를 사용하지 않는 것이 중요합니다.

원격 테마 컴포넌트를 편집하려면 GitHub에서 포크를 생성하고 나만의 버전을 만들어 보는 것이 가장 쉬운 방법입니다. 단, 원래 버전의 업데이트를 받을 수 없습니다. 원격 컴포넌트를 직접 편집할 수 없는 이유는 사용자 정의가 업데이트와 충돌할 수 있기 때문이며(이를 관리하는 것은 악몽과도 같습니다).

Discourse를 사용자 정의하는 것은 비교적 접근성이 좋습니다. 다만, 어떤 수준의 사용자 정의를 기대하느냐에 따라 달라집니다. 여기서 무엇을 이루고자 하시는 건가요? 도움이 될 수 있을지도 모릅니다. Discourse 팀은 특정 영역에 사용자 정의 기능이 도입될 수 있다면 일반적으로 개방적인 태도를 가지고 있습니다.

수년간 웹사이트를 운영해 온 경험으로, 조금 더 독특한 것을 만들면 성과가 더 좋다고 생각합니다. ‘Discourse Cards Topic’ 템플릿을 커스터마이징하여 일반 토픽 목록에서 포스터, 답변, 조회 수, 활동 통계를 포함하고 싶습니다.

실현 가능한 방법:

  • 기능 요청 (본인처럼 해당 토픽에서 요청)
  • 가능하다면 Marketplace 채널에 게시
  • 코딩 방법 및 테마 컴포넌트 작동 원리 배우기 (#documentation:theme-developers 참고) 및 도움이 필요하면 주저하지 말고 Development 채널에 질문하기

개발자를 위한 문서가 있나요?

Discourse를 익히는 데 도움이 될 수 있는 몇 가지 자료를 소개합니다:

읽는 데 시간을 충분히 투자하세요. 일부 가이드에는 외부 가이드에 대한 링크도 포함되어 있습니다.

질문이 있다면 Development 채널에서 질문해 주세요. :+1:

Discourse Topic Cards 테마 컴포넌트 위에 변경 사항을 추가하려면 다음과 같이 수행할 수 있습니다:

  1. Discourse Topic Cards를 설치하고 활성 테마에 추가합니다.
  2. 새로운 테마 컴포넌트를 만듭니다.
  3. 이 새로운 테마 컴포넌트도 활성 테마에 추가합니다.

서버에 ssh로 접속하거나 소스 코드를 변경하거나 레포지토리를 포크할 필요가 없습니다.

예를 들어, Minima 테마를 위해 Discourse Topic Cards에 몇 가지 변경 사항을 가하기 위해 제가 수행한 작업은 다음과 같습니다:

이렇게 하면 테마의 새 업데이트를 계속 받을 수 있으며, 모든 테마 컴포넌트가 정리되고 분리되어 있습니다(디버깅을 위해 쉽게 비활성화/활성화할 수 있음).

하지만 이 과정이 관리자분들에게 조금 더 잘 설명되어야 한다고 생각합니다.