Composer: clic/selezione nell'anteprima dovrebbe rivelare/selezionare il sorgente Markdown corrispondente (specialmente la matematica)

Problema / motivazione

Quando si modificano post ricchi di formule matematiche, è spesso difficile individuare l’origine esatta di un’equazione renderizzata nell’editor Markdown.

In post lunghi con molte espressioni inline $\$…\$$ o più blocchi di visualizzazione \\$…\\$\$, il flusso di lavoro diventa:

individuare un errore nell’anteprima → cercare manualmente nel Markdown grezzo → modificare → ricontrollare l’anteprima

Questo è particolarmente fastidioso per piccole modifiche (segno meno mancante, indice errato, ritocco dello spazio, ecc.), e peggiora con l’aumentare dei post.

Comportamento proposto

Nell’editor:

  • Cliccare o evidenziare un elemento renderizzato nel riquadro di anteprima dovrebbe:
  • scorrere l’editor Markdown grezzo fino alla sorgente corrispondente, e
  • posizionare il cursore all’interno (o selezionare) il testo sorgente che lo ha prodotto.

Questo funzionerebbe particolarmente bene per:
• Matematica ($\…\\, \\$…\$$$)
• Citazioni
• Elenchi
• Link
• Altri elementi elaborati

La matematica è il caso d’uso più convincente, ma il comportamento sarebbe generalmente utile.

Perché è diverso dalla sincronizzazione dello scorrimento

Non si tratta di sincronizzare lo scorrimento durante la digitazione.

Si tratta di un salto da anteprima a sorgente, simile nello spirito a SyncTeX negli editor LaTeX:

“Sto guardando questo elemento renderizzato - mostrami da dove proviene.”

Possibile direzione di implementazione (alto livello)

Durante l’elaborazione (cooking), i nodi di output potrebbero trasportare metadati leggeri di mappatura della sorgente (ad esempio, data-sourcepos=\"start:end\" o simile).

Nell’anteprima dell’editor:

  • Al clic / selezione, risalire il DOM fino al nodo più vicino con metadati di posizione della sorgente.
  • Utilizzare l’API esistente dell’editor per impostare l’intervallo di selezione nell’editor grezzo e portarlo in vista.

Questo tipo di mappatura della sorgente esiste già concettualmente negli strumenti CommonMark, e i blocchi matematici in particolare sono candidati naturali poiché sono già tokenizzati in modo distinto.

Perché sarebbe prezioso

  • Iterazione molto più veloce sui contenuti ricchi di matematica
  • Riduce il carico cognitivo durante la modifica di lunghi post tecnici
  • Rende il riquadro di anteprima genuinamente interattivo, non solo passivo
  • Si adatta bene ad altri elementi elaborati oltre alla matematica

Sono lieto di preparare una breve GIF se può aiutare a illustrare l’interazione.

1 Mi Piace