Matemática deve ser citável

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 ↩︎

6 curtidas