قواعد گسترشیافته (Extended Syntax)
قواعد پایهای که جان گروبر در نسخه اصلی مارکدون معرفی کرده بود، بیشتر نیازهای روزمره را پوشش میداد. اما با گذشت زمان، بسیاری از کاربران به امکانات بیشتری نیاز پیدا کردند. به همین دلیل، توسعهدهندگان و سازمانها قابلیتهای تازهای به مارکدون افزودند و نسخههای کاملتری از آن ایجاد کردند.
این امکانات اضافه شده شامل مواردی مانند: جدولها، بلوکهای کد پیشرفته، لینکسازی، و پانویسها و موارد دیگر هستند.
نسخههای دارای این امکانات، اغلب با عنوان نسخههای گسترشیافته مارکدون شناخته میشوند. این ویژگیها معمولاً یا بهصورت نسخههای گسترشیافته در دسترس هستند، یا با نصب افزونه روی پردازشگرهای سازگار فعال میشوند.
چندین زبان نشانهگذاری سبک وجود دارد که بر پایه مارکدون ساخته شده و قابلیتهای آن را گسترش میدهند. این زبانها سینتکس پایهی گروبر را شامل میشوند و امکانات جدیدی را به آن اضافه میکنند.
بسیاری از محبوبترین ویرایشگرهای مارکدون از این زبانهای نشانهگذاری سبک استفاده میکنند:
در ادامه، برخی از این قواعد گسترشیافته را بررسی خواهیم کرد تا ببینیم چگونه میتوانند نوشتن در مارکدون را سادهتر و خواناتر کنند.
جدولها (Tables)
مارکدون پایه از جدولها پشتیبانی نمیکند، اما در نسخههای گسترشیافته میتوان بهسادگی جدول ایجاد کرد. برای ایجاد جدول در مارکدون:
- از سه یا چند خط تیره (
---) برای مشخص کردن سر ستونها استفاده میشود. - برای جدا کردن ستونها، از خط عمودی (
|) استفاده میشود.
مثال ساده:
| نام | نقش |
| ---- | --------- |
| علی | مدیر |
| سارا | برنامهنویس |
خروجی به این شکل خواهد بود:
| نام | نقش |
|---|---|
| علی | مدیر |
| سارا | برنامهنویس |
اگر طول ستونها یا تعداد خط تیرهها متفاوت باشد، باز هم خروجی تغییر نخواهد کرد:
| نام | نقش |
| --- | ----------- |
| علی | مدیر |
| سارا | برنامهنویس |
برای مرتبتر شدن جدولها میتوان متن داخل ستونها را چپچین، وسطچین یا راستچین کرد. برای این کار، در ردیف سرستونها از علامت دونقطه (:) استفاده میشود:
مثال:
| نام اعضا | نقش افراد | توضیحات |
| :------- | :--------: | ----------------: |
| علی | مدیر | مسئول تیم |
| سارا | برنامهنویس | توسعهدهنده وب |
| محمد | طراح | طراحی رابط کاربری |
خروجی به این شکل خواهد بود:
| نام اعضا | نقش افراد | توضیحات |
|---|---|---|
| علی | مدیر | مسئول تیم |
| سارا | برنامهنویس | توسعهدهنده وب |
| محمد | طراح | طراحی رابط کاربری |
با استفاده از این روش میتوانید محتوای ستونها را به صورت دلخواه ترازبندی کنید تا جدولهایتان خواناتر و مرتبتر به نظر برسند.
در جدولها میتوانید از قالببندی متن هم استفاده کنید. مثلاً درون سلولها لینک اضافه کنید، متن را پررنگ یا مورب کنید، یا از کدهای درونخطی (`کد`) بهره ببرید.
با این حال، برخی عناصر مانند عنوانها، تصاویر یا خطوط جداکننده درون جدول پشتیبانی نمیشوند.
بلوک کد حصاردار (Fenced Code Block)
پیشتر با کد درونخطی و بلوک کد آشنا شدیم. حالا به نوع دیگری از کد میرسیم که انعطاف بیشتری دارد و کار با آن راحتتر است.
بسته به پردازشگر یا ویرایشگر مارکدون، در این روش، بهجای تورفتگی (indent)، کافی است در ابتدای خط و انتهای بلوک کد از سه بکتیک (```) یا سه تیلدا (~~~) استفاده کنید:
```
def greet(name):
print(f"Hello, {name}!")
greet("World")
```
خروجی:
def greet(name):
print(f"Hello, {name}!")
greet("World")
برجستهسازی کد (Syntax Highlighting)
یکی از مزایای مهم بلوکهای حصاردار این است که میتوانید زبان مورد استفاده را مشخص کنید تا کد با رنگبندی و هایلایت مناسب نمایش داده شود. برای این کار، نام زبان را بعد از بکتیکهای ابتدایی بنویسید:
```python
def greet(name):
print(f"Hello, {name}!")
greet("World")
```
خروجی:
def greet(name):
print(f"Hello, {name}!")
greet("World")
برای کدهای کوتاه، استفاده از بلوک ساده کافی است. اما اگر کد طولانی دارید یا میخواهید از برجستهسازی (Highlight) بهره ببرید، بهتر است از بلوکهای حصاردار استفاده کنید.
پانویس (Footnote)
پانویسها به شما امکان میدهند که توضیحات یا منابع اضافی را بدون شلوغ کردن متن اصلی اضافه کنید. هنگام استفاده، یک شماره بالانویس (superscript) همراه با لینک در متن قرار میگیرد که با کلیک روی آن، کاربر به بخش توضیح پانویس هدایت میشود.
برای ایجاد پانویس:
- در متن، از کلاهک (^) و یک شناسه داخل براکت استفاده کنید (مثلاً
[^1]). شناسه میتواند عدد یا کلمه باشد، اما نباید شامل فاصله یا تب باشد. - سپس متن پانویس را با همان شناسه و یک دونقطه تعریف کنید (مثلاً
[^1]: متن پانویس).
در خروجی، پانویسها بهصورت خودکار شمارهگذاری میشوند. لازم نیست همهی پانویسها را در انتهای سند بیاورید؛ فقط کافی است خارج از بخشهایی مثل عنوانها، جدولها یا نقلقولها قرار بگیرند.
مثال:
این یک پانویس ساده است[^1] و این هم یک پانویس طولانیتر[^توضیح].
[^1]: این اولین پانویس است.
[^توضیح]:
این یک پانویس طولانیتر است که میتواند چند پاراگراف داشته باشد.
برای مثال اینجا یک کد داریم: `{ my code }`
همچنین میتوانید پاراگرافهای بیشتری اضافه کنید.
خروجی:
این یک پانویس ساده است1 و این هم یک پانویس طولانیتر2.
خطخوردگی (Strikethrough)
گاهی لازم است در متن نشان بدهیم که یک کلمه یا عبارت حذف یا اشتباه است. برای این کار، کافی است قبل و بعد از متن موردنظر دو علامت تیلدا (~~) قرار دهیم:
مثال:
زمین ~~صاف~~ گرد است.
~~این جمله کامل خطخورده است.~~
خروجی:
زمین صاف گرد است
این جمله کامل خطخورده است.
فهرست کارها (Task Lists)
فهرست کارها (Task List) برای زمانی کاربرد دارد که میخواهید مجموعهای از کارها یا اهداف را بهصورت لیست نمایش دهید و مشخص کنید کدام انجام شده و کدام باقی مانده است.
ساختار کلی به این شکل است:
- اول یک خط تیره (
-) قرار دهید. - بعد از آن، یک جفت کروشه بنویسید.
- اگر میخواهید مورد تیکخورده باشد، داخل کروشه یک
xقرار دهید ([x]). در غیر این صورت فاصله بگذارید ([ ]).
مثال:
- [x] نوشتن کتاب
- [ ] بهروزرسانی وبسایت
- [ ] تماس با پشتیبانی
خروجی:
- نوشتن کتاب
- بهروزرسانی وبسایت
- تماس با پشتیبانی
از فهرست کارها میتوانید برای مدیریت وظایف، برنامهریزی پروژهها یا حتی یادداشتهای شخصی استفاده کنید. بهویژه در گیتهاب (GitHub) و بسیاری از ویرایشگرهای مارکدون، این قابلیت بسیار رایج است.
تمرین عملی
در این تمرین، هدف شما انتخاب یک متن دلخواه و قالببندی آن با استفاده از قابلیتهای گسترشیافته Markdown است. برای انجام این کار، از دستورالعملهای زیر پیروی کنید:
- یک جدول ساده با ترازبندی دلخواه بسازید تا اطلاعات یا دادههای متنی خود را سازماندهی کنید.
- یک بلوک کد حصاردار ایجاد کنید و زبان کد را برای برجستهسازی (Syntax Highlighting) مشخص کنید.
- حداقل یک پانویس (Footnote) به متن اضافه کنید.
- یک یا چند کلمه خطخورده (Strikethrough) در جملات مشخص کنید.
- یک فهرست کارها (Task List) بسازید و مشخص کنید کدام موارد انجام شده و کدام باقی ماندهاند.