Quão difícil seria adicionar KaTeX?

Fico imaginando quão difícil seria adicionar o KaTeX e se alguém está considerando isso. Parece que o código deles está amadurecendo rapidamente.

No nosso caso, isso traria o benefício adicional de ter a mesma renderização que a Khan Academy no fórum sobre traduções da Khan Academy.

1 curtida

Eu montei rapidamente um código que renderiza as equações no servidor:

Não há tratamento de erros e o tamanho da fonte não coincide exatamente com a versão do lado do cliente, mas parece funcionar basicamente no meu ambiente de desenvolvimento.

4 curtidas

Eu realmente gosto da ideia disso; deve ajudar bastante o desempenho em alguns casos e começa a desbloquear o suporte por e-mail! Ainda precisaremos converter SVG para PNG em algum momento para e-mail.

Mas é necessário mantê-lo opcional por questões de acessibilidade.

@danekhollas, eu apoio um PR para adicionar KaTeX opcional.

4 curtidas

Como o desenvolvimento de plugins está atualmente muito acima do meu nível, eu apenas quis tentar adicionar o KaTeX via tema personalizado, usando a extensão autorender do Katex. Funcionou até certo ponto, mas encontrei um problema ao usar um único sinal de $ como delimitador matemático.

Parece que, mesmo com o plugin de matemática do MathJax desativado, o texto entre é convertido em texto dentro de <span class="math"> e os sinais de dólar desaparecem. Estranhamente, não consigo reproduzir isso no META. Alguma ideia?

No final desta issue do Katex no GitHub, alguém relatou um problema muito similar, que foi rastreado até o Kramdown fazendo essa conversão automática…

Sim, a funcionalidade de renderização automática provavelmente será extremamente instável no Discourse. Nós dependemos de ganchos adequados que “decoram” trechos de HTML enquanto são adicionados ao DOM. Precisamos fazer isso da maneira correta.

Talvez @misaka4e21 possa verificar a possibilidade de tornar o KaTeX opcional, desativado por padrão, no plugin de matemática?

5 curtidas
6 curtidas

Uau, foi rápido, muito obrigado!

Uma coisa a considerar: o KaTeX ainda carece de certos recursos em comparação ao MathJax. Na Khan Academy, eles na verdade fazem fallback para o MathJax quando o KaTeX falha. Isso provavelmente faria sentido implementar assim que o renderização do lado do servidor estiver pronta, pois, caso contrário, você sempre precisaria enviar tanto o KaTeX quanto o MathJax, o que provavelmente é indesejável.

3 curtidas

Como você toma a decisão de quando fazer o fallback? Curioso: isso também pode ser decidido no lado do cliente?

Eu não estou realmente envolvido diretamente, mas minha suposição é que eles simplesmente usam o MathJax quando o KaTeX lança um erro?
E tenho quase certeza de que eles fazem isso no cliente também.

Para mais informações, sugiro que você pergunte diretamente a eles no github.

2 curtidas