테마 컴포넌트를 작성 중인데, 게시물이 렌더링(cooked)되기 직전에 게시물을 꾸미거나 수정하고 싶습니다. 곧 렌더링/표시될 게시물의 렌더링 전(uncooked) 텍스트를 어떻게 가져올 수 있을까요?
"Discourse 테마 개발자 가이드"를 읽어봤는데, pluginAPI의 decorateCooked/decorateCookedElement와 addPostTransformCallback 메서드를 사용해 렌더링된(cooked) 게시물을 수정할 수 있다는 것을 알았지만, 렌더링 되기 전에 게시물을 가져오는 방법은 찾지 못했습니다.
이걸 테마로 구현하고 싶다면 이게 유일한 선택지가 될 겁니다. 사용자 입력(Markdown) → Ruby로 서버 사이드에서 렌더링 → (HTML) 다른 사용자들이 가져오고 꾸밀 수 있게 하는 방식이죠. 저장/답글 버튼을 누르기 전에 호출되는 프롬프트가 됩니다. 초안에는 표시되지 않지만, 말씀하신 대로 게시물을 수정하면 보일 겁니다. 이 문제를 우회하려면, 수정한 게시물로 전환될 때 컴포저가 열리면 저장 시 수행한 변경 사항을 되돌려야 합니다. 더 자세히 설명해 드릴 수도 있지만, 코드를 직접 읽어보시고 실험해 보시는 것도 좋습니다.
감사합니다!
수정: 방금 이런 생각도 들었습니다. 이론적으로는 클라이언트 사이드에서 다시 렌더링하는 것도 가능합니다. 하지만 성능 등 여러 이유로 나쁜 아이디어라고 생각합니다. 아니면 그냥 플러그인을 만들어 보세요: (Superseded) Plugin Tutorial #1 - How to manipulate the text in the composer?