Atualizando Mathjax para a versão 4

Aqui, a propósito, está um exemplo de revisão de provas matemáticas via IA nesta versão de desenvolvimento em ação:

ProofreadMathAI

O usuário pode opcionalmente destacar uma expressão matemática específica no editor markdown e solicitar que ela seja revisada. Seria bom ter isso como uma opção no novo editor de matemática.

1 curtida

@sam Acontece que o KaTeX não está funcionando muito bem no novo plugin. Se você der uma olhada, é claramente um problema de fonte ausente e, de fato, o console indica que há vários arquivos de fonte (Woff-v2) que não são encontrados.

As fontes realmente existem no local correto, que deve ser em uma pasta chamada ‘fonts’ adjacente à folha de estilo. Ambos os arquivos existem na minha versão de desenvolvimento, por exemplo:
http://localhost:4200/plugins/discourse-math/katex/katex.min.css
e
http://localhost:4200/plugins/discourse-math/katex/fonts/KaTeX_Size2-Regular.woff2

Quando olhamos na aba Network do console, parece que ele está tentando baixar algo como
http://localhost:4200/t/meu-topico/fonts/KaTeX_Size2-Regular.woff2

Portanto, o navegador está procurando em uma pasta ‘fonts’ adjacente ao URL do tópico, o que está claramente errado.

Eu suponho que tudo isso tem algo a ver com a função loadKaTeX definida no katex-bundle, que eu acho que carrega o KaTeX de uma maneira não padrão, levando o KaTeX a não saber realmente onde o arquivo CSS está localizado. Eu não sei como consertar, no entanto.

2 curtidas

Muito obrigado Mark, eu fui em frente e mesclei seus commits, darei uma olhada na coisa do Katex hoje

Isso é apenas através de um prompt personalizado para a persona do revisor?

Não se preocupe com isso, eu e o Mark estamos cuidando disso.

3 curtidas

Ótimo em ambas as contagens!

Exatamente isso - sim. É obviamente meio afortunado que “Revisar” seja uma descrição próxima o suficiente do que eu quero que ele faça.

3 curtidas

Acabei de enviar uma correção para o KaTeX, me avise se funcionar, preciso verificar com o @david para confirmar que é seguro, nosso padrão para carregar CSS não é compatível com links relativos dentro do arquivo CSS porque estamos incorporando uma folha de estilo

2 curtidas

Nota, movi isto para um novo tópico dedicado, pois estava ficando um pouco perdido e barulhento no tópico principal de matemática. Estou realmente ansioso por esta atualização, sinto que estamos muito perto.

5 curtidas

O KaTeX parece estar funcionando bem para mim com seu último commit!

Parece-me que alguns testes não passaram, mas concordo que a funcionalidade está toda lá.

Estou animado também! :rocket:

4 curtidas

Se alguém está ansioso para experimentar esta nova versão ou se (como eu) não consegue esperar, já que tem aulas que a usarão em poucos dias, então você pode instalar esta versão autônoma aqui:

Eu a baseei neste commit (FEATURE: update mathjax to version 4.1 by SamSaffron · Pull Request #36814 · discourse/discourse · GitHub), creio eu, alterando-a para carregar o MathJax de uma CDN, em vez de internamente.

Você pode vê-la em ação neste post no meu site Discourse (How do I enter groovy, typeset mathematics into Discourse? - Meta - Discourse at Mark's Math).

1 curtida

Acho que vale a pena notar que esta atualização será significativamente mais do que uma atualização do MathJax. Ela também irá

  • Relaxar a análise de uma forma que funcionará melhor com LLMs, como solicitado aqui e
  • Corrigir problemas com o novo editor rico, como relatado aqui.
2 curtidas

@sam e @david

Vejo que este pull request foi mesclado e também noto que ambos se esforçaram bastante para levá-lo à linha de chegada - muito obrigado por isso!

Não pretendo instalar esta versão ainda, pois já a tenho funcionando de forma satisfatória no meu site Discourse; no entanto, tenho algumas perguntas.

  1. Sobre o cronograma de lançamento: O código já aparece no main no GitHub. Suponho que se alguém instalasse uma instância Discourse totalmente nova hoje, ela teria automaticamente esta versão novíssima do plugin de matemática. Isso está correto?
  2. Sobre os carregadores (loaders): Pelo que consigo perceber do código, parece que a ideia de definir as funções loadMathjax e loadKatex no núcleo foi abandonada. A versão mais recente parece reverter para loadScript, embora não esteja claro para mim de onde o script está vindo. Isso está correto? Se sim, por quê?

Obrigado novamente!

3 curtidas

Estou atualmente na latest-release +17 em uma instância de produção com bastante conteúdo matemático.

É muito bom ver que o [grid] agora funciona corretamente no Meta - essa é uma grande melhoria na qualidade de vida para posts com muita matemática. Estou feliz em abrir mão do [center] onde for necessário.

Para contexto, eu anteriormente encontrei alguns casos extremos relacionados a matemática dentro de [grid] / [details], que documentei aqui (caso ainda seja útil):

Agradeço novamente a todos que estão trabalhando na atualização do MathJax 4 - é ótimo ver esse nível de polimento sendo implementado.

2 curtidas

Estou vendo o erro do MathJax “Estruturas de equação aninhadas incorretamente” ao usar \\begin{align}...\\end{align} dentro de $$...$$. Isso parece ser o MathJax aplicando a regra de “não aninhar ambientes de equação” de forma mais rigorosa durante o trabalho de atualização da v4.

Na prática, o padrão confiável do Discourse é usar aligned dentro do invólucro $$:

$$\n{\large\n\begin{aligned}\na \u0026= b \\\\\n  \u0026= c\n\end{aligned}\n}\n$$\n```

Isso evita aninhar uma estrutura de equação de exibição (`align`) dentro de outro invólucro de exibição (`$$...$$`), que é o que aciona o erro.
1 curtida

Eu concordo com sua análise @Ethsim2.

Este comportamento concorda com o MathJaxV4, assim como com o LaTeX puro, então suponho que não haja um “bug” aqui. Definitivamente, vale a pena ressaltar que o uso de aligned em vez de align é o caminho a seguir, no entanto!

1 curtida