ما هي أسباب السماح لجداول HTML عند التحقق من صحة حقول إدخال المستخدم؟

StackOverflow https://stackoverflow.com/questions/471732

  •  19-08-2019
  •  | 
  •  

سؤال

أنا أكتب قليلاً من الويكي وأمر بجميع خياراتي لإبراز بناء الجملة. مناقشة بين Wiki Syntax (MediaWiki) و Marmdown + Tags BhiteLlect. أعتقد أنني أفضل هذا الأخير ولكني أعتقد أن مستخدمي سيحتاجون إلى جداول. لماذا يتم السماح للجداول هنا على Stackoverflow؟

<table> <tr> <td> </td> </tr> </table>
هل كانت مفيدة؟

المحلول

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

بالإضافة إلى ذلك ، يمكنك القيام بذلك على أي حال:

cell 1-1      cell 1-2
cell 2-1      cell 2-2

تحرير: لذلك بعد قراءة التعليقات على ردي ، أرى أنه قد يكون هناك بعض الحالات التي يمكن أن توفر فيها الجدول مساعدة بصرية أفضل. لذلك سأوصي بتسخين مشابه لـ CSV ؛ أعتقد أن هذا سهل بما يكفي للكتابة والتنفيذ.

نصائح أخرى

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

حتى إذا لم يتم وضع موقعك ، فقد يؤدي وجود مجموعتين من الجدول المشوه HTML في منشورات التعليق وما إلى ذلك إلى تشويه موقعك.

ثلاثة أسباب:

  • التوافق مع تطبيقات التخفيض التعسفي ،
  • إدخال المستخدم الآمن ،
  • محتوى مستقل عن التصميم

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

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

لذلك ، لا يمكن صنع الجداول إلا باستخدام HTML-Inside-Markdown. وهو أيضا ليست جيدة. أنا متأكد من أن محولات Marmdown2PDF و Markdown2Tex و Markdown2thEntedTbigml سهلة الكتابة. تحويل التخفيضات مع HTML المضمنة إلى أي شيء ولكن HTML ليس تافها. لذلك لا يوجد أي جدوى لتخزين كل شيء في Markdown (نص عادي) ، إذا تم السماح (بعض) HTML المدمج.

سبب آخر لتطهير جميع HTML المقدمة من المستخدم هو واضح ، من الصعب للغاية ومكلفة التحليل بشكل صحيح ، وهو يستطيع كسر التصميم (على سبيل المثال <table width="10000" height="10000">).

أخيرًا ، هناك فائدة كبيرة في علامة خفيفة الوزن (تخفيض نقي): لا يعتمد على تخطيط موقع معين (عرض الشاشة ، الحشوات ، الهوامش ، التبرير ، عرض العمود ، إلخ). لذلك إذا حدث إعادة تصميم SO بعد عام من الآن ، لا يلزم تحرير المحتوى (تعتمد مقتطفات HTML على CSS معين ضمنيًا). مكافأة إضافية: أسهل في استخدام تطبيقات الجهات الخارجية (مثل عملاء الهاتف المحمول).

أعتقد أنه تعسفي. يمكن أن يكون هناك العديد من الاستخدامات لهم ، لكن يبدو أن النص المحاذاة يدويًا على العرض الثابت هو المفضل هنا (وهو ما أعتبره اختراقًا).

أنا شخصياً أفضل بناء جملة نمط BBCode.

  • انها صريحة
  • إنه يشبه HTML تقريبًا
  • لا يمكن الخلط بينه وبين HTML بسبب استخدام الأقواس بدلاً من الزوايا

"صريح" يعني أنه يمكن التعبير عن أي تأثير مقصود في أي مزيج تقريبًا ، ولا توجد آثار غير مقصودة (كما هو الحال في التخفيض ، عند استخدام أحد الشخصيات الخاصة العديدة). على سبيل المثال ، ليس لدي أي فكرة عن كيفية جعل هذا الموقع يعرض كلمة في النجمة بخط غير ثابت (*كلمة*). لا يمكن لبرس كود استخدام السطحية ، لأنه أيضًا شخصية خاصة. في BBCode ، هناك شخصية خاصة واحدة فقط: [

بالإضافة إلى ذلك ، يصبح تعقيم الإدخال أكثر بساطة.

فكر في أن محرر Wisiwyg JavaScript (WMD) يجب أن يجعل ما تكتبه في الوقت الفعلي
(ميزة مهمة أرادها جيف منذ بداية ذلك)

وبالتالي ، أعتقد سيكون التحديث الديناميكي للجدول وسيلة معقدة للغاية لتحليلها/العرض, ، نظرًا لأن مترجم HTML سيتعين عليه تفسير هياكل الجدول غير المكتملة وأنت تكتبها.
وهذا يعني التعامل مع ميزات مثل Colspan و Rowspan وهياكل الرأس غير الصحيحة وما إلى ذلك.

حتى يكون لديك تجربة معاينة ديناميكية أفضل ، حصلت الجداول على خدش تمامًا.

هناك العديد من الحالات التي ستكون فيها الجداول مفيدة: جدول البيانات ، يعرض مصفوفة ، مما يوضح النتائج المحتملة لخوارزمية ، إلخ.

لا أعتقد أنك بحاجة إلى شيء معقد مثل جداول HTML (مع Rowspan وجميع) ، سيكون CSV عاديًا كافيًا لـ 99 ٪ من حالات الاستخدام ، على ما أعتقد. سيسمح أيضًا للعارض الديناميكي JavaScript بالقيام بعمله بسهولة.

CSV معروف ، خفيف ، سهل الكتابة والفهم. الشيء الوحيد المطلوب في الجزء العلوي من ذلك سيكون علامة بداية ونهاية لبيانات CSV. على سبيل المثال [CSV] ... [/csv] أو || ... ||. هذا هو ما قد يبدو عليه:

[csv]
**XOR**,**true**,**false**
**true**, false, true
**false**, true, false
[/csv]

هذا من شأنه أن ينتج طاولة مثل هذا واحد:

XOR     true    false
true    false   true
false   true    false    

(مع الصف الأول والعمود الأول بأحرف جريئة)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top