الصق ماركداون واحصل على HTML مطابق للمعايير فورًا، مع مفاتيح للربط التلقائي والطباعة الذكية وفواصل الأسطر الصلبة وتمرير HTML الخام.
ماركداون من الداخل، HTML مطابق للمعايير من الخارج. يُحول كل شيء أثناء كتابتك. المفاتيح الأربعة تغير سلوك المحلل، والمعاينة أدناه تعرض النتيجة المقدمة لتفقد الترميز والمخرج معًا.
خيارات المحلل
–
معاينة
فشل تحميل مكتبة الماركداون، لذا التحويل غير متاح. يرجى إعادة تحميل الصفحة.
ماركداون وCommonMark والنكهات بينهما
لماذا يختلف محللان بشأن مستندك
نُشر ماركداون عام 2004 كبرنامج Perl وصفحة نثرية، دون قواعد نحوية رسمية. تلك اللا-رسمية هي سبب انتشاره، وهي أيضًا سبب عرض المستند نفسه بشكل مختلف في أدوات مختلفة. تركت التطبيقات الأصلية عشرات الحالات غير محددة: ما يفعله مؤشر القائمة عندما يكون بمسافة بادئة من ثلاث مسافات، كيف يتداخل التأكيد داخل كلمة، هل يحتاج العنوان سطرًا فارغًا قبله. حلّ كل مطور تلك الثغرات بالتخمين، وتخمينهم اختلف.
CommonMark موجودة لسد تلك الفجوة. إنها مواصفة دقيقة مع عدة مئات من اختبارات المطابقة تغطي بالضبط الحالات الغامضة التي تركتها النسخة الأصلية مفتوحة. يستخدم هذا المحول markdown-it، الذي يجتاز مجموعة CommonMark كاملة، لذا فالمخرج يطابق ما تنتجه GitHub وReddit وDiscourse ومعظم الأدوات الحديثة. إذا عُرض مستند هنا، فسيعرض بالطريقة نفسها هناك.
ماركداون المطوّرة لـ GitHub مجموعة فائقة مبنية فوقها: جداول وشطب وقوائم مهام وعناوين URL مرتبطة تلقائيًا. تعمل الجداول وقوائم المهام في هذه الأداة، ولهذا تتضمن المستند النموذجي كليهما. الفرق مهم عندما تكتب لهدف لا تتحكم فيه، لأن الجدول ليس جزءًا من CommonMark الأساسية وسيمرره محلل صارم كنص عادي.
ماذا تغيّر المفاتيح الأربعة فعلًا
الربط التلقائي يحوّل عنوان URL خامًا إلى مرساة. إنه مريح لسجلات التغييرات والملاحظات، لكنه انحراف عن CommonMark التي تتطلب أقواس زاوية حول رابط خام. أوقفه إذا كان يجب أن يكون المخرج قابلاً للنقل إلى محلل صارم.
الطباعة الذكية تعيد كتابة الاقتباسات المستقيمة إلى منحنية وتحوّل -- إلى شرطة طويلة. هذا صحيح للنثر وخطأ لأي شيء يحتوي شظايا كود خارج كتلة كود، لأنها ستشوه علم سطر أوامر بلا حرج. نطاقات الكود والكتل المسوّرة تُترك دائمًا كما هي.
فواصل الأسطر الصلبة تغير معنى السطر الجديد المفرد. افتراضيًا يدمج ماركداون الأسطر المتتالية في فقرة واحدة، وهو ما تفترضه معظم المستندات. إدخال بأسلوب المحادثة حيث يضغط الناس على Enter لسطر جديد يحتاج هذا الخيار مفعّلًا، وإلا انهار تنسيقهم.
تمرير HTML الخام هو الخيار ذو العواقب الأمنية. مع إيقافه، يُهرَب <img onerror=...> في المصدر ويُعرض كنص. مع تشغيله، يخرج كترميز حي. اتركه مطفأً لأي شيء يقدمه المستخدمون.
التعقيم وظيفة منفصلة
الخطأ الأكثر شيوعًا مع أي خط ماركداون هو افتراض أن المحول يحميك. إنه لا يحمي، ولا يُفترض به ذلك. حتى مع تعطيل HTML الخام، يظل هدف الرابط متحكمًا فيه من المهاجم، لذا ينتج [click](javascript:alert(1)) مرساة قد يكرمها المتصفح. بناء جملة ماركداون وحدها كافية لبناء هجوم عامل.
النمط الصحيح هو حوّل، ثم عقّم، ثم أدخل. مرّر HTML عبر أداة تعقيم مخصصة مثل DOMPurify مع قائمة سماح للوسوم والسمات، ثم ضعه في الصفحة فقط. افعل هذا على الخادم إذا كان المحتوى سيُعرض لأي شخص غير مؤلفه، لأن التعقيم في جانب العميل يمكن تجاوزه من أي شخص يستطيع مخاطبة واجهة برمجية مباشرة. هذه الأداة تعرض معاينتها محليًا في متصفحك بإدخالك أنت، وهو نموذج تهديد مختلف عن نشر ماركداون شخص آخر.
الأسئلة الشائعة
أي لهجة ماركداون يتبع هذا؟
CommonMark، إضافة إلى امتدادات GitHub التي يمكّنها markdown-it افتراضيًا مثل الجداول وقوائم المهام. يجتاز مجموعة مطابقة CommonMark كاملة، لذا فالمخرج يطابق GitHub وDiscourse ومعظم المقدمين الحديثين.
هل HTML المولد آمن للنشر مباشرة؟
لا. مرّره دائمًا عبر أداة تعقيم مثل DOMPurify قبل إدراجه في صفحة، خاصةً للمحتوى الذي لم تكتبه. حتى مع تعطيل HTML الخام، تظل أهداف الروابط متحكمًا فيها من المهاجم وقد ينفذ عنوان URL من نوع javascript:.
لماذا اختفت فواصل أسطري المفردة؟
يدمج ماركداون القياسي الأسطر المتتالية في فقرة واحدة؛ والفاصل الصلب يحتاج مسافتين زائدتين أو سطرًا فارغًا. فعّل مفتاح السطر الجديد المفرد إذا كان مصدرك نصًا بأسلوب المحادثة حيث يجب أن يتحول كل Enter إلى فاصل سطر.
هل يمكنني لصق HTML في جانب ماركداون؟
نعم، إذا فعّلت خيار HTML الخام. وإلا تُهرَب الوسوم وتُعرض كنص حرفي، وهو الافتراضي الآمن. خلط HTML خام في ماركداون صالح لكن الكتل يجب أن تفصل بأسطر فارغة لتُحلل كما هو مقصود.
هل يُرفع محتواي إلى أي مكان؟
لا. يعمل markdown-it بالكامل في متصفحك ولا تقدم الصفحة أي طلب شبكة بنصك. يمكنك تحميل الصفحة والانفصال عن الإنترنت ومواصلة التحويل.
لماذا تكسر الطباعة الذكية الكود الخاص بي؟
تعيد كتابة الاقتباسات والشرطات عبر النثر، لذا فعلم مثل --dry-run المكتوب خارج نطاق كود يتحول إلى شرطة طويلة. أحط شظايا الكود بعلامات خلفية؛ لا يطبق المحلل الاستبدال الطباعي داخل نطاقات الكود أو الكتل المسوّرة أبدًا.