La matematica non viene visualizzata nei post incorporati

Ho alcuni post incorporati nel mio sito web. Le formule matematiche in essi contenute non vengono visualizzate correttamente all’interno degli embed.

Con il vecchio plugin, potevamo modificare il file embed.js.erb per far sì che le formule matematiche venissero renderizzate. C’è qualcosa che possiamo fare con discourse-math per ottenere lo stesso risultato negli embed?

Ecco un esempio di ciò a cui mi riferisco (scorri fino in fondo).

Grazie!

Sembra che la soluzione si trovi nell’ultimo commento del thread di Github a cui hai fatto riferimento:

L’hai già provata?

Sì, e questo funziona con la vecchia estensione di terze parti discourse-mathjax. Tuttavia, Discourse ha implementato la propria estensione discourse-math e questa soluzione non funziona.

Non credo che il problema sia legato al plugin. Il nuovo plugin utilizza ancora gli span matematici (come puoi vedere ispezionando il codice sorgente della tua pagina), quindi la soluzione dovrebbe ancora funzionare. Ciò che potrebbe essere cambiato da allora è il modo in cui Discourse incorpora i post nel codice?

Per essere chiari, sto suggerendo che questa patch dovrebbe comunque funzionare?

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

Attualmente, non vedo alcun codice nella tua sezione dei commenti incorporata?
Puoi verificare di applicare effettivamente la patch?

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

Il problema con quella patch potrebbe essere che tenta di caricare Javascript da mathjax.org, che, a quanto pare, la versione corrente di Discourse blocca per impostazione predefinita? Potrebbe essere necessario aggiungere https://cdn.mathjax.org all’impostazione del sito cors origins.

2 Mi Piace

Potrebbe essere quello! Ora, l’impostazione del sito cors origins sarà sul mio server Discourse o sul server web in cui sto incorporando il contenuto?

È una delle impostazioni di Discourse.

2 Mi Piace

Questo ha risolto il problema per me! Grazie mille per l’aiuto; non mi era mai venuto in mente di controllare le impostazioni del sito relative alla sicurezza.

Grazie mille!

2 Mi Piace

Mi chiedo se potremmo fare qualcosa di meglio qui. @sam, c’è un modo per cui un plugin possa modificare in qualche modo app/views/layouts/embed.html.erb? In modo che Discourse possa caricare MathJax/KaTeX JS all’interno dell’iframe incorporato?

Supporto certamente l’adozione di una tale modifica. Potrebbe però essere necessario aggiungere qualche tipo di hook nel core, ad esempio: (forse un embed_javascripts in discourse/lib/discourse_plugin_registry.rb at 7829558c6d42b5f0dfbb0c2351fb332a940d651e · discourse/discourse · GitHub).

4 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 1236 giorni. Non sono più consentite nuove risposte.