برای کامل کردن [میرا](http://miraxy.github.io) نیاز به یک تحلیل‌کننده‌ی متن به روز‌تر از تحلیل‌گر استاندارد مارک‌داون داشتم که علائم بیشتر و نگارش کامل‌تری داشته باشه، ازونجایی که میرا با پرل نوشته شده و چیزی که مورد نیازم بود با پرل نوشته نشده بود هنوز، ناچارا خودم دست به کار شدم. اول تصمیم داشتم مارک‌داون با طعم گیت‌هاب رو بازنویسی کنم، اما با مرور زمان نیازهای بیشتری رو دیدم، مخصوصا برای متن‌هایی که نیاز هست راست به چپ بنویسیم و هر از گاهی ممکنه بخوایم چیزی رو چپ به راست بنویسیم که باعث شد به این فکر بیفتم که **مارک‌داون با طعم میرا** رو بنویسم که بعد از مدتی هم اسمش رو به markmoredown یا ساده تر markmod، مارک‌مود تغییر دادم. برای دیدن یک مثال از متن‌های نوشته شده با مارک‌مود میتوانید متن همین پست را در [این لینک](/assets/markmod.txt) ببینید. - [معرفی](#معرفی) - [نصب](#نصب) - [دستور زبان](#دستور_زبان) + [سربرگ‌ها](#سربرگ‌ها) * [برچسب‌های دلخواه](#برچسب‌های_دلخواه_در_سربرگ) + [جداکننده‌های افقی](#جداکننده‌های_افقی) + [پاراگراف‌ها و خطوط جدید](#پاراگراف‌ها_و_خطوط_جدید) * [استایل دادن به پاراگراف](#استایل_دادن_به_پاراگراف) + [تایپوگرافی](#تایپوگرافی) * [متن پررنگ یا قوی](#متن_پررنگ_یا_قوی) * [متن کج یا مورد تاکید](#متن_کج_یا_مورد_تاکید) * [مارک کردن](#مارک_کردن) * [متن اضافه شده](#متن_اضافه_شده) * [متن کوچک](#متن_کوچک) * [متن حذف شده](#متن_حذف_شده) * [متن حذف/اضافه شده](#متن_حذف_اضافه_شده) * [متن بالانویس](#متن_بالانویس) * [متن زیرنویس](#متن_زیرنویس) + [لیست‌ها](#لیست‌ها) * [لیست‌های ساده](#لیست‌های_ساده) * [لیست‌های شماره‌دار](#لیست‌های_شماره‌دار) * [لیست‌های تعریفی](#لیست‌های_تعریفی) * [جداساز‌ لیست‌ها](#جداساز‌_لیست‌ها) + [نقل قول‌ها](#نقل_قول‌ها) * [جداساز نقل قول‌ها](#جداساز_نقل_قول‌ها) + [لینک‌ها](#لینک‌ها) * [لینک‌های درون‌خطی](#لینک‌های_درون‌خطی) * [لینک‌های ارجاعی](#لینک‌های_ارجاعی) * [تعیین خواص لینک‌ها](#تعیین_خواص_لینک‌ها) + [تصاویر](#تصاویر) * [تصاویر درخط](#تصاویر_درخط) * [تصاویر ارجاعی](#تصاویر_ارجاعی) * [تعیین خواص تصاویر](#تعیین_خواص_تصاویر) + [کد (code)](#کد) * [کدهای درخط](#کدهای_درخط) * [بلوک‌های کد](#بلوک‌های_کد) - [جداساز بلوک‌های کد](#جداساز_بلوک‌های_کد) * [بلوک‌های کد محصور](#بلوک‌های_کد_محصور) + [جداول](#جداول) + [فرمول‌های ریاضی](#فرمول‌های_ریاضی) * [نمایش بلوکی فرمول‌های ریاضی](#نمایش_بلوکی_فرمول‌های_ریاضی) * [نمایش درخط فرمول‌های ریاضی](#نمایش_درخط_فرمول‌های_ریاضی) + [پانویس](#پانویس) + [کتاب نگاری](#کتاب_نگاری) ## معرفی مارک‌مورداون یک کتابخانه‌ی آزاد با لایسنس MIT است برای تبدیل متن‌های شبه مارک‌داون به html که از مارک‌داون استاندارد به همراه تعدادی اصلاحات و امکانات اضافه که اکثرا از پارسرهای دیگر مارک‌داون مانند PHP Markdown Extra, MultiMarkdown, kramdown و... الهام گرفته شده‌اند پشتیبانی می‌کند. ## نصب اگر خارج از محیط میرا بخواهید از مارک‌مود استفاده کنید نیاز به پرل دارید. سیستم‌عامل‌های شبه یونیکس مثل توزیع‌های گنو/لینوکسی یا مک، پرل را به شکل پیش‌فرض دارند، برای ویندوز هم می‌توانید [پرل توت‌فرنگی](http://strawberryperl.com/) را نصب کنید. بعد از مطمین شدن از نصب پرل با این دستور مارک‌مود را نصب کنید: cpan Text::Markmoredown اگر بخواهید خارج از محیط برنامه نویسی از مارک‌مود استفاده کنید در خط فرمان این دستور را برای فایلی که نیاز به ترجمه دارد استفاده کنید: markmod filename.md به این ترتیب خروجی ترجمه شده روی خط فرمان نمایش داده میشود. یا میتوانید آن را در یک فایل ذخیره کنید markmod filename > name.html همچنین کدهای منبع هم در [مخزن گیت‌هاب پروژه](https://github.com/kiamazi/markmoredown) در دسترس هستند و میتونید از روی سورس نصبش کنید یا در گسترشش مشارکت کنید. ## دستور زبان ### سربرگ‌ها سربرگ‌ها از h1 تا h6 fh با کمک # ها ساخته می‌شوند. # h1 Heading ## h2 Heading ### h3 Heading #### h4 Heading ##### h5 Heading ###### h6 Heading

h1 Heading

h2 Heading

h3 Heading

h4 Heading

h5 Heading
h6 Heading
برای سربرگ‌های ۱ و ۲ دستور زبان متفاوتی هم وجود دارد: Alt-H1 ====== Alt-H2 ------

Alt-H1

Alt-H2

#### برچسب‌های دلخواه در سربرگ ## h2 #:head-label #### h4 ######## :my-label

h2

h4

Alt-h1 ====== :my-label

Alt-H1

### جداکننده‌های افقی جداکننده‌های افقی با استفاده از تکرار بیشتر از ۳تای - یا ـ یا * شناخته می‌شوند که میتوانند بینشان از یک فاصله‌ی دلخواه هم استفاده کرد *** --- ___ * * * * * * * * * -------- ______________
_ _ _ ### پاراگراف‌ها و خطوط جدید پاراگراف‌ها `

` با استفاده از یک خط خالی بین دو بلوک متن مشخص می‌شوند و خطوط جدید`


` با دو فاصله(space) در آخر خط شناخته می‌شوند. لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.

کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد.⋅⋅ در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و شرایط سخت تایپ به پایان رسد وزمان مورد نیاز شامل حروفچینی دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. {= style="font-family:mono;font-szie:12px;background-color:#EEE;padding:10px;" } در پاراگراف دوم ⋅⋅ به معنی ۲ فاصله(space) متوالی است. نتیجه دو پاراگراف فوق این است: لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. {= style="background-color:#EEE;padding:10px;" } کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد. در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و شرایط سخت تایپ به پایان رسد وزمان مورد نیاز شامل حروفچینی دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. {= style="background-color:#EEE;padding:10px;" } #### استایل دادن به پاراگراف برای استایل دادن به یک پاراگراف در آخر هر پاراگراف در یک خط جدید بین یک آکولاد و یک مساوی بلافاصله بعد از آن و آکولاد بسته میتوان کلاس‌ها، id و هر چیز موردد نیا دیگری را نوشت. هر کلاس با یک . و هر id با یک # در ابتدا مشخص میشوند و با یک فاصله از هم جدا میشوند. به جز جدا کردن این مشخصه ها از هم در هیچ جای دیگری از فاصله نباید استفاده شود. {= .class #id style="..." dir="..." align="..." style="background:#DDD;font-size:12px;" more... } ^ Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi.⋅⋅ Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad. {= .class #entry .more align="center" #body width="200px" } Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi.
Labore officiis his ex, soluta officiisconcludaturque ei qui, vide sensibus vim ad. {= .class #entry .more align="center" #body width="200px" } ### تایپوگرافی #### متن پررنگ یا قوی متن های پررنگ با تکرار دو ستاره قبل و بعد از کلمات مشخص میشوند این قسمت از متن \*\*پر رنگ\*\* یا \*\*قوی\*\* است. این قسمت از متن **پر رنگ** یا **قوی** است. #### متن کج یا مورد تاکید برای کج نوشتن یا موردتاکید قرار دادن یک کلمه از یک زیرخط _ قبل و بعد از کلمات استفاده می‌کنیم. این کلمه **\_مورد تاکید_** است این کلمه مورد تاکید است این کلمه _مورد تاکید_ است #### مارک کردن کلمات با دو مساوی = قبل و بعدشان مارک می‌شوند می‌توان قسمتی از متن را ==مارک== کرد می‌توان قسمتی از متن را مارک کرد می‌توان قسمتی از متن را ==مارک== کرد #### متن اضافه شده با استفاده از دو بعلاوه + متن اضافه شده مشخص میشود این یک متن است که این **\++کلمه++** به آن اضافه شده است. این یک متن است که این کلمه به آن اضافه شده است. این یک متن است که این ++کلمه++ به آن اضافه شده است. #### متن کوچک با استفاده از دو منفی - قبل و بعد از هر کلمه آن را کوچک می‌کنیم این کلمه **\--کوچک‌تر--** است این کلمه کوچکتر است این کلمه --کوچکتر-- است #### متن حذف شده با استفاده از دو آکولاد ~ قبل و بعد از کلمات آن‌ها را حذف شده معرفی می‌کنیم قسمتی از متن **\~~ابتشاه~~** نوشته شده قسمتی از متن ابتشاه نوشته شده قسمتی از متن ~~ابتشاه~~ نوشته شده #### متن حذف/اضافه شده این قسمت از متن **\~~ابتشاه~>اشتباه~~** نوشته شده بود این قسمت از متن ابتشاه اشتباه نوشته شده بود این قسمت از متن ~~ابتشاه~>اشتباه~~ نوشته شده بود قبل و بعد از ~> یک فاصله اختیاری است. #### متن بالانویس x ^y + z^ x y + z اکس به توان وای بعلاوه زد یا اکس ^وای + زد^ در نظر گرفته شود. x ^y + z^ #### متن زیرنویس متن **\~زیرنویس\~** متن ~زیرنویس~ C~6~H~12~O~6~ C6H12O6 C6H12O6 ### لیست‌ها #### لیست‌های ساده لیست های ساده با خط تیره (-) علامت جمع (+) یا ستاره (*) در ابتدای خط مشخص میشوند. با هر بار تو رفتگی با چهار اسپیس میتوان یک زیر لیست در لیست قبلی مشخص کرد. ترتیب استفاده از علایم هیچ اهمیتی ندارد. + لورم ایپسوم + متن ساختگی + با تولید سادگی نامفهوم + از صنعت چاپ + و با استفاده از + طراحان گرافیک است. - چاپگرها - متون - روزنامه - مجله * در ستون * و سطرآنچنان که * لازم است - برای شرایط فعلی - تکنولوژی مورد نیاز + کاربردهای متنوع + با هدف بهبود + ابزارهای کاربردی می باشد.