متوفر أيضًا بلغات أخرى: English · Español · Português · Français
مولّد جداول Markdown
املأ شبكةً واحصل على Markdown صحيح، وقد حُلّ تهريبُ الشرطات، وبُيّنت الحقيقةُ التي تُوقع الجميع في الجداول.
ما مولّد جداول Markdown؟
تُكتب جداول Markdown صفوفًا من النص تفصلها شرطات رأسية، مع صف من الشرطات الأفقية تحت الترويسة. وكتابتُها باليد سهلة في ثلاثة أعمدة، وعذابٌ في ثمانية، خصوصًا حين تريد الشيفرة مصطفّةً لتبقى مقروءة في المحرر.
وهذه الأداة تعطيك شبكة. تكتب في الخلايا، وتضيف الصفوف والأعمدة وتحذفها، وتضبط محاذاة كل عمود، ويتحدّث Markdown أولًا بأول. والصق جدولًا موجودًا في المربع أسفل فيعود إلى الشبكة لتحرّره.
وكل شيء يجري في متصفحك. فلا يُرفع شيء ولا حساب يُنشأ.
طريقة الاستعمال
- املأ الشبكة. أضف الأعمدة والصفوف أو احذفها بالأزرار فوقها. ولكل ترويسة عمود أربعةُ أزرار للمحاذاة — الافتراضي واليسار والوسط واليمين — تكتب لك النقطتين في صف الشرطات.
- اختر هيئة الشيفرة. الشرطتان الطرفيتان وحشوُ الأعمدة كلاهما اختياري، ولا يغيّر أيٌّ منهما الجدولَ المعروض، وإنما يؤثران في مدى قابلية Markdown للقراءة في محرر نصوص.
- انسخه، أو الصق جدولًا. زرُّ النسخ يأخذ Markdown. والمربعُ في الأسفل يعمل بالعكس: تلصق جدولًا فيُحلَّل ويعود إلى الشبكة، أو يُقال لك لماذا ليس جدولًا.
الجداول ليست من Markdown
هذا ما يحسن أن تعرفه قبل أن تلصق جدولًا في أي مكان، وهو مما يُبرهن لا مما يُدّعى. فـCommonMark، وهي المواصفة التي تنفّذها أكثر مُصيِّرات Markdown، ليس فيها صيغةٌ للجداول البتة. لا صيغةٌ محدودة ولا صيغةٌ أخرى: لا شيء.
وهذا الموقع ينشر أصلًا محرّك CommonMark في صفحة تحويل Markdown إلى HTML، اختير لأنه يصيب 649 من 652 حالةَ اختبار في المواصفة. أعطِ ذلك المحرّك جدولًا عاديًا تمامًا فينتج فقرةً فيها شرطات رأسية حرفية. ولا عنصرَ جدولٍ في المخرجات، لأنك في نظر المواصفة كتبتَ جملةً فيها شيء من الترقيم.
والجداول من GitHub Flavored Markdown، وهو امتدادٌ عرّفته GitHub ووثّقته على حدة. ولهذا يظهر النصُّ نفسه جدولًا في ملف README وفي مسألة على GitHub وفي أكثر أدوات التوثيق، ويظهر صفًّا من الشرطات فيما ينفّذ المواصفة الأساسية وحدها. فإن سبق أن ظهر لك جدولٌ نسختَه هُراءً، فهذا سببه، وليس خطأً فيما كتبتَ.
وقواعد الامتداد دقيقة، وهذه الأداة تتبعها. فصفُّ الشرطات إلزامي، وبدونه لا جدول. ولا بد أن يتساوى عددُ خلايا صف الترويسة وصف الشرطات، وتنصّ المواصفة صراحةً على أنه إن لم يتساويا فلا يُعرَّف الجدول أصلًا. أما صفوف المتن فتتفاوت: فإن نقصت خلاياها عن الترويسة أُدرجت خلايا فارغة، وإن زادت أُهمل الزائد. والمحاذاة نقطتان على الشرطات، يمينًا أو يسارًا أو في الطرفين للتوسيط. والشرطتان الطرفيتان مستحبّتان للوضوح لا واجبتان.
وأشدّها إيلامًا الشرطةُ الرأسية. فالشرطةُ داخل الخلية تُنهي تلك الخلية، فصفٌّ مثل «الراتب | العلاوة» يصير عمودين في صمت وينزاح كلُّ ما بعده. وتقول المواصفة بتهريبها بشرطة مائلة عكسية قبلها، وهذه الأداة تفعل ذلك في كل خلية تلقائيًا. ويحسن أن تعرف أن المُصيِّرات تتفاوت في احترام ذلك التهريب — فالمحلّل بإعداد CommonMark هنا يقسم عند الشرطة المهرَّبة رغم ذلك — فالخليةُ التي فيها شرطة رأسية أرجحُ ما يكسر جدولًا لم تكتبه أنت.
حدود معلنة بصراحة
لا يمكن أن تحتوي الخلية على فاصل سطر. فالصفُّ هو السطر، فلا صيغةَ لسطرٍ ثانٍ داخل خلية، ولا يُنتجه أي تهريب. والحيلةُ الشائعة عنصرُ فاصلٍ في HTML حرفيًا، وتعرضه هذه الأداة خيارًا بدل تطبيقه في صمت، لأنه لا يظهر إلا حيث يقبل الهدفُ HTML الخام، وكثيرٌ من سلاسل معالجة Markdown تحذفه.
والخلايا لا تقبل إلا Markdown السطري. فالعريض والمائل والشيفرة السطرية والروابط تعمل داخل الخلية، أما العناوين والقوائم والاقتباسات وكتل الشيفرة فلا، لأنها بُنى كتلية والخليةُ ليست كتلة. والقائمةُ النقطية داخل خلية جدول شيءٌ يحاوله الناس وليس له في Markdown كتابة.
وحشوُ الأعمدة تجميلي. فاصطفافُ الشيفرة يجعل النص الخام مقروءًا ولا أثر له البتة فيما ينتجه المُصيِّر، فإن كان جدولك مولَّدًا أو عريضًا جدًا فتعطيلُه لا يكلّفك إلا فرقًا مرتبًا في diff. لكنه يكبّر الملف، وهذا يهمّ إن كنت تحرّر يدويًا جدولًا من خمسين صفًّا.
والمحلّل هنا يطبّق قاعدةَ التعرّف في المواصفة بصرامة، أي أنه يرفض أشياء يقبلها مُصيِّرٌ متساهل. وهذا مقصود: فإن لم يطابق صفُّ الشرطات الترويسةَ قالت الأداة ذلك بدل أن تخمّن، لأن المُصيِّر الذي يخمّن على نحو آخر هو بالضبط مصدرُ المفاجآت.
ويحمل المحرّك 64 تحققًا، وأهمُّها ذهابٌ وإياب عبر مُصيِّر حقيقي لا جدولُ سلاسل متوقَّعة: يُبنى جدول، ويُصيَّر، ويُتحقق أن الخلايا الخارجة هي الداخلة. وهذا يمسك التهريبَ والحشوَ وصفَّ الشرطات في آن. وتخريبٌ متعمَّد أوقف تهريب الشرطات جعل الجدولَ المبني يكفّ عن كونه جدولًا أصلًا، وهو حجةُ هذه الصفحة مبرهنةً بمجموعة اختباراتها نفسها.
لماذا هذه الأداة مجانية؟
وصلُ السلاسل بشرطات رأسية ليس عملًا يستحق أن يدفع أحدٌ ثمنه، وهو يجري على جهازك. فلا يُرفع شيء، ولا حساب، ولا شيء يُختم بعلامة مائية.
وإن كان عندك HTML لا شبكة، فمحوّل HTML إلى Markdown في هذا الموقع يحوّل عنصر الجدول إلى هذه الصيغة مباشرة، وصفحةُ Markdown إلى HTML هي محرّك CommonMark المذكور أعلاه.