원격 테마에서 사이드바 템플릿 수정

안녕하세요!

원격 테마(remote theme)를 사용 중인데, components/sidebar/common/community-section 템플릿 또는 컴포넌트를 오버라이드하고 싶습니다. 원격 테마에서 /javascripts/discourse/sidebar/common/community-section.hbs 파일을 사용해 핸들바스(Handlebars) 템플릿을 오버라이드해 보았지만, 작동하지 않는 것 같습니다. 또한 api.modifyClass("component:sidebar/common/community-section", ...)를 사용해 보았지만, 이것도 등록되지 않는 것 같습니다.

핸들바스 템플릿이 templates 디렉터리가 아닌 해당 디렉터리에 있는 이유는 무엇인가요? 그리고 이 컴포넌트/템플릿을 수정하는 방법에 대한 조언이나, 제가 잘못하고 있는 부분이 있는지 알려 주실 수 있을까요?

Discourse를 최신 버전의 Ember로 업데이트하는 작업을 진행 중이며, 새로운 기능 중 하나는 템플릿 콜로케이션(template colocation)입니다. 이를 통해 템플릿과 관련 JS 파일을 같은 디렉터리에 배치할 수 있습니다.

올바른 경로는 /javascripts/discourse/components/sidebar/common/community-section.hbs여야 한다고 생각하지만, 직접 테스트해 봤는데 저에게는 작동하지 않습니다… 이 업그레이드를 담당하는 팀과 다시 확인해 보겠습니다.

오, 맞아요! 실제로 제가 시도했던 거예요! 팀과 확인해줘서 고마워요, 크리스!

@kaden-stytstch 님, 안녕하세요 - 사이드바와 Discourse의 몇몇 다른 부분은 템플릿 처리에 대해 더 현대적인 접근 방식(Ember의 Colocated Component Templates)을 사용하고 있습니다. 현재 테마/플러그인에서 이를 오버라이드할 방법이 없지만, 개선해야 할 목록에 올려둔 항목입니다.

해결책이 마련되는 대로 알려드리겠습니다. 앞으로 몇 주 안에 가능할 수 있기를 바랍니다.

@kaden-stytch 최신 버전의 Discourse에서는 ‘colocated’ 컴포넌트 템플릿을 오버라이드할 수 있게 되었습니다. 템플릿 오버라이드에 대한 문서를 다음 링크에 작성해 두었습니다:

상단의 경고 사항을 꼭 읽어보시고 리스크를 충분히 이해하시기 바랍니다. 제 생각에는 사이드바 템플릿 오버라이드는 특히 위험한데, 이는 Discourse에서 매우 적극적으로 개발 및 리팩토링이 진행 중인 영역이기 때문입니다.

말이 되네요! 업데이트 알려줘서 고마워요, 데이비드 :slight_smile: