همه ما روزانه کم یا زیاد، به بهانههای مختلف و برای موضوعات متفاوت نیاز به نوشتن و یادداشت برداری داریم، تا چندسال پیش بیشتر با کاغذ و قلم و این روزها بیشتر با کامپیوترهای کوچیک و بزرگی که همه جا دم دستمون هستن. معمولا موقع نوشتن از امکاناتی مثل پررنگ کردن قسمتی از متن برای جلب توجه بیشتر یا استفاده از تیترها، پینوشتها، ارجاعها و سایر موارد نگارشی هم استفاده میکنیم، اما یکی از مشکلاتی که خیلی وقتها توی این یاداشت برداریها باهاش مواجه میشیم برنامههایی هست که برای اینکار استفاده میکنیم، ممکنه از مایکروسافت آفیس و برنامه word استفاده کنیم اما روی خیلی از موبایلها نتونیم بازشون کنیم یا بخوایم نوشته هامون رو برای کسی ایمیل کنیم و نگران این باشیم که آیا نرم افزار مورد نیاز رو برای باز کردن و خوندن فایل ارسالی داره یا نه و خیلی مشکلاتی مثل این. اما چه کار میتونیم بکنیم که این مشکلات رو نداشته باشیم؟ راههای زیادی هست، مثلا ذخیره کردن نوشتههامون به شکل عکس یا تبدیل کردن متنها به pdf یا نوشتن توی یک فایل متنی ساده، که مطمینا هرکدوم دردسرها و محدودیتای خودشون رو هم دارن. یا اینکه خیلی راحت برای نوشتن متنهامون از فرمت مارک داون استفاده کنیم. مارک داون در اصل یه فرمت برچسب زنی متن مثل خیلی از زبانهای برچسب زنی دیگه مثل POD, html، ReStructuredText، Grutatext و EtText هست، اما با یک سری تفاوتهای ساختاری خیلی بزرگ توی فلسفهش. ![markdown](/images/2018-3-18-markdown.png "markdown") ### فلسفه Markdown مارک داون یک فرمت برچسب زنی متن با فلسفهی **راحت نوشتن - راحت خواندن** تا حد امکان است که البته، قابلیت خوانایی بیشتر مورد تاکید قرار گرفته. مهمترین قسمت فلسفه مارک داون اینه که یک سند فرمت Markdown باید به تنهایی به عنوان یک متن ساده قابل انتشار باشه، بدون اینکه به نظر برسه با برچسب یا دستورالعمل قالب بندی مشخص شده. در حالی که نحو Markdown تحت تأثیر سایر فرمتهای برچسبزنی بوده اما بزرگترین منبع الهام بخش Markdown، فرمت ایمیل متن ساده(plain text email) است. به همین دلیل، دستور نگارش Markdown به طور کامل از اجزای متمایز تشکیل شده، که شخصیتهای متمایز با دقت انتخاب شدند تا مفهوم متن بدون نیاز به هیچ تبدیلی به سایر فرمتها قابل درک باشه. به عنوان مثال، ستاره ها در اطراف یک کلمه که همونطور که به نظر می رسه مفهوم * *تاکید* * رو داره. یا مثلا لیست ها که با کمک یک خط تیره - در خط جدید از هم جدا میشن یا نقل قولها که با > از سایر قسمتهای متن جدا میشن. برای مقایسه میتونید متن همین مقاله رو با فرمت مارکداون و به شکل [متن ساده توی این آدرس](/assets/markdown.txt) بخونید، همونطوری که دیدید چه قبل از تبدیل و چه بعد از تبدیل متن خوانا هست و مفهومش رو به خوبی بیان میکنه. ### نسخههای متفاوت مارکداون به شکل کلی میشه مارک داون رو دارای دو نسخه دونست، یکی Markdown و یکی هم MultiMarkdown #### Markdown [مارکداون][md] در سال ۲۰۰۴ به وسیلهی John Gruber به دنیا معرفی شد. او در معرفی مارک داون اینطور نوشت: > مارک داون به عنوان یک ابزار تبدیل متن به html است که به شما اجازه میده راحت بنویسید و راحت بخوانید. این برنامه از دو جز تشکیل شده (۱)فرمت نگارش مارکداون و (۲)یک برنامه با زبان [پرل][perl] که کار تبدیل را انجام میدهد. #### MultiMarkdown [مالتی مارک داون][mmd] در سال ۲۰۰۵ توسط Fletcher T. Penney معرفی شد و در پایه و مفهوم تقریبا همون مارک داون هست با همون فلسفه با چند تفاوت، (۱)برنامهی تبدیل کننده متن با perl و بر پایهی برنامه اصلی مارک داون نوشته شد اما به جز html امکان تبدیل متن به فرمتهای دیگه مثل pdf, latex, ompl, openDocument, word رو هم داره و (۲)دستور نگارشی که همهی خاصیتهای مارکداون رو به همراه چندتا قابلیت بیشتر مثل فرمت جدولها و بلوکهای کد و چیزهایی مثل اینها که این روزها جاهای زیادی مثل گیت هاب میبینیم رو داره. ![markdown](/images/2018-3-18-markdown2.png "markdown") ## دستور نگارش مارکداون #### > پاراگرافها و خطوط جدید هر پاراگراف در مارکداون معادل یک خط خالی است، دقت کنید که رفتن به خط جدید بدون ایجاد یک خالی بین دو بلوک متن به معنی ایجاد پاراگراف جدید نیست. معادل هر پاراگراف در html برچسب p میباشد. پاراگراف یک پاراگراف دو
پاراگراف یک
پاراگراف دو
برای شروع خط جدید، بدون ایجاد یک پاراگراف تازه، باید قبل از رفتن به خط جدید، در آخر خط فعلی از دو کاراکتر فاصله یا همان space استفاده کنید، خط جدید معادل br در html است خط اول (فاصلهی دوتایی) خط دوم خط اولمارکداون به شدت سادهگیر است و میتوان پاراگراف را مانند مثال بالا در چندین خط جدا از هم یا به شکل مثال پایین به صورت متوالی نوشت > این یک نقل قول در ۲پاراگراف است. نقل قولها برای نمایش متنی سخن دیگران یا ارجاع دادن به مطالبی از منابع متفاوت و خارج از متن اصلی است > ادامه نقل قول در پاراگراف دوم همچنین در هر نقل قول میتوان از سایر اجزای مارکداون شامل نقل قول، سربرگها لیست ها و بلوکهای کد استفاده کرد > این یک نقل قول است > > > این یک نقل قول درون یک نقل قول دیگر است > > ## سربرگ سطح دو > >1. آیتم یک >2. آیتم دوم > > return shell_exec("echo $input | $markdown_script"); [بلوک کد] #### > لیستها مارکداون از دو نوع لیست شامل لیستهای ساده و لیستهای شمارهدار پشتیبانی میکند. لیست های ساده با خط تیره (-) علامت جمع (+) یا ستاره (*) در ابتدای خط مشخص میشوند و لیست های شماره دار با اعداد به همراه یک نقطه در ابتدای خط. لیستهای ساده در html با ul و لیستهای شماره دار با ol برابر هستند * آبی * قرمز * سبز - آبی - قرمز - سبز + آبی + قرمز + سبز 1. آبی 2. قرمز 3. سبز اگر بخواهید لیست اعدادتان را بدون ترتیب بسازید باید از یک \ قبل از نقطه استفاده کنید ۱۳۹۶\. سال تولد #### > کد و بلوکهای کد کدها با ` در اطراف یک متن و بلوکهای کد با tab یا ۴اسپیس در ابتدای خط تعریف میشوند `کد` bcode block blockاین یک نقل قول در ۲پاراگراف است. نقل قولها برای نمایش متنی سخن دیگران یا ارجاع دادن به مطالبی از منابع متفاوت و خارج از متن اصلی است
ادامه نقل قول در پاراگراف دوم
کد
code block
block
در مالتی مارکداون شیوهی دیگری هم برای نوشتن بلوکهای کد مشخص شد که استفاده از سه ` متوالی در ابتدا و انتهای هر کد هست
```
بلوک کد
خط کد
ادامه
```
بلوک کد
خط کد
ادامه
#### > خطوط افقی / جدا کنندهها
خطوط افقی جدا کننده یا همان hr در html با توالی بیشتر از ۳ تای یکی از کاراکترهای * یا - قابل ایجاد هستند
* * *
***
*****
- - -
---------------------------------------
#### > لینکها
مارکداون از ۲ نوع لینک پشتیبانی میکند، لینکهای درون خطی و لینکهای ارجاعی.
لینکهای درونخطی را به این شکل میتوان ایجاد کرد
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.
---
This is an example inline link.
This link has no title attribute.
و لینک های ارجاعی نیز ساختاری به این صورت دارند This is [an example][id] reference-style link. یا This is [an example] [id] reference-style link. ادامه متن و متن و متن و متن. [id]: http://example.com/ "Optional Title Here" ---This is an example reference-style link.
This is an example reference-style link.
ادامه متن و متن و متن و متن.
همچنین لینکهای ارجاعی رو به این صورت هم میتوان نوشت my name is [kiavash][] [kiavash]: https://kiavash.one/ #### > لینکهای خودکار با قرار دادن آدرسها بین دو علامت < و > در متن به صورت لینک به نمایش در میایند