여러분 안녕하세요,
이번 주에 우리는 Discourse 테마 커스터마이징을 위한 첫 번째 스프린트를 시작했습니다. 디자인이 기존 Discourse 테마와 상당히 다르기 때문에 상당수의 파일을 수정해야 할 것임을 알고 있었습니다.
우리의 접근 방식은 매우 간단합니다: SASS만으로 필요한 것을 달성하려 하고, 필요한 경우 해당 .hbs/.hbr 파일을 오버라이드합니다. 후자의 경우 유지보수 리스크가 일부 증가한다는 것을 알고 있습니다(뷰에 전달되는 속성이 이름이 변경되거나 제거되면 템플릿이 깨지므로). 우리는 이러한 상황이 발생할 리스크를 자체 인프라를 유지보수하는 것과 비교해 본 결과, 비영리 고객에게 discourse.org 호스팅이 더 큰 가치를 제공한다고 결론 내렸습니다. 사이트에 일부 모니터링 코드를 추가하고, 이런 일이 발생했을 때를 위한 대응 계획을 마련할 것입니다. 또한 이런 일이 발생하더라도 쉽게 수정할 수 있을 것으로 추정됩니다.
자, 이제 이 게시물의 본론으로 들어가겠습니다. 우리는 주제 목록(Topics List) 뷰를 피드(feed)와 같은 경험으로 전환하는 방법을 알아내야 합니다. 즉, 각 주제(Topic) 아래에서 답변 게시글이 댓글로 렌더링되도록 해야 합니다.
우리가 구축해야 할 것의 예시 이미지입니다(현재 각 주제당 댓글 1개만 표시되고 있으며, 경우에 따라 더 많은 댓글을 표시해야 합니다)
현재 진행 상황
@iainbamboo 님이 이 문제를 해결하기 위해 깊이 파고들었습니다:
- 게시글 데이터가 이미 주제 목록에 있는지, 단순히 템플릿만 변경하면 되는지 → 아니요, 없습니다.
- 템플릿에서 렌더링할 수 있도록 각 주제의 게시글 데이터를 목록에 추가하는 방법은 무엇인지?
- 이것이 올바른 접근 방식인지?
- Discourse Timeline과 유사한 방향으로, 전송되는 모델에 데이터를 추가하기 위해 루비 코드를 수정하는 것(플러그인으로 구현하는 경우)을 고려해야 하는지? 플러그인을 만들면 discourse.org에서 사용할 수 있는지?
- 에임버(Ember)에서 데이터를 가져와서 각 주제의 게시글을 가져오기 위해 서버로 여러 AJAX 요청이 발생하여 로딩이 느려지는 비용을 감수하는 것(레이트 리밋에 도달할 위험이 있음)
- 루비 코드를 수정하지 않고 이것을 할 수 있는지?
여러 곳을 상당히 둘러보고, Discourse 개발 가이드를 읽으며 소스 코드를 검토한 끝에, 우리는 이 문제를 해결하는 최선의 방법에 대해 전문가의 조언이 필요하다고 결론 내렸습니다.
그리고 이제 우리가 여기에 온 것입니다 ![]()
