معالجة مخصصة لـ HTML عند لصق المحتوى في محرر؟

لاحظت ما أعتقد أنه خطأ برمجي، والآن أتساءل عما إذا كان من الممكن تخصيص طريقة تحليل HTML عند لصقه في محرر النصوص.

منتدىنا مخصص لموقع يحتوي على نصوص مقدسة مترجمة مع لغاتها الأصلية. (مثل الإنجليزية مع البالية) لذا قد يقوم المستخدمون بلصق شيء كهذا:

<span lang="en">So I have heard.</span><span lang="pli"><span lang="la">Evaṁ me sutaṁ—</span></span><span lang="en">At one time the Buddha was staying near Sāvatthī in Jeta’s Grove, Anāthapiṇḍika’s monastery.</span><span lang="pli"><span lang="la">ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.</span></span>

على موقع النصوص المقدسة، يبدو الأمر كالتالي:

قبل ظهور الخطأ المذكور أعلاه، كان لصق هذا النص ينتج عنه التالي في منتدانا:

So I have heard. Evaṁ me sutaṁ— At one time the Buddha was staying near Sāvatthī in Jeta’s Grove, Anāthapiṇḍika’s monastery. ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.

ليس أمراً مثالياً! جميع اللغات متداخلة. يصعب قراءتها. كان المستخدم الدقيق يقوم بتنسيق النص باستخدام Markdown كالتالي:

So I have heard.
*Evaṁ me sutaṁ—* 

At one time the Buddha was staying near Sāvatthī in Jeta’s Grove, Anāthapiṇḍika’s monastery. 
*ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.* 

وهو ما سيظهر كالتالي:

ببساطة، وضع كل عنصر span في سطر منفصل، وجعل العناصر التي تحتوي على lang="pli" مائلة مع ترك مسافة بعد ذلك.

حتى رأيت الخطأ المذكور في بداية هذا المنشور، لم أفكر في حقيقة وجود عملية بالفعل لتحويل بعض كود HTML إلى Markdown. والآن أتساءل *** عما إذا كان من الممكن، سواء باستخدام مكون أو إضافة، إضافة بعض الكود الذي سيقوم بتحويل عناصر span المحددة التي تحتوي على خاصية lang بالطريقة التي أشرت إليها أعلاه.*** يفضل أن يكون ذلك عبر مكون، ولكن ربما يمكن تحقيقه عبر إضافة.

لتحديد الأمر بدقة، سيكون إما

  <--start repeat-->
<p>
  <--start repeat-->
  <a href="..." title="نفس النص هنا دائماً">int</a>
  <span lang="a">...</span>
  <span lang="b">...</span>
   <!-- end repeat-->
</p>
<!-- end repeat-->

أو

<p>
  <a href="..." title="نفس النص هنا دائماً">int</a>
  <span lang="a">...</span><span lang="a">...</span>
</p>
<!-- repeated-->

حيث ستتغير اللغة أ واللغة ب.

قد يكون الرابط موجوداً أو لا، وسيحتوي دائماً على نفس قيمة العنوان. يجب جعل الخط عريضاً فقط للروابط التي تحمل هذه القيمة للعنوان. يجب إدراج فاصل سطر ناعم بعد ذلك.

يجب أن تكون اللغة ب مائلة ويتبعها فاصل سطر ناعم.

يقوم Discourse بالفعل بتحويل <p> كما هو متوقع.

في حال تكرار اللغة أ:
يحتاج الأمر إلى إضافة مسافة بعد أول ظهور للعنصر span. يمكن إضافتها في الحالة الأولى، حيث لن تكون مرئية :person_shrugging:

اللغة ب هي فقط اختيار من لغتين يمكن توفيرهما كمصفوفة. إما pli أو lzh.

شكرًا!

(أعمل على هذا مع @delightful معًا)