임베디드 게시물에서 수학식이 렌더링되지 않음

웹사이트에 몇 개의 게시물을 임베드하여 사용하고 있습니다. 그런데 임베드된 게시물 안의 수식이 렌더링되지 않습니다.

이전 플러그인을 사용했을 때는 embed.js.erb 파일을 패치하여 수식이 렌더링되도록 할 수 있었습니다. discourse-math 플러그인에서도 임베드에서 작동하도록 할 수 있는 방법이 있을까요?

제가 말씀드리는 내용의 예시입니다 (아래로 스크롤하여 확인해 주세요).

감사합니다!

해결책은 언급하신 GitHub 스레드의 마지막 댓글에 있는 것 같습니다:

해당 방법을 시도해 보셨나요?

네, 그리고 이것은 구형 서드파티 확장인 discourse-mathjax와 함께 작동합니다. 하지만 Discourse는 자체적으로 discourse-math 확장을 구현했으며, 이 해결책은 작동하지 않습니다.

문제가 플러그인 때문이라고 생각하지 않습니다. 새 플러그인도 여전히 수식 스팬(math spans)을 사용하고 있습니다(페이지 소스를 검사해 보시면 알 수 있습니다). 따라서 기존 해결책이 여전히 작동해야 합니다. 그때 이후로 변경된 부분은 Discourse 코드가 게시물을 임베드하는 방식일 수 있습니다.

정리하자면, 이 패치가 여전히 작동해야 한다고 제안하는 건가요?

@@ -70,5 +70,11 @@
   </head>
   <body>
     <%= yield %>
+    <script type="text/x-mathjax-config">
+       MathJax.Hub.Config({
+        extensions: ["jsMath2jax.js"]
+      });
+    </script>
+    <script src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
   </body>
 </html>

현재 내장된 코멘트 섹션에서 코드를 찾지 못하겠습니다.
패치를 실제로 적용하고 있는지 확인해 주시겠습니까?

./launcher enter app
cat app/views/layouts/embed.html.erb

그 패치의 문제는 mathjax.org에서 JavaScript를 로드하려고 한다는 점인데, 현재 Discourse 버전은 기본적으로 이를 차단하는 것 같습니다. cors origins 사이트 설정에 https://cdn.mathjax.org를 추가해야 할 수 있습니다.

그게 문제일 수도 있겠네요! 그렇다면 cors origins 사이트 설정은 제 discourse 서버에 해야 하는 건가요, 아니면 임베딩하는 웹 서버에 해야 하는 건가요?

이것은 Discourse 설정 중 하나입니다.

이 방법으로 해결되었습니다! 정말 큰 도움이 되었습니다. 보안 관련 사이트 설정은 전혀 생각하지 못했거든요.

정말 감사합니다!

여기서 더 나은 방법을 사용할 수 있을지 궁금합니다. @sam 플러그인이 app/views/layouts/embed.html.erb 파일을 어떻게 수정할 수 있는 방법이 있을까요? 그러면 Discourse가 임베디드 iframe 내부에서 MathJax/KaTeX JS를 로드할 수 있을 텐데요?

이러한 변경을 분명히 지지합니다. 다만 코어에 어떤 종류의 훅을 추가해야 할 수도 있습니다. 예를 들어, discourse/lib/discourse_plugin_registry.rb at 7829558c6d42b5f0dfbb0c2351fb332a940d651e · discourse/discourse · GitHub 에 embed_javascripts 같은 것을 추가하는 방식이죠.