La matemática no se renderiza en publicaciones incrustadas

Tengo algunos posts incrustados en mi sitio web. Las fórmulas matemáticas dentro de ellos no se están renderizando en los incrustados.

Con el antiguo plugin, podíamos parchear el archivo embed.js.erb para que las matemáticas se renderizaran. ¿Hay algo que podamos hacer con discourse-math para que funcione en los incrustados?

Aquí hay un ejemplo de lo que estoy hablando (desplázate hasta el final).

¡Gracias!

Parece que la solución está en el último comentario del hilo de GitHub que has mencionado:

¿Ya lo probaste?

Sí, y eso funciona con la antigua extensión de terceros discourse-mathjax. Sin embargo, Discourse ha implementado su propia extensión discourse-math y esta solución no funciona.

No creo que el problema sea con el complemento. El nuevo complemento sigue utilizando los spans de matemáticas (como puedes ver si inspeccionas el código fuente de tu página), por lo que la solución debería seguir funcionando. Lo que puede haber cambiado desde entonces es cómo el código de Discourse incrusta las publicaciones.

Para ser claros, ¿estás sugiriendo que este parche debería seguir funcionando?

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

Actualmente, no veo código en tu sección de comentarios incrustada.
¿Puedes verificar que realmente estás aplicando el parche?

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

El problema con ese parche podría ser que intenta cargar JavaScript desde mathjax.org, y creo que la versión actual de Discourse lo bloquea por defecto. ¿Quizás necesites agregar https://cdn.mathjax.org a la configuración del sitio cors origins?

2 Me gusta

¡Eso podría ser! Ahora, ¿la configuración del sitio cors origins estará en mi servidor de Discourse o en el servidor web en el que estoy incrustando?

Es una de las configuraciones de Discourse.

2 Me gusta

¡Esto lo solucionó para mí! Muchas gracias por tu ayuda; nunca se me había ocurrido revisar la configuración del sitio para la seguridad.

¡Muchas gracias!

2 Me gusta

Me pregunto si podríamos hacer algo mejor aquí. @sam, ¿hay alguna manera de que un plugin modifique app/views/layouts/embed.html.erb? De modo que Discourse pueda cargar MathJax/KaTeX JS dentro del iframe incrustado.

Ciertamente, apoyo la realización de dicho cambio. Sin embargo, es posible que necesitemos agregar algún tipo de gancho en el núcleo, como: (quizás un embed_javascripts en discourse/lib/discourse_plugin_registry.rb at 7829558c6d42b5f0dfbb0c2351fb332a940d651e · discourse/discourse · GitHub).

4 Me gusta

Este tema se cerró automáticamente después de 1236 días. Ya no se permiten nuevas respuestas.