¿Procesamiento personalizado de HTML al pegar en el compositor?

Al notar lo que creo que es un error, ahora me pregunto si es posible personalizar cómo se analiza el HTML al pegarlo en el compositor.

Nuestro foro está dedicado a un sitio con escrituras antiguas traducidas desde sus idiomas originales. (Por ejemplo, inglés con pāli) Así que la gente puede estar pegando algo como esto:

<span lang="en">Así lo he oído.</span><span lang="pli"><span lang="la">Evaṁ me sutaṁ—</span></span><span lang="en">En un tiempo, el Buda se encontraba cerca de Sāvatthī, en el bosque de Jeta, el monasterio de Anāthapiṇḍika.</span><span lang="pli"><span lang="la">ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.</span></span>

En el sitio web de las escrituras, se ve así:

Antes del nuevo error que mencioné arriba, pegar ese texto produciría esto en nuestro foro:

Así lo he oído. Evaṁ me sutaṁ— En un tiempo, el Buda se encontraba cerca de Sāvatthī, en el bosque de Jeta, el monasterio de Anāthapiṇḍika. ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.

¡No es ideal! Todos los idiomas mezclados. Difícil de leer. Un usuario cuidadoso formatearía usando markdown de esta manera:

Así lo he oído.
*Evaṁ me sutaṁ—* 

En un tiempo, el Buda se encontraba cerca de Sāvatthī, en el bosque de Jeta, el monasterio de Anāthapiṇḍika. 
*ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.* 

Lo que se renderizaría así:

Básicamente, poniendo cada span en una línea, haciendo que los spans con lang="pli" estén en cursiva con un espacio en blanco después.

Hasta que vi el error que mencioné al principio de esta publicación, no había pensado en el hecho de que ya existe un proceso para convertir alguno del HTML a Markdown. Ahora me pregunto si es posible, ya sea usando un componente o un plugin, agregar algún código que convertiría los spans específicos con atributos lang de la manera que mencioné arriba. Idealmente a través de un componente, pero posiblemente con un plugin.

Para ser más concretos, será bien

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

o bien

<p>
  <a href="..." title="same text always here">int</a>
  <span lang="a">...</span><span lang="a">...</span>
</p>
<!-- repeated-->

Donde el idioma a y el idioma b variarán.

El enlace puede estar presente o no, y siempre tendrá el mismo valor de título. Solo los enlaces con este valor de título deben ponerse en negrita. Debe incluirse un salto de línea suave después de esto.

El idioma b debe ponerse en cursiva y tener un salto de línea suave.

Discourse ya está convirtiendo el <p> como se esperaba.

En el caso de que se repita el idioma a:
se debe añadir un espacio después de la primera aparición del span. Esto se puede añadir en el primer caso, ya que no sería visible :person_shrugging:

El idioma b es solo una selección de 2 idiomas que podrían proporcionarse como una matriz. Ya sea pli o lzh.

¡Gracias!

(@delightful y yo estamos trabajando en esto juntos)