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 Mi Piace

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

2 Mi Piace

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 Mi Piace

Ho dato un’occhiata alla quotazione della matematica (sto pensando di scrivere un PR o contribuire a uno).

Documento qui alcuni pensieri e scoperte iniziali.

Quindi la mia impressione iniziale è che uno di questi punti potrebbe essere modificabile:

  • toMarkdown confronta gli elementi con vari tag HTML; penso che mathjax utilizzi elementi personalizzati rilevabili (forse non il rendering SVG), forse anche katex?
  • selectedText esegue alcuni confronti per elementi come blocchi di codice e onebox – potrebbe essere in grado di rilevare elementi mathjax/katex e trasformarli? (Nota: probabilmente sarebbe una buona idea avere un hook o qualcosa di simile qui in modo che la logica di trasformazione possa essere aggiunta al plugin discourse-math invece del codice principale di discourse).
  • gli altri punti non sembrano adatti come questi due.

Altri pensieri sugli approcci e su come ottenere la matematica grezza.

A seconda di come funzionano katex / mathjax+svg[1], ogni istanza di matematica dovrebbe avere un elemento HTML radice, penso (possibilmente più di uno perché ci sono alcuni elementi nascosti per l’accessibilità e altro). Quindi, se conosciamo i posti in cui esiste la matematica, potremmo essere in grado di analizzare il post grezzo per istanze di contenuto delimitate da $ (ma gli interpreti sono complicati – forse ce n’è già uno nel codebase?)

In alternativa, mathjax ha almeno una funzione di clic destro \u003e visualizza-tex (che dovrebbe essere la stringa letterale tra coppie di $); non sono sicuro di come agganciarmi a questo, ma se c’è un modo per farlo per mathjax v2, v3 e katex, allora dovrebbe essere possibile usarlo per sostituire la matematica formattata selezionata con $...$ (nota: questo funziona per la matematica inline, è necessario coprire anche il caso per l’altro tipo, che utilizza delimitatori $$...$$ o [/.../].)

Problemi attuali:

  • Non so come implementare un hook o se c’è qualcosa di meglio da usare / un modo migliore per farlo nel codebase di discourse.
  • Diverse incognite su mathjax/katex che devono essere investigate.
    • Elementi HTML – come rilevarli in modo affidabile?
    • Come ottenere il codice TeX grezzo?

Se qualcuno ha altre idee su dove/cosa modificare, altri possibili metodi di implementazione o altro, allora prego di postarle.


  1. Penso che mathjax+svg non sia supportato, quindi forse non è un problema ↩︎

5 Mi Piace