شرح لغة ماركداون لتسهيل تنصيق النص.

المقدمة

نبدأ بتعريف الماركداون من ويكيبيديا

ماركداون (بالإنجليزية: MarkDown) هي رموز للتنسيق تعتمد على لغة ترميز بسيطة، تسمح بكتابة محتوى نصي بسيط يتميز بسهولة الكتابة والقراءة، ثم تحويله إلى لغة HTML أو XHTML.

بعبارة أخرى، لغة بسيطة جدا لتنصيق النص بدون كتابة HTML بقواعدها المعقدة بعض الشيء مقارنة بماركداون.

ويمكنك تنصيق النص بعدة منصات مثلا تلغرام، يونغرام ، بلايروم, Github, ووردبرس، مواقع البريد الالكتروني مثل جيميل ومنصات أخرى عديدة.

والمتصفحات تقوم بعرض النص كما لو مكتوب بلغة HTML.

أحاول هنا شرح تقريبا كل الرموز المستخدمة للكتابة بطريقة ماركداون مع الأمثلة.

إنشاء الرأسيات

لإنشاء الرأسيات ما عليك سوا وضع علامة الرقم # قبل عنوان الرأسية وتضعها حسب المستوى مثلا للمستوى لااثني تضعها مرتين

مثال:

## هذه رأسية 2

### هذه رأسية 3

الناتج:

هذه رأسية 2

هذه رأسية 3

يفضل وضع مسافة بعد علامة الرقم وترك سطر فارغ قبل الرأسية وبعدها مباشرة.

الفقرات

لبدأ فقرة جديدة أو سطر جديد، اترك سطرا فارغا بين الفقرتين أو الجملتين أو أي شيء تريد الفصل بينهما.

يفضل عدم وضع مسافة في بداية الفقرة، فقط اترك سطر وابدأ بالكتابة.

الخط العريض والمائل

لكتابة جملة أو كلمة بالخط العريض (Bold) ضعها بين نجمتين

مثال:

**هذه الجملة بالخط العريض**

الناتج:

هذه الجملة بالخط العريض

ونجمة وحدةة للخط المائل Italic.

مثال:

هذه *الكلمة* بالخط المائل

الناتج:

هذه الكلمة بالخط المائل

لجعل التأثيرين معا، العريض والمائل، استخدم ثلاث نجمات.

وضع الاقتباس

لإشارة إلى أن النص مقتبس أو جملة، يمكن وضع علامة أكبر من ‘>" قبل الجملة أو الفقرة.

مثال:

> هذه الفقرة مقتبسة من ويكيبيديا

الناتج:

هذه الفقرة مقتبسة من ويكيبيديا

ويمكن وضع علامة أكبر من مرتين لو أردت اقتباس داخل اقتباس ثاني.

يفضل ترك سطر فارغ قبل وبعد الفقرة المقتبسة أو السطر.

القوائم

هناك نوعين من القوائم في html فبالتالي في ماركداون، القوائم المرتبة والغير المرتبة.

المرتبة تكون بداية كل عنصر رقم أو حرف، بينما الغير مرتبة رمز ال • قبل كل عنصر.

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

لإنشاء قوائم غير مرتبة، ببساطة نضع علامة الناقص أو "-" قبل كل عنصر أو نجمة. يفضل علامة الناقص. وترك مسافة بين العنصر والعلامة وكما المعتاد ترك سطر فارغ قبل وبعد القائمة.

ملاحظة، السطر الفارغ فقط قبل وبعد القائمة وليس بين العناصر.

مثال:

– العنصر الأول

– العنصر الثاني

– العنصر الثالث

الناتج:

  • العنصر الأول
  • العنصر الثاني
  • العنصر الثالث

القوائم المرتبة

يمكن إنشاء قوائم مرتبة بعدة طرق، لكن أبرزها بوضع رقم متبوعا بنقطة. يجب بدأ القائمة برقم 1، أي أول عنصر برقم 1 لكن بعد ذلك لا يشترط التسلسل في الأرقام.

وكذلك ترك سطر فارغ بعد وقبل القائمة، وليس بين كل عنصر.

سأضع عدة أمثلة حتى تتضح الصورة.

مثال بالأرقام:

1. العنصر الأول

2. العنصر الثاني

3. العنصر الثالث

الناتج:

  1. العنصر الأول
  2. العنصر الثاني
  3. العنصر الثالث

مثال بدون تلسل الأرقام:

1. العنصر الأول

1. العنصر الثاني

8. العنصر الثالث

الناتج:

  1. العنصر الأول
  2. العنصر الثاني
  3. العنصر الثالث

ملاحظة: بعض المنصات تسمح بعمل القائمة باستخدام الأحرف الكبيرة Capital letters ولكن أماكن أخرى لا تدعمها.

القوائم المتداخلة

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

مثال:

1. العنصر الأول

1. العنصر الثاني

- العنصر الفرعي الأول
- العنصر الفرعي الثاني

1. العنصر الثالث

الناتج:

  1. العنصر الأول
  2. العنصر الثاني
    • العنصر الفرعي الأول
    • العنصر الفرعي الثاني
  3. العنصر الثالث

كتابة الشفرات البرمجية

عند كتابة الشفرات البرمجية، لو سطر كتابتها بين علامة `

مثال:

اكتب `cd` في نافذة الأوامر لتغير المسار

الناتج:

اكتب cd في نافذة الأوامر لتغير المسار

أما لو مجموعة أسطر، فنبدأ بسطر منفصل ` ثلاث مرات ونضع نفسها في النهاية كما في المثال.

مثال:

“`

niceMessage = input("enter a nice message")

print(niceMessage)

“`

الناتج:


niceMessage = input("enter a nice message")
print(niceMessage)

مستخدمي قارئات الشاشة لا يشعرون بالفرق، لكن شكليا فهناك فرق، وفي منتديات البرمجة ينبهونك لو ما استخدمتها وشاركت بكود برمجي.

فاصل أفقي

لوضع خط فاصل أفقي ضع ثلاث أو أكثر من علامة النجمة "*"، أو شرطة "-" أو شرطة على السطر "_".

مثال:

——-

***

____

الناتج لأي مما سبق هو واحد:


الروابط

عادة في ماركداون صيغة الروابط تتحول إلى روابط مباشرة ولكن يمكن وضع الرابط بين علامتين أصغر من "<" وأكبر من ">" للتأكيد.

مثال:

<https://www.fawazar.me/>

الناتج:

https://fawaz.me/

تسمية الروابط

لو أردت تسمية الرابط مثلا موقع فواز عبد الرحمن بدلا من وضع الرابط مباشرة مثل https://www.fawazar.me/

يمكنك استخدام الصيغة الآتية:

[الاسم](الرابط)

مثال:

[موقع جوجل](https://www.google.com/)

الناتج:

موقع جوجل

تسمية الروابط في المراجع

هناك طريقة أخرى أيضا لتسمية الروابط لو الرابط ضمن فقرة معينة، تسهل القراءة شكليا.

الرابط ينقسم إلى قسمين، في الفقرة نكتب مثلا [اسم الرابط][الرمز]

ثم أي مكان في الملف مثلا بعد الفقرة أو في نهاية الملف نكتب

[الرمز]: <الرابط>

مثال:

هنا نجرب وضع وصلة [لموقع آبل][1]

[1]: <https://www.apple.com>

الناتج:

هنا نجرب وضع وصلة لموقع آبل

وضع عنوان للرابط

يمكن بعد الرابط مباشرة قبل إقفال القوس، وضع عبارة بين علامة اقتباس ستظهر عند وضع الفأرة على الرابط، قارئات الشاشة تقرأ العبارة عند الوقوف على الرابط بزر التاب.

الصيغة كالآتي:

[الاسم](الرابط "العبارة")

الصور

الصور مثل الروابط تماما، فقط نزيد علامة التعجب في البداية ومكان الاسم نكتب الوصف البديل لمستخدمي قارآت الشاشة.

مثال:

![شعار شركة آبل](https://commons.wikimedia.org/wiki/File:Apple_logo_black.svg)

الناتج:

شعار شركة آبل

وضع الرابط في الصورة

يمكن وضع الصورة مكان اسم الرابط لجعل الصورة تنقلك إلى الرابط

الصيغة:

[![وصف الصورة](مسار الصورة)](الرابط)

مثال:

[![شعار شركة آبل](https://commons.wikimedia.org/wiki/File:Apple_logo_black.svg)](https://www.apple.com)

الناتج:

شعار شركة آبل

تخطي الرموز

لكتابة الرمز المستخدم في ماركداون كما هي، ضع علامة "" قبل الرمز حتى لا يتم احتساب ضمن الماركداون.

مثلا لو أردت كتابة نجمة اكتبها "*".

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

خصائص إضافية في بعض المحررات

هناك لغات مبنية على ماركداون الأساسية، وبعضها تقدم دعم لخصائص إضافة مثل إمكانية إنشاء جداول وإمكانية وضع معرفات مخصصة للرأسيات لإنشاء روابط داخلية (للقفز)

علما أن هذه الخصائص ليست مدعومة كل مكان، فيجب التأكد قبل الاستخدام.

طريقة إنشاء الجدول

مثلا لو ننشأ جدول مع أسماء اللاعبين ونقاطهم:

| الاسم | النقاط |

| — | — |

| فواز | 1000 |

| مارينا | 1000 |

| قيس | 1000 |

الناتج:

الاسم النقاط
فواز 1000
مارينا 1000
قيس 1000

وضع معرف

يمكن وضع معرف بعد الرأسية بين قوسين مع علامة الرقم كالآتي:

### رأسية مستوى 3 {#المعرف}

طريقة إنشاء ملفات ماركداون

هناك محررات تلقائية تدعم ماركداون مثل github وتلغرام وفي ووردبرس مثلا لا بد من وضع Block لماركداون، يمكن تفعيلها بتثبيت إضافة jetpack الشهيرة أو باستخدام المحرر الكلاسيكي.

أما في الكمبيوتر، يمكن إنشاء ملف بأي محرر بصيغة .md ولكن لا تعطيك خاصية المعاينة هذه المحررات إلا بعضها.

شخصيا أستخدم Visual Studio Code هو برنامج ضخم ولكن كل ما يهم لكتابة ماركداون ما يلي

  • Control+n لإنشاء ملف جديد
  • control+s لحفظ الملف ويجب تسميته مع الصيغة .md مثلا تجربة.md
  • يجب حفظ الملف قبل الكتابة حتى يتعرف البرنامج أنك تكتب ماركداون.
  • control+shift+v للمعاينة في تبويبة جديدة، ويمكن قفل التبويبة ب control+w.
  • اضغط اختصار الحفظ بين حين وآخر للحفظ بشكل مستمر.
  • محرر vs code يستخدم للكثير من الأشياء، فهو ربما خيار ضخم فقط لماركداون لكنه خفيف وسريع.

الختام

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

أي محررات أخرى لكتابة الماركداون شاركوها وسأضعها بإذن الله في الموضوع، وأي استفسار أنا بالخدمة.

تحياتي.

أول إضافة NVDA لي، الرابط المباشر

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

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

معلومات عن الإضافة

وظيفة الإضافة

يمكن لهذه الإضافة تحويل روابط مواقع التخزين السحابي Dropbox وـ Google Drive وـ oneDrive إلى روابط مباشرة، إضافةً إلى توليد رابط مباشر لمحادثة WhatsApp مع الرقم الذي يدخله المستخدم.

كيفية الاستخدام

  • قم بتحديد أحد روابط المشاركة من Dropbox أو Google Drive أو oneDrive أو نسخه إلى الحافظة.
  • اضغط الاختصار alt+NVDA+l لتحويل الرابط إلى رابط مباشر يتم وضعه مباشرة في حافظتك.
  • ينطبق الأمر نفسه على أرقام الهواتف، فما عليك سوى نسخ رقم الهاتف الجوال المراد التحدث معه أو مشاركته إلى الحافظة أو تحديده ثمّ ضغط الاختصار نفسه (alt+NVDA+L).
  • إذا كنت ترغب في فتح الرابط الذي قامت الإضافة بتوليده في متصفحك، فما عليك سوى ضغط الاختصار alt+NVDA+shift+l.

لماذا استخدام الروابط المباشرة؟

تسمح لك الروابط المباشرة بالوصول بشكل فوري إلى محاورة حفظ الملف المستخدمة لتحميله بمجرد فتحه في المتصفح دون إرهاقك بالتنقل داخل صفحة تحميل الشركة المستضيفة للموقع للوصول إلى الرابط. وعلاوةً على ذلك، يمكن استخدام الرابط المباشر لفتح الملف الذي يؤدي إليه مباشرة أو مشاهدته و/أو الاستماع إليه في برامج معينة مثل مشغلات الوسائط الداعمة لتشغيل الملفات من الإنترنت. وينطبق الأمر نفسه على WhatsApp, إذ يمكنك في حال استخدامه على نطاق واسع في بلدك توليد رابط للتواصل مباشرة مع أي رقم تريده سواءٌ أكان رقم عميل أو قسم الدعم الفني أو غير ذلك من الأرقام دون الحاجة إلى إنشاء جهة اتصال في كل مرة. كل ما عليك فعله هو اختيار الرقم المراد أو نسخه لتبدأ الدردشة معه على الفور. ويمكنك بهذه الطريقة أيضاً أن تشارك مع الآخرين رقمك الخاص حتى يتواصلوا معك عبر WhatsApp بكل يسرٍ وسهولة، لا سيما إذا كنت تعمل في أحد الأعمال الحرة.

ملاحظات

  • الرابط المراد تحويله يجب أن يكون رابط لملف وليس لمجلد.
  • يمكنك تغيير اختصارات الإضافة من قائمة NVDA>تفضيلات>تخصيص اختصارات NVDA.
  • في حال واجهت الإضافة مشكلة في تحويل أحد أشكال أرقام الهواتف إلى رابط WhatsApp لأي سبب، يمكنك إرسال بريد إلكتروني لي يتضمن مثالاً على الخلل الحاصل.
  • لا يمكن تحويل روابط Google Drive لبعض الصيغ أو الملفات المرفوعة عليه المتجاوزة لحجم معين إلى روابط مباشرة؛ وعليه، يوصل الرابط المباشر الناتج عن الإضافة إلى صفحة تحمل النص "يتعذر على Google Drive فحص هذا الملف للتحقق من عدم احتوائه على فيروسات." وسيكون عليك في هذه الحالة ضغط رابط "تنزيل على أيّ حال".

شكر وامتنان

جزيل الشكر للأصدقاء الآتية أسماؤهم الذين لولاهم ما كان لهذه الإضافة أن ترى النور:

  • قيس الرفاعي: لتجربة الإضافة وتزويدي بعدد من المواد لتجربتها بالإضافة إلى ملاحظاته القيمة وفكرة هذه الإضافة نفسها.
  • مارينا أمير: على ترجمتها للإضافة إلى الفرنسية وتجربتها وتدقيق ملفاتها.
  • رياض أسوم: على الترجمة العربية للإضافة.
  • جميع مجربي الإضافة.

لا تنسونا من ملاحظاتكم القيمة، واقتراحاتكم الثمينة، فيمكنكم كتابتها على الايميل أو Github أو تويتر.
شكرا جزيلا لكم،
تقبلوا تحياتي.

مراجعة كتاب Python Tutorial BY Tutorial Point

أرحب بكم إلى مراجعة كتاب Python Tutorial من Tutorials Point:
سأدخل إلى الموضوع مباشرة:
كما هو مذكور في مقدمة الكتاب، هذا الكتاب ليس موجها للمبتدئين كليا في عالم البرمجة، وإنما لمن لديهم خبرة سابقة في لغات أخرى ويريد تعلم Python.
برئي الكتاب يقدم لك مدخل ممتاز ل Python, ويعطيك قطرة من كل بحر،
بحيث يبتدي بشرح الأساسيات ثم ينتقل لمواضيع متقدمة مثل برمجة سكربتات للخادم (Back end) للمواقع، مواضيع الشبكات (Sockets), واجهة المستخدم )Graphical User Interface), وإنشاء Packages.
الكتاب يشرح مكتبة ليست مشهورة في عالم إمكانية الوصول بإنشاء الواجهات الرسومية (Tkinter) لكن يوفر رابط لشرح المكتبة الأنسب للمكفوفين والتي مستخدمة في برامج كثيرة مكتبة (WX Python) وكذلك مكتبة أخرى مشهورة (PyQt).
ما جربت الشرح الذي بموقعهم للمكتبة، وإنما اعتمدت على الموقع الرسمي لمكتبة WX Python.
على كلٍ، المشكلة مع الكتاب هو تكرار المعلومات:
فمثلا مع Math Module, تجد العديد والعديد من الصفحات يسرد Methods من هذه المكتبة، وكلها بنفس الطريقة، رغم أن أغلبها تشتغل بطريقة نفسها، تعطيه رقمين يعطيك الناتج، مثلا جذر، أو أي عملية رياضية أخرى.
وقيص على هذا المنوال، إذا دخل أي مكتبة يسرد لك تقريبا كل ال Methods من تلك المكتبة، والتي في الغالب ستنساها 🙂 لكن كمرجع فهو ممتاز، لكن من ينافس Google?
برئي لو وضع أسامي Methods كلها بدلا من وضع مثال لكل Method كان أفضل، مثلا Method و syntax.
والمثال لكل Method يكون بسيط جدا، ومثال واحد فقط، فبالتالي الكتاب أبدا غير مناسب للمبتدئين.
وأمر آخر كان يزعجني، يشرح لك Method كان يستخدمه من بداية الموضوع أو من بداية الكتاب،
مثلا بعد شرح طويل عن التعامل مع الملفات، وشرح العديد من Methods للتعامل مع الملفات، وفي كل مثال كان يستخدم file.close,
رغم أنه شرح أهمية file.close من البداية، يشرح لك Method File.close في نهاية الموضوع.
ملاحظة: الإصدار المستخدم في الشرح هو Python 3.5. لكن طالما Python 3, فأنت في السليم.
بشكل عام، الكتاب جيد لو كانت لديك تجارب سابقة مع لغات أخرى من عالم Object-oriented, لكن ليس مناسب أبدا للمبتدئين.
لم أقرأ حتى الآن كتب أخرى تشرح Python, لو قرأت مستقبلا أضع لكم هنا، خصوصا لو وجدت خيارات مناسبة للمبتدئين.
تقيمي 3/5.
يمكنك تحميل الكتاب مجانا من موقع Tutorial Point بصيغة PDF.
اضغط هنا لتحميل الكتاب