Mathematik wird in eingebetteten Posts nicht angezeigt

Ich habe einige Beiträge in meine Website eingebettet. Die Mathematik in ihnen wird innerhalb der Einbettungen nicht dargestellt.

Mit dem alten Plugin konnten wir die Datei embed.js.erb patchen, um die Mathematik darzustellen. Gibt es etwas, das wir mit discourse-math tun können, damit es in Einbettungen funktioniert?

Hier ist ein Beispiel dafür, wovon ich spreche (nach unten scrollen).

Danke!

Es sieht so aus, als ob die Lösung im letzten Kommentar des von dir verlinkten GitHub-Threads zu finden ist:

Hast du es bereits ausprobiert?

Ja, das funktioniert mit der alten Drittanbieter-Erweiterung discourse-mathjax. Allerdings hat Discourse eine eigene Erweiterung namens discourse-math implementiert, und diese Lösung funktioniert nicht.

Ich glaube nicht, dass das Problem beim Plugin liegt. Das neue Plugin verwendet immer noch die mathematischen Spans (wie Sie sehen können, wenn Sie den Quellcode Ihrer Seite inspizieren), sodass die Lösung weiterhin funktionieren sollte. Was sich seitdem möglicherweise geändert hat, ist die Art und Weise, wie Discourse-Code die Beiträge einbettet.

Um Missverständnisse zu vermeiden: Meine Aussage ist, dass dieser Patch weiterhin funktionieren sollte.

@@ -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>

Aktuell sehe ich keinen Code in Ihrem eingebetteten Kommentarbereich?
Können Sie bitte überprüfen, ob Sie den Patch tatsächlich anwenden?

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

Das Problem mit diesem Patch könnte sein, dass er versucht, JavaScript von mathjax.org zu laden, was die aktuelle Discourse-Version meiner Meinung nach standardmäßig blockiert? Möglicherweise musst du https://cdn.mathjax.org zur Site-Einstellung cors origins hinzufügen.

2 „Gefällt mir“

Das könnte es sein! Jetzt wird die Site-Einstellung cors origins auf meinem Discourse-Server oder auf dem Webserver liegen, in den ich einbinde?

Es ist eine der Discourse-Einstellungen.

2 „Gefällt mir“

Das hat bei mir funktioniert! Vielen Dank für die Hilfe; die Sicherheitseinstellungen auf der Website waren mir noch nie in den Sinn gekommen.

Vielen Dank!

2 „Gefällt mir“

Ich frage mich, ob wir hier etwas Besseres machen könnten. @sam, gibt es eine Möglichkeit, dass ein Plugin die Datei app/views/layouts/embed.html.erb auf irgendeine Weise modifiziert? Damit Discourse MathJax/KaTeX JS innerhalb des eingebetteten Iframes laden könnte?

Ich unterstütze eine solche Änderung mit Sicherheit. Wir müssten jedoch möglicherweise eine Art Hook im Kern hinzufügen, wie zum Beispiel: (vielleicht ein embed_javascripts in discourse/lib/discourse_plugin_registry.rb at 7829558c6d42b5f0dfbb0c2351fb332a940d651e · discourse/discourse · GitHub).

4 „Gefällt mir“

Dieses Thema wurde nach 1236 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr erlaubt.