Latex vers html sans javascript.

Amaury a marqué ce sujet comme résolu.

Bonjour,

J’aimerai pouvoir utiliser du LatexLatex dans une page web. En recherchant sur internet, la solution la plus simple semble être d’ajouter un script mathjax dans la page.

Je n’aime pas trop utiliser des script externes. Corrélation n’est pas causalité, mais la corrélation inverse entre la qualité d’une page web et la quantité de script qu’elle contient est tout de même notoire aujourd’hui.

Je vois que sur le ZdS et Wikipédia, les formules s’affichent correctement, même lorsque javascript et css sont complètement désactivé. J’en déduis que la conversion est faite côté serveur. J’ai essayé de faire un tour sur le Github de ZdS (qui utilise django, comme moi), mais je n’arrive à comprendre comment cela est fait ?

Quel module devrais-je utiliser ?

Merci.

Salut !

ZdS utilise un logiciel appelé KaTeX\KaTeX. C’est un logiciel en JavaScript, mais il supporte ce qu’on appelle le server-side rendering, donc le fait de générer le HTML correspondant aux formules de maths côté serveur, en amont. Il suffit derrière d’inclure le CSS de KaTeX\KaTeX et ça roule. C’est ce qu’on fait.

Par contre, il faut toujours du JS. Simplement, ce sera NodeJS, pas le navigateur du visiteur. KaTeX\KaTeX supporte également le rendu côté client (et de façon bien plus performante que MathJAX), à toutes fins utiles, même si tu disais que ce n’était pas ce qui t’intéresse ici.

Autre solution (utilisée par KaTeX\KaTeX, et donc ici, en sous-main) : MathML, une norme pour insérer des maths dans un navigateur (en anglais). Cela dit, c’est beaucoup moins simple à utiliser que le format LaTeX\LaTeX — il faut aimer XML… Mais ça marche sans script, tel quel. Et autre avantage, les maths en MathML sont accessibles (aux lecteurs d’écran, etc.). Cette page donne plein d’exemples, tu peux en inspecter le code source pour voir quelle tête ça a concrètement.

C’est pour ça que KaTeX\KaTeX compile vers MathML pour toi. Enfin plus précisément, KaTeX\KaTeX fait une double-compilation : une en MathML, qui est masquée en CSS et qui sert quand ce dernier est désactivé (comme tu l’as constaté), et pour l’accessibilité ; et une en HTML/CSS, un peu plus jolie, plus dans le style LaTeX\LaTeX.

+4 -0

Il me semble que MathML n’était pas supporté par Chrome mais que ça vient de changer tout récemment. J’ai hâte de tester. J’utilise KaTeX\KaTeX personnellement et si je peux me passer du CSS en plus, je dis pas non.

Ayant les même exigences que toi @1e49ba0eba, je te confirme que KaTeX\KaTeX fait le taf. Il faut cependant noter une légère incompatibilité avec LaTeX\LaTeX.

+2 -0

Note en passant — Tu n’as pas trouvé sur le GitHub de ZdS probablement car tu as dû regarder le code source du site. KaTeX\KaTeX est intégré dans zmd, notre moteur Markdown, qui est dans un dépôt séparé. Et pour être honnête, il faut un peu creuser, car KaTeX\KaTeX est caché derrière les dépendances rehype-katex et remark-math

+5 -0

Bonsoir,

J’avais effectivement finit par tomber sur Katex dans les dépots de ZdS après avoir posté mon message. Sans savoir comment l’exploiter.

Je connais très mal Javascript et je n’ai jamais utilisé NodeJS. Du coup j’ai regardé s’il y avait des chose côté Python et je suis tombé sur cette extension. Un pip install et c’est réglé. Vraiment pas mal.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte