Math should be quotable

We have a discourse forum for a scientific software, and use the math plugin. Unfortunately, math is not quotable.

If I select some text, a Quote button appears:

Clicking it results in the following:

[quote]
definition of the closeness centrality:

ci=1N−1N∑j=11dij c_i = \frac{1}{N-1} \sum_{j=1}^N\frac{1}{d_{ij}}
[/quote]

Notice that in the quotation, the math appeared as a weird textual version (unreadable) followed by the actual LaTeX source, but lacking the $ delimiters.

I assume that there is no fix for this currently. It would be nice if this could be improved in the future.

8 « J'aime »

This is still occurring and also happens with inline math, as reported by a member on our instance:

2 « J'aime »

Note, I agree completely we should clean this up, but it feels extremely complicated.

I am putting a pr-welcome on this in case someone with advances skills wants to give it a shot.

6 « J'aime »

J’ai examiné la mise en citation des mathématiques (j’envisage d’écrire une PR ou de contribuer à une PR).

Je documente ici quelques réflexions et découvertes initiales.

Donc, mon impression initiale est que l’un de ces points pourrait être patchable :

  • toMarkdown fait correspondre des éléments à diverses balises HTML ; mathjax utilise des éléments personnalisés, je pense qu’ils sont détectables (peut-être pas le rendu SVG), peut-être que katex aussi ?
  • selectedText effectue une correspondance pour des éléments comme les blocs de code et les onebox – pourrait-il détecter les éléments mathjax/katex et les transformer ? (Note : il serait probablement judicieux d’avoir un hook ou quelque chose de similaire ici afin que la logique de transformation puisse être ajoutée au plugin discourse-math au lieu de la base de code principale de discourse).
  • les autres points ne semblent pas aussi appropriés que ces deux-là.

Quelques autres réflexions sur les approches et comment obtenir les mathématiques brutes.

Selon le fonctionnement de katex / mathjax+svg[^1], chaque instance de mathématiques devrait avoir un élément HTML racine, je pense (possiblement plusieurs car il y a des éléments cachés pour l’accessibilité et autres). Donc, si nous connaissons les endroits où les mathématiques existent, nous pourrions analyser la publication brute pour trouver des instances de contenu délimitées par $ (mais les interpréteurs sont délicats – peut-être qu’il y en a déjà un dans la base de code ?)

[^1] : Je pense que mathjax+svg n’est peut-être pas pris en charge, donc ce n’est peut-être pas un problème

Alternativement, mathjax a au moins une fonctionnalité de clic droit > afficher_tex (qui devrait être la chaîne littérale entre les paires $) ; je ne sais pas comment y accrocher, mais s’il existe un moyen de le faire pour mathjax v2, v3 et katex, alors il devrait être possible de l’utiliser pour remplacer les mathématiques formatées sélectionnées par $...$ (note : cela fonctionne pour les mathématiques en ligne, il faut aussi couvrir le cas de l’autre type, qui utilise des délimiteurs $$...$$ ou [/.../].)

Problèmes actuels :

  • Je ne sais pas comment implémenter un hook ni s’il existe quelque chose de mieux à utiliser / une meilleure façon de le faire dans la base de code de discourse.
  • Plusieurs inconnues concernant mathjax/katex qui doivent être étudiées.
    • Éléments HTML – comment les détecter de manière fiable ?
    • Comment obtenir le code TeX brut ?

Si quelqu’un a d’autres idées sur où/quoi patcher, d’autres méthodes d’implémentation possibles, ou quoi que ce soit d’autre, merci de les poster.

5 « J'aime »