Traitement personnalisé du HTML lors du collage dans le composer ?

Après avoir remarqué ce que je pense être un bug, je me demande maintenant s’il est possible de personnaliser la façon dont le HTML est analysé lorsqu’il est collé dans le rédacteur.

Notre forum est dédié à un site proposant des textes sacrés anciens en traduction avec les langues originales. (Par exemple, l’anglais avec le pâli.) Ainsi, les utilisateurs peuvent coller quelque chose comme ceci :

<span lang="en">C'est ainsi que j'ai entendu.</span><span lang="pli"><span lang="la">Evaṁ me sutaṁ—</span></span><span lang="en">À une certaine époque, le Bouddha séjournait près de Sāvatthī, dans le bois de Jeta, le monastère d'Anāthapiṇḍika.</span><span lang="pli"><span lang="la">ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.</span></span>

Sur le site des textes sacrés, cela ressemble à ceci :

Avant le nouveau bug mentionné ci-dessus, coller ce texte produisait ceci sur notre forum :

C’est ainsi que j’ai entendu. Evaṁ me sutaṁ— À une certaine époque, le Bouddha séjournait près de Sāvatthī, dans le bois de Jeta, le monastère d’Anāthapiṇḍika. ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.

Pas idéal ! Toutes les langues mélangées. Difficile à lire. Un contributeur consciencieux formaterait en utilisant le Markdown comme ceci :

C'est ainsi que j'ai entendu.
*Evaṁ me sutaṁ—* 

À une certaine époque, le Bouddha séjournait près de Sāvatthī, dans le bois de Jeta, le monastère d'Anāthapiṇḍika. 
*ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.* 

Ce qui s’afficherait comme ceci :

En gros, en plaçant chaque span sur une ligne, en rendant les spans avec lang="pli" en italique et en ajoutant une espace après.

Avant de voir le bug mentionné au début de ce message, je n’avais pas pensé au fait qu’il existe déjà un processus pour convertir certains éléments HTML en Markdown. Maintenant, je me demande s’il est possible, en utilisant soit un composant soit un plugin, d’ajouter du code qui convertirait les spans spécifiques avec les attributs lang de la manière que je mentionne ci-dessus. Idéalement via un composant, mais éventuellement avec un plugin.

Pour être plus précis, ce sera soit

  <!--start repeat-->
<p>
  <!--start repeat-->
  <a href="..." title="same text always here">int</a>
  <span lang="a">...</span>
  <span lang="b">...</span>
   <!-- end repeat-->
</p>
<!-- end repeat-->
```\nsoit

int ......

```

Où la langue a et la langue b varieront.

Le lien peut être présent ou non, et aura toujours la même valeur de titre. Seuls les liens avec cette valeur de titre doivent être en gras. Un retour chariot mou doit être inclus après cela.

La langue b doit être en italique et suivie d’un retour chariot mou.

Discourse convertit déjà les <p> comme prévu.

Dans le cas où la langue a se répète :
il faut ajouter un espace après la première occurrence de la balise span. Cela peut être ajouté dans le premier cas, car il ne serait pas visible :person_shrugging:

La langue b n’est qu’une sélection de 2 langues qui pourraient être fournies sous forme de tableau. Soit pli soit lzh.

Merci !

(@delightful et moi travaillons ensemble sur ce projet)