埋め込み投稿で数式がレンダリングされない

ウェブサイト内に埋め込まれた投稿がいくつかあります。それらの投稿内の数式が埋め込み内でレンダリングされていません。

以前のプラグインでは、embed.js.erb ファイルをパッチ適用することで数式のレンダリングが可能でした。discourse-math を使って、埋め込み内でも動作するようにすることはできますか?

参考になるサンプルはこちらです(ページ下部までスクロールしてください)。

よろしくお願いいたします!

参照されている GitHub スレッドの最後のコメントに解決策が記載されているようです。

試されましたか?

はい、その方法は旧サードパーティ製拡張機能である discourse-mathjax で動作します。ただし、Discourse には独自の discourse-math 拡張機能が実装されており、この解決策は機能しません。

プラグインに問題があるとは思えません。新しいプラグインも数式スパンを使用しています(ページのソースを確認すればお分かりいただけるはずです)。したがって、解決策は引き続き有効であるはずです。その後に変化した可能性があるのは、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 を追加する必要があるかもしれません。

「いいね!」 2

それかもしれません!では、cors origins サイト設定は、Discourse サーバー側にあるのか、それとも埋め込みを行っている Web サーバー側にあるのでしょうか?

Discourse の設定の 1 つです。

「いいね!」 2

これで解決しました!お手伝いいただき、本当にありがとうございます。セキュリティに関するサイト設定については、全く思いもよりませんでした。

本当にありがとうございました!

「いいね!」 2

ここで何かより良い方法があるか気になります。@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 です。

「いいね!」 4

このトピックは1236日後に自動的に閉じられました。返信はもう許可されていません。