Elaborazione personalizzata dell'HTML durante l'inserimento in Composer?

Notando quello che penso sia un bug, ora mi chiedo se sia possibile personalizzare il modo in cui l’HTML viene analizzato quando viene incollato nel compositore.

Il nostro forum è dedicato a un sito con testi sacri antichi in traduzione con le lingue originali. (Es. inglese con pāli) Quindi le persone possono incollare qualcosa del genere:

<span lang="en">Così ho sentito.</span><span lang="pli"><span lang="la">Evaṁ me sutaṁ—</span></span><span lang="en">In un certo periodo il Buddha si trovava vicino a Sāvatthī nel Giardino di Jeta, monastero di Anāthapiṇḍika.</span><span lang="pli"><span lang="la">ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.</span></span>

Sul sito dei testi sacri, appare così:

Prima del nuovo bug menzionato sopra, incollare quel testo produceva questo sul nostro forum:

Così ho sentito. Evaṁ me sutaṁ— In un certo periodo il Buddha si trovava vicino a Sāvatthī nel Giardino di Jeta, monastero di Anāthapiṇḍika. ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.

Non ideale! Tutte le lingue mescolate insieme. Difficile da leggere. Un utente attento formattava usando il markdown in questo modo:

Così ho sentito.
*Evaṁ me sutaṁ—* 

In un certo periodo il Buddha si trovava vicino a Sāvatthī nel Giardino di Jeta, monastero di Anāthapiṇḍika. 
*ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.* 

Il quale sarebbe apparso così:

Fondamentalmente mettendo ogni span su una riga, rendendo gli span con lang="pli" corsivi con uno spazio vuoto dopo.

Finché non ho visto il bug menzionato all’inizio di questo post, non avevo pensato al fatto che esiste già un processo per convertire alcun HTML in Markdown. Ora mi chiedo se sia possibile, usando un componente o un plugin, aggiungere del codice che converta gli span specifici con le proprietà lang nel modo che ho descritto sopra. Idealmente tramite un componente, ma eventualmente con un plugin.

Per essere precisi, sarà o

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

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

Dove la lingua a e la lingua b varieranno.

Il link può essere presente o meno, e avrà sempre lo stesso valore di titolo. Solo i link con questo valore di titolo dovrebbero essere in grassetto. Dopo di essi dovrebbe essere inclusa una interruzione di riga morbida (soft return).

La lingua b dovrebbe essere in corsivo e seguita da un’interruzione di riga morbida.

Discourse sta già convertendo il <p> come previsto.

Nel caso in cui la lingua a si ripeta:
è necessario aggiungere uno spazio dopo la prima istanza dello span. Questo può essere aggiunto nel primo caso, poiché non sarebbe visibile :person_shrugging:

La lingua b è solo una selezione di 2 lingue che potrebbero essere fornite come array. O pli o lzh.

Grazie!

(@delightful e io stiamo lavorando su questo insieme)