A matemática não está renderizando em posts incorporados

Tenho algumas postagens incorporadas no meu site. A matemática nelas não está sendo renderizada dentro dos embeds.

Usando o plugin antigo, podíamos corrigir o arquivo embed.js.erb para fazer a matemática renderizar. Há algo que possamos fazer com o discourse-math para que funcione nos embeds?

Aqui está um exemplo do que estou falando (role até o final).

Obrigado!

Parece que a solução está no último comentário do tópico no GitHub que você referenciou:

Você já tentou?

Sim, e isso funciona com a antiga extensão de terceiros discourse-mathjax. No entanto, o Discourse implementou sua própria extensão discourse-math e essa solução não funciona.

Acho que o problema não está no plugin. O novo plugin ainda usa os spans de matemática (como você pode ver se inspecionar o código-fonte da sua página), então a solução ainda deve funcionar. O que pode ter mudado desde então é como o código do Discourse incorpora as postagens?

Para esclarecer, estou sugerindo que este patch ainda deve funcionar?

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

Atualmente, não vejo código na sua seção de comentários incorporada?
Você pode verificar se está realmente aplicando o patch?

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

O problema com esse patch pode ser que ele tente carregar JavaScript do mathjax.org, o que, creio eu, a versão atual do Discourse bloqueia por padrão? Talvez você precise adicionar https://cdn.mathjax.org à configuração do site cors origins.

2 curtidas

Pode ser isso! Agora, a configuração do site cors origins estará no meu servidor Discourse ou no servidor web onde estou incorporando?

É uma das configurações do Discourse.

2 curtidas

Isso resolveu para mim! Muito obrigado pela ajuda; nunca havia me passado pela mente as configurações do site relacionadas à segurança.

Muito obrigado!

2 curtidas

Eu me pergunto se poderíamos fazer algo melhor aqui. @sam, existe uma maneira de um plugin modificar app/views/layouts/embed.html.erb de alguma forma? Assim, o Discourse poderia carregar o MathJax/KaTeX JS dentro do iframe incorporado?

Certamente apoio a realização de tal mudança. No entanto, talvez seja necessário adicionar algum tipo de hook no núcleo, como: (talvez um embed_javascripts em discourse/lib/discourse_plugin_registry.rb at 7829558c6d42b5f0dfbb0c2351fb332a940d651e · discourse/discourse · GitHub).

4 curtidas

Este tópico foi automaticamente fechado após 1236 dias. Novas respostas não são mais permitidas.