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 curtidas

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

2 curtidas

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 curtidas

Investiguei a citação de matemática (estou pensando em escrever um PR ou contribuir para um).

Documentando alguns pensamentos e descobertas iniciais aqui.

Então, minha impressão inicial é que um destes pontos pode ser corrigido:

  • toMarkdown corresponde a elementos contra várias tags HTML; mathjax usa elementos personalizados, acho que são detectáveis (talvez não renderização SVG), talvez katex também?
  • selectedText faz alguma correspondência para elementos como blocos de código e onebox – pode detectar elementos mathjax/katex e transformá-los? (Nota: provavelmente é uma boa ideia ter um hook ou algo assim aqui para que a lógica de transformação possa ser adicionada ao plugin discourse-math em vez da base de código principal do discourse).
  • os outros pontos não parecem tão adequados quanto estes dois.

Alguns outros pensamentos sobre abordagens e como obter a matemática bruta.

Dependendo de como katex / mathjax+svg[1] funcionam, toda instância de matemática deve ter um elemento HTML raiz, acho eu (possivelmente múltiplos, pois existem alguns elementos ocultos para acessibilidade e outras coisas). Então, se soubermos os locais onde a matemática existe, podemos analisar a postagem bruta em busca de instâncias de conteúdo delimitadas por $ (mas os interpretadores são complicados – talvez já exista um na base de código?)

Alternativamente, mathjax pelo menos tem um recurso de clique com o botão direito \u003e ver-tex (que deve ser a string literal entre pares de $); não tenho certeza de como me conectar a isso, mas se houver uma maneira de fazer isso para mathjax v2, v3 e katex, então deve ser possível usá-lo para substituir a matemática formatada selecionada por $...$ (nota: isso funciona para matemática inline, é preciso cobrir o caso para o outro tipo também – que usa delimitadores $$...$$ ou [/.../].)

Problemas atuais:

  • Não sei como implementar um hook ou se há algo melhor para usar / uma maneira melhor de fazer isso na base de código do discourse.
  • Vários desconhecidos sobre mathjax/katex que precisam ser investigados.
    • Elementos HTML – como detectá-los de forma confiável?
    • Como obter o código TeX bruto?

Se alguém tiver outras ideias sobre onde/o que corrigir, outros métodos de implementação possíveis ou qualquer outra coisa, por favor, poste-os.


  1. Acho que talvez mathjax+svg não seja suportado, então isso talvez não seja um problema ↩︎

5 curtidas