همه ما روزانه کم یا زیاد، به بهانههای مختلف و برای موضوعات متفاوت نیاز به نوشتن و یادداشت برداری داریم، تا چندسال پیش بیشتر با کاغذ و قلم و این روزها بیشتر با کامپیوترهای کوچیک و بزرگی که همه جا دم دستمون هستن. معمولا موقع نوشتن از امکاناتی مثل پررنگ کردن قسمتی از متن برای جلب توجه بیشتر یا استفاده از تیترها، پینوشتها، ارجاعها و سایر موارد نگارشی هم استفاده میکنیم، اما یکی از مشکلاتی که خیلی وقتها توی این یاداشت برداریها باهاش مواجه میشیم برنامههایی هست که برای اینکار استفاده میکنیم، ممکنه از مایکروسافت آفیس و برنامه word استفاده کنیم اما روی خیلی از موبایلها نتونیم بازشون کنیم یا بخوایم نوشته هامون رو برای کسی ایمیل کنیم و نگران این باشیم که آیا نرم افزار مورد نیاز رو برای باز کردن و خوندن فایل ارسالی داره یا نه و خیلی مشکلاتی مثل این.
اما چه کار میتونیم بکنیم که این مشکلات رو نداشته باشیم؟ راههای زیادی هست، مثلا ذخیره کردن نوشتههامون به شکل عکس یا تبدیل کردن متنها به pdf یا نوشتن توی یک فایل متنی ساده، که مطمینا هرکدوم دردسرها و محدودیتای خودشون رو هم دارن. یا اینکه خیلی راحت برای نوشتن متنهامون از فرمت مارک داون استفاده کنیم.
مارک داون در اصل یه فرمت برچسب زنی متن مثل خیلی از زبانهای برچسب زنی دیگه مثل POD, html، ReStructuredText، Grutatext و EtText هست، اما با یک سری تفاوتهای ساختاری خیلی بزرگ توی فلسفهش.
فلسفه Markdown
مارک داون یک فرمت برچسب زنی متن با فلسفهی راحت نوشتن - راحت خواندن تا حد امکان است که البته، قابلیت خوانایی بیشتر مورد تاکید قرار گرفته. مهمترین قسمت فلسفه مارک داون اینه که یک سند فرمت Markdown باید به تنهایی به عنوان یک متن ساده قابل انتشار باشه، بدون اینکه به نظر برسه با برچسب یا دستورالعمل قالب بندی مشخص شده. در حالی که نحو Markdown تحت تأثیر سایر فرمتهای برچسبزنی بوده اما بزرگترین منبع الهام بخش Markdown، فرمت ایمیل متن ساده(plain text email) است.
به همین دلیل، دستور نگارش Markdown به طور کامل از اجزای متمایز تشکیل شده، که شخصیتهای متمایز با دقت انتخاب شدند تا مفهوم متن بدون نیاز به هیچ تبدیلی به سایر فرمتها قابل درک باشه. به عنوان مثال، ستاره ها در اطراف یک کلمه که همونطور که به نظر می رسه مفهوم * تاکید * رو داره. یا مثلا لیست ها که با کمک یک خط تیره - در خط جدید از هم جدا میشن یا نقل قولها که با > از سایر قسمتهای متن جدا میشن. برای مقایسه میتونید متن همین مقاله رو با فرمت مارکداون و به شکل متن ساده توی این آدرس بخونید، همونطوری که دیدید چه قبل از تبدیل و چه بعد از تبدیل متن خوانا هست و مفهومش رو به خوبی بیان میکنه.
نسخههای متفاوت مارکداون
مارکداون بعد از معرفی و انتشار اولیه، تقریبا هیچ تغییری نکرده، اما به مرور زمان نسخههای متفاوتی از آن منتشر شده که ویژگیهای متفاوتی را به نسخه اصلی اضافه کردهاند.
Markdown
مارکداون در سال ۲۰۰۴ به وسیلهی John Gruber به دنیا معرفی شد. او در معرفی مارک داون اینطور نوشت:
مارک داون به عنوان یک ابزار تبدیل متن به html است که به شما اجازه میده راحت بنویسید و راحت بخوانید. این برنامه از دو جز تشکیل شده (۱)فرمت نگارش مارکداون و (۲)یک برنامه با زبان پرل که کار تبدیل را انجام میدهد.
MultiMarkdown
مالتی مارک داون در سال ۲۰۰۵ توسط Fletcher T. Penney معرفی شد و در پایه و مفهوم تقریبا همون مارک داون هست با همون فلسفه با چند تفاوت، (۱)برنامهی تبدیل کننده متن با perl و بر پایهی برنامه اصلی مارک داون نوشته شد اما به جز html امکان تبدیل متن به فرمتهای دیگه مثل pdf, latex, ompl, openDocument, word رو هم داره و (۲)دستور نگارشی که همهی خاصیتهای مارکداون رو به همراه چندتا قابلیت بیشتر مثل فرمت جدولها و بلوکهای کد و چیزهایی مثل اینها که این روزها جاهای زیادی مثل گیت هاب میبینیم رو داره.
PHP Markdown Extra
kramdown
...
دستور نگارش مارکداون
> پاراگرافها و خطوط جدید
هر پاراگراف در مارکداون معادل یک خط خالی است، دقت کنید که رفتن به خط جدید بدون ایجاد یک خالی بین دو بلوک متن به معنی ایجاد پاراگراف جدید نیست. معادل هر پاراگراف در html برچسب p میباشد.
پاراگراف یک
پاراگراف دو
<p>پاراگراف یک</p>
<p>پاراگراف دو</p>
برای شروع خط جدید، بدون ایجاد یک پاراگراف تازه، باید قبل از رفتن به خط جدید، در آخر خط فعلی از دو کاراکتر فاصله یا همان space استفاده کنید، خط جدید معادل br در html است
خط اول (فاصلهی دوتایی)
خط دوم
خط اول<br>
خط دوم
> سربرگ
سربرگ یا header در مارکداون با کمک کاراکتر # در ابتدای خط ایجاد میشوند، تعداد توالی # های پشت سر هم به معنی وزن کمتر سربرگ میباشد
# سربرگ یک
## سربرگ دو
### سربرگ سه
...
###### سربرگ شش
<h1>سربرگ یک</h1>
<h2>سربرگ دو<h2>
<h3>سربرگ سه<h3>
...
<h6>سربرگ شش</h6>
> نقل قول
نقل قول یا همان blockquote در مارکداون با کاراکتر > در ابتدای خط تعریف میشود
> این یک نقل قول در ۲پاراگراف است. نقل قولها برای نمایش
> متنی سخن دیگران یا ارجاع دادن به مطالبی از منابع متفاوت و
> خارج از متن اصلی است
>
> ادامه نقل قول در پاراگراف دوم
<blockquote>
<p>
این یک نقل قول در ۲پاراگراف است. نقل قولها برای نمایش متنی سخن دیگران یا ارجاع دادن به مطالبی از منابع متفاوت و خارج از متن اصلی است
</p>
<p>
ادامه نقل قول در پاراگراف دوم
</p>
</blockquote>
مارکداون به شدت سادهگیر است و میتوان پاراگراف را مانند مثال بالا در چندین خط جدا از هم یا به شکل مثال پایین به صورت متوالی نوشت
> این یک نقل قول در ۲پاراگراف است. نقل قولها برای نمایش متنی سخن دیگران یا ارجاع دادن به مطالبی از منابع متفاوت و خارج از متن اصلی است
> ادامه نقل قول در پاراگراف دوم
همچنین در هر نقل قول میتوان از سایر اجزای مارکداون شامل نقل قول، سربرگها لیست ها و بلوکهای کد استفاده کرد
> این یک نقل قول است
>
> > این یک نقل قول درون یک نقل قول دیگر است
>
> ## سربرگ سطح دو
>
>1. آیتم یک
>2. آیتم دوم
>
> return shell_exec("echo $input | $markdown_script"); [بلوک کد]
> لیستها
مارکداون از دو نوع لیست شامل لیستهای ساده و لیستهای شمارهدار پشتیبانی میکند. لیست های ساده با خط تیره (-) علامت جمع (+) یا ستاره (*) در ابتدای خط مشخص میشوند و لیست های شماره دار با اعداد به همراه یک نقطه در ابتدای خط. لیستهای ساده در html با ul و لیستهای شماره دار با ol برابر هستند
* آبی
* قرمز
* سبز
- آبی
- قرمز
- سبز
+ آبی
+ قرمز
+ سبز
1. آبی
2. قرمز
3. سبز
اگر بخواهید لیست اعدادتان را بدون ترتیب بسازید باید از یک \ قبل از نقطه استفاده کنید
۱۳۹۶\. سال تولد
> کد و بلوکهای کد
کدها با ` در اطراف یک متن و بلوکهای کد با tab یا ۴اسپیس در ابتدای خط تعریف میشوند
`کد`
bcode block
block
<code>کد</code>
<pre><code>
code block
block
</code></pre>
در مالتی مارکداون شیوهی دیگری هم برای نوشتن بلوکهای کد مشخص شد که استفاده از سه ` متوالی در ابتدا و انتهای هر کد هست
```
بلوک کد
خط کد
ادامه
```
<pre><code>
بلوک کد
خط کد
ادامه
</code></pre>
> خطوط افقی / جدا کنندهها
خطوط افقی جدا کننده یا همان hr در html با توالی بیشتر از ۳ تای یکی از کاراکترهای * یا - قابل ایجاد هستند
* * *
***
*****
- - -
---------------------------------------
> لینکها
مارکداون از ۲ نوع لینک پشتیبانی میکند، لینکهای درون خطی و لینکهای ارجاعی.
لینکهای درونخطی را به این شکل میتوان ایجاد کرد
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.
---
<p>This is <a href="http://example.com/" title="Title">
an example</a> inline link.</p>
<p><a href="http://example.net/">This link</a> has no
title attribute.</p>
و لینک های ارجاعی نیز ساختاری به این صورت دارند
This is [an example][id] reference-style link.
یا
This is [an example] [id] reference-style link.
ادامه متن و متن و متن و متن.
[id]: http://example.com/ "Optional Title Here"
---
<p>This is <a href="http://example.com/" title="Optional Title Here">an example</a> reference-style link.</p>
<p>This is <a href="http://example.com/" title="Optional Title Here">an example</a> reference-style link.</p>
<p>ادامه متن و متن و متن و متن.</p>
همچنین لینکهای ارجاعی رو به این صورت هم میتوان نوشت
my name is [kiavash][]
[kiavash]: https://kiavash.one/
> لینکهای خودکار
با قرار دادن آدرسها بین دو علامت < و > در متن به صورت لینک به نمایش در میایند
<https://kiavash.one>
> عکسها
قرار دادن عکس در متن هم مانند لینک ها از دو راه مستقیم و ارجاعی قابل انجام است، قرار دادن عکس به صورت مستقیم
![Alt text](/path/to/img.jpg)
![Alt text](/path/to/img.jpg "Optional title")
و به صورت ارجاعی
![Alt text][id]
[id]: url/to/image "Optional title attribute"
> حروف مایل
برای مایل نوشتن یا italic میتوان از متن را بین دو ستاره یا دو زیرخط قرار داد
*متن مایل*
_متن مایل_
<em>متن مایل</em>
> حروف پررنگ
برای پررنگ نوشتن باید متن را بین دو جفت ستاره یا دو جفت زیرخط قرار داد
**متن پررنگ**
__متن پررنگ__
<strong>متن پررنگ</strong>
https://github.com/kiamazi/kiavash.one/blob/master/content/blog/2018-03-18-markdown.md
میتوانید آنرا ویرایش کنید. البته باید یادآوری کنم که هر ویرایشی قبل از اتشار نیاز به تایید دارد.
این وبلاگ از disqus برای سیستم نظردهی استفاده میکند، اگر فرم نظردادن را نمیبینید احتمالا کسی به جای شما تشخیص داده که این سرویس مناسبتان نیست و آن را از دسترس شما خارج کرده، برای نظردادن در این شرایط از ابزار رفع فیلتر استفاده کنید