قوائم مرتبة بعلامات غير رقمية

الطلب: إضافة سمة “type” إلى القائمة البيضاء لـ <ol>. يُقترح فعل الشيء نفسه مع سمة “reversed” لـ <ol>، و"value" لـ <li>، لنفس الأسباب تقريبًا ولكن بشكل أقل شيوعًا.

الغرض: تُعد هذه السمات مخصصة للاستخدام في الحالات التي ينقل فيها رمز عناصر القائمة المرتبة معنىً لمحتوى القائمة. عادةً ما يكون هذا هو الحال عندما يُقصد الإشارة إلى عناصر القائمة عبر هذا الرمز. وهذا على النقيض من CSS list-style-type الذي يُستخدم عندما لا يحمل اختيار الرمز أي غرض جوهري. (رغم أنني رأيت أنه يُوصى به لتوطين المنتدى بالكامل، وهو أمر رائع جدًا!)

الخلفية: أثناء محاولة اقتباس مستند مرجعي رسمي، اكتشفت قيدًا ظاهرًا في تنسيق القوائم يمنع القيام بذلك بدقة. في كثير من الأحيان، تكون رموز القوائم مجرد عناصر جمالية. ومع ذلك، يُستخدم أحيانًا لتسهيل الإشارة في المستندات التي تحتوي على قوائم كثيرة. على سبيل المثال، في المستندات الرسمية والقانونية، قد يُشار إلى عنصر قائمة (أو عنصر فرعي) برمز القائمة: “المادة الأولى من المستند الرسمي، القسم 1(أ)(i)”

بالنسبة لـ Markdown، لا يوجد ذكر في مواصفة CommonMark، وفي الواقع تحدد فقط الأرقام من 0 إلى 9. لكن بينما لا تسمح معظم المفسرات باستخدام الأحرف للقوائم (بما في ذلك markdown-it)، فإن بعضها يفعل ذلك:

أنا غير متأكد مما إذا كانت هناك طريقة قياسية متاحة في BBCode، إلى الحد الذي تكون فيه أي شيء قياسي في BBCode. لم أستطع العثور على أي شيء أكثر تقدمًا من البدء برقم تعسفي. علاوة على ذلك، لا تبدو وسوم قائمة BBCode مستخدمة من قبل Discourse على أي حال.

مع HTML وHTML+style، لا ينتج أي منهما النتيجة الصحيحة:

3 إعجابات

بالنظر إلى GitHub، فإن تنفيذ هذا الأمر على الأرجح يكون مجرد إضافة هذه العناصر إلى هذه القائمة:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/pretty-text/white-lister.js#L181-L183

ومع ذلك، ألاحظ أن إدخال هذه العناصر سيجعل محوّل HTML إلى Markdown غير مدرك لهذه السمات. ولكن كما هو موضح أعلاه، لا يمكن لـ markdown-it حاليًا التعامل مع بناء الجملة في Markdown الذي يمثل هذه السمات على أي حال. ولتحقيق ذلك، قد يكون من المرغوب فيه اتخاذ خطوة إضافية وتنفيذ أنواع القوائم في CommonMark…

إعجابَين (2)

لا توجد خطط لذلك.

يُعدّ عدم وجود هذا الأمر عائقًا كبيرًا عند اقتباس المستندات الرسمية أو المستندات القانونية أو تراخيص البرمجيات أو أي شيء آخر يستخدم علامات غير رقمية للإحالة إلى المستندات.

إعجاب واحد (1)

أضف غلافًا إلى هذه القوائم وبعض CSS

في المنشورات، استخدم:

[wrap="letterlist"]
1. هو الأول
2. هو الثاني.
3. هو الثالث
[/wrap]

في سِماتك، أضف:

.cooked div[data-wrap="letterlist"] {
  list-style: upper-alpha;
}
إعجاب واحد (1)

هذا حل جيد إذا كان الهدف هو تزيين القوائم بشكل تعسفي، لكن سمة النوع (type) في HTML مُصمَّمة خصيصًا للحالات ذات الدلالة الدلالية حيث يكون الفرق بين علامات القوائم أكثر من مجرد زخرفة. من <ol>: The Ordered List element - HTML | MDN

ما لم يكن نوع رقم القائمة مهمًا (كما في الوثائق القانونية أو التقنية التي تُشار إلى عناصرها برقمها أو حرفها)، فاستخدم خاصية CSS list-style-type بدلاً من ذلك.

إنه احتياج شائع إلى حد ما؛ فبينما تم إلغاء سمة HTML في الإصدار 4.01 (مُبرَّرًا بأنها ذات طابع جمالي بحت)، أعيد إدخالها لاحقًا في HTML5 لغرض محدد يتمثل في ترميز قوائم المراجع كما هو موضح في MDN.

إعجاب واحد (1)

لقد جربت استخدام هذا الحل وهو يعمل، حيث تم تصحيح CSS إلى ما يلي (كان السطر الأول يفتقد ol {):

.cooked div[data-wrap="letterlist"] ol {
  list-style: upper-alpha;
}

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

هل هناك أي طريقة يمكنك التفكير فيها لحل هذه المشكلة، @Falco؟

إعجاب واحد (1)

أعتقد أن ترميز HTML مدعوم الآن:

  1. هذا الشيء
  2. شيء آخر
  3. شيء آخر
<ol type="A">
<li> هذا الشيء
<li> شيء آخر
<li> شيء آخر
</ol>

والأنواع A و a و I و i.

أيضًا reversed<ol> و start=<ol> أيضًا:

  1. خبز
  2. رقائق
  3. بطيخ
<ol reversed start=36>
<li> خبز
<li> رقائق
<li> بطيخ
</ol>

يبدو أن استخدام HTML بهذه الطريقة يعطل تفسير Markdown داخل <li>، لذلك هذا غير مقبول بالنسبة لي لاقتراحه على المستخدمين.

إعجاب واحد (1)

للاستفادة من التنسيق الإضافي بداخلها، أعتقد أنه سيتعين عليك استخدام الإصدار HTML منها أيضًا لأنها لا تحب المزج:

  1. خبز
  2. رقائق
  3. بطيخ
<ol reversed start=36>
<li> <b>خبز</b>
<li> <i>رقائق</i>
<li> <s>بطيخ</s>
</ol>

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

آه، أنا آسف لأن هذا ليس خيارًا مقبولاً بالنسبة لك.

ربما إذا بدأت موضوع Dev تطلب المساعدة في تعديل حلك الحالي، فقد يتمكن شخص ما من مساعدتك. :+1:

إعجاب واحد (1)