참조 없이 플러그인 개발하기

지난 한 주 동안 플러그인을 사용하여 포럼에 사용자 정의 라우트를 설정하려고 시도했습니다. 해당 라우트는 누구나 공개적으로 접근할 수 있어야 합니다. 플러그인이 지정된 라우트에서 handlebar 템플릿의 HTML을 단순히 표시하도록 하고 싶습니다. 하지만 템플릿이 렌더링되지 않습니다.

Discourse 플러그인 개발 방법을 조사해 보았지만, 실질적인 문서를 찾지 못했습니다. 플러그인 개발에 관한 질문이 올라오면 항상 관리자용 플러그인 개발 ‘가이드’ 링크가 제시되는데, 그 가이드에는 보라색 문어 촉수가 표시되는 내용만 나와 있습니다. 템플릿이 표시되지 않는다는 질문이 올라오면 Ember 문서의 라우터 섹션으로만 안내받습니다.

그 가이드는 괜찮지만, 배경에서 일어나는 마법 같은 과정에 대한 설명이 없어서 그 정보를 바탕으로 직접 적용해 보기가 어렵습니다. 공개 라우트를 표시하려면 어떻게 해야 할까요? plugin.rb 파일은 Discourse에 의해 어떻게 처리되나요? 'add_admin_route’와 같이 내 애플리케이션에 라우트를 추가할 수 있는 다른 Discourse 전용 코드나 문장이 있나요? 라우트가 해결되도록 따라야 하는 특정 파일 구조가 있나요?

결국, 복잡한 플러그인을 개발하는 개발자들은 어디에서 문서를 참고하고 있을까요? 저는 경험이 있는 개발자이지만, 현재 제공되는 플러그인 개발 가이드나 정보에 따르면 포럼에 공개 라우트를 추가하고 해당 라우트에서 템플릿을 렌더링하는 것이 상당히 복잡합니다.

도움을 주시면 감사하겠습니다. 감사합니다! :heart:

Michael, 정답은 이렇습니다: 선행 기술(prior art)을 문서로 참고하는 것은 금방 구식이 되고 표면적인 내용만 다루는 경향이 있습니다. 반면, 인기 있는 플러그인은 보통 매우 최신 상태로 유지되며 더 복잡한 사용 사례를 다룹니다.

지난 몇 년간 저와 제 동료들이 배운 바로는, 기존 저장소를 참고하여 접근 방식을 이해하는 것이 가장 좋습니다.

어떻게 해야 하는지 예시로, 공식 Discourse 팀(official)의 저장소, Pavilion(pavilion)의 저장소, 그리고 제 저장소를 순서대로 참고해 보시길 권해 드립니다. :sweat_smile:

플랫폼이 의존성(newer versions of dependencies)의 새로운 버전과 새로운 기능으로 진화함에 따라, 플랫폼에 추가된 새로운 기술을 활용하는 공식 플러그인은 훌륭한 시작점이 될 수 있습니다.

원하는 것과 기능적으로 유사한 일을 하는 플러그인을 찾아 그 접근 방식을 그대로 따라 해보세요.

여기 하나의 라우트를 추가하는 플러그인의 예시가 있습니다: