Problème / motivation
Lors de l’édition de publications riches en contenu mathématique, il est souvent difficile de localiser la source exacte d’une équation rendue dans le compositeur Markdown.
Dans les longues publications contenant de nombreuses expressions en ligne \$...\$ ou plusieurs blocs d’affichage \$\$...\$\$, le flux de travail devient :
repérer une erreur dans l’aperçu → chercher manuellement dans le Markdown brut → ajuster → revérifier l’aperçu
Ceci est particulièrement pénible pour les petites modifications (signe moins manquant, mauvais indice, ajustement d’espacement, etc.), et s’aggrave à mesure que les publications grandissent.
Comportement proposé
Dans le compositeur :
- Cliquer ou surligner un élément rendu dans le volet d’aperçu devrait :
- faire défiler l’éditeur Markdown brut jusqu’à la source correspondante, et
- placer le curseur à l’intérieur (ou sélectionner) le texte source qui l’a produit.
Ceci fonctionnerait particulièrement bien pour :
• Les mathématiques ($...$, $$...$$)
• Les citations
• Les listes
• Les liens
• D’autres éléments cuits (rendered elements)
Les mathématiques sont le cas d’utilisation le plus convaincant, mais le comportement serait largement utile.
Pourquoi cela est différent de la synchronisation du défilement (scroll sync)
Il ne s’agit pas de synchroniser le défilement pendant la frappe.
Il s’agit d’un saut d’aperçu → source, dans l’esprit de SyncTeX dans les éditeurs LaTeX :
« Je regarde cet élément rendu - montrez-moi d’où il vient. »
Direction d’implémentation possible (haut niveau)
Pendant la cuisson (cooking), les nœuds de sortie pourraient transporter des métadonnées légères de mappage source (par exemple, data-sourcepos="start:end" ou similaire).
Dans l’aperçu du compositeur :
- Au clic / à la sélection, remonter dans l’arbre DOM jusqu’au nœud le plus proche possédant les métadonnées de position source.
- Utiliser l’API existante du compositeur pour définir la plage de sélection dans l’éditeur brut et la faire défiler jusqu’à ce qu’elle soit visible.
Ce type de mappage source existe déjà conceptuellement dans les outils CommonMark, et les blocs mathématiques en particulier sont des candidats naturels puisqu’ils sont déjà tokenisés distinctement.
Pourquoi ce serait précieux
- Itération beaucoup plus rapide sur le contenu riche en mathématiques
- Réduit la charge cognitive lors de l’édition de longues publications techniques
- Rend le volet d’aperçu véritablement interactif, et non seulement passif
- Évolue bien vers d’autres éléments cuits au-delà des mathématiques
Je serais ravi de préparer un court GIF si cela pouvait aider à illustrer l’interaction.