게시물 편집기 수정을 위한 플러그인 또는 테마 컴포넌트?

솔직히 이 내용을 어디에 게시해야 할지 몰라서, 만약 카테고리가 맞지 않으면 이동해 주셔도 됩니다.

최근 저는 Discourse의 게시글 편집기에서 ruby 태그를 추가할 때의 사용자 경험을 개선하는 데 관심이 생겼습니다. 모르는 분들을 위해 설명하자면, 이 태그는 일본어 텍스트를 작성할 때 텍스트와 함께 "읽기(루비)"를 표시하는 데 사용할 수 있습니다. 예를 들어, 日本語를 日に本ほん語ご처럼 변환하는 것입니다. 그러나 일본어 학습 커뮤니티에서도 많은 사람들이 이 기능의 존재를 모르거나, 긴 문구나 문장에 일일이 작성하는 것이 번거로워서 사용하지 않는 경우가 많습니다. (예로 든 그 한 단어는 <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>에서 생성된 것입니다.)

이러한 이유로, 저는 게시글 편집기 메뉴에 하이퍼링크 옵션과 매우 유사하게 작동하는 옵션을 추가하고 싶습니다. 입력란은 여전히 두 개가 되겠지만, 링크 이름과 URL 대신 본문 텍스트와 읽기(루비)를 구분하는 데 사용될 것입니다. 이는 편집기에 Discourse가 기본적으로 지원하는 순수 HTML만 삽입하기 때문에 서버와 전혀 상호작용하지 않습니다. 사용자가 긴 텍스트 문자열을 작성하고 한 번에 ruby 태그를 추가할 수 있도록, 한 글자씩 처리해야 하는 대신 텍스트를 조금 파싱하는 로직이 필요할 것으로 보입니다.

따라서 질문은 이 기능이 테마 컴포넌트, 플러그인, 아니면 완전히 다른 방식으로 구현하는 것이 가장 좋을까 하는 것입니다. 또한, Discourse 코어가 편집기에 변경 사항을 가할 때 컴포넌트/플러그인/그 무엇이든 깨지지 않도록 하는 방법이 있을까요? 이 기능을 추가하고 싶은 Discourse 인스턴스는 Discourse에서 호스팅되는 것이므로, 해당 유형의 설치 환경과 호환되어야 합니다. 아직 해당 사이트 관리자에게 확인해야 하지만, 준비가 완료되면 설치를 설득하는 데 큰 문제가 없을 것 같습니다(물론 여기서 조언을 받은 후 먼저 그들에게 확인하겠습니다).

도와주시거나 조언해 주시면 감사하겠습니다!

여기서는 테마 컴포넌트를 사용하는 것이 최선의 방법입니다! 코어를 변경할 필요가 없으며, 이를 추가하기 위한 훅도 이미 갖추고 있습니다.

Composer Help Button (현재는 플러그인 형태이지만, 쉽게 테마 컴포넌트로 변환할 수 있음)를 참고해 보세요.

감사합니다. 확인해 보겠습니다. 혹시나 해서 여쭤보는데, 호스팅 사이트에서도 테마 컴포넌트를 추가할 수 있나요? 제가 시간을 들이기 전에 제가 사용하는 사이트의 관리자가 실제로 이걸 설치할 수 있는지 확인하고 싶습니다.

네, 호스팅 사이트에서는 관리자가 테마 구성 요소를 설치할 수 있습니다. 일반적인 테마 문서는 여기에서 확인할 수 있습니다.

다음은 작성기에 도구 모음 버튼을 추가하는 테마 구성 요소의 예시입니다:

https://github.com/discourse/DiscoTOC/blob/master/common/header.html#L373-L393