| LOWDOWN(5) | File Formats Manual | LOWDOWN(5) |
نام (NAME)
lowdown —
قالب
پرونده Markdown
برای ابزار
lowdown
توضیحات (DESCRIPTION)
قالب Markdown یک زبان قالببندی متنی ساده و سرراست (plain-text) است. “متن ساده” در اینجا بدین معناست که ورودی سند بسیار شبیه به خروجی نهایی به نظر میرسد، بدون در نظر گرفتن ظرافتهای قالببندی (جداول قابدار، حروف کج، پیوندهای قابل کلیک و غیره) که توسط محیط خروجی ارائه میشوند. برای نمونه:
# How to be a Picard fan
## Introduction
In order to develop fandom skills one must first and foremost
know *whom* one idolises. Therefore: **who is Captain Picard**?
1. Picard was named the \*Best Star Trek Captain\*, according
to a [5-week poll](poll.html).
> Picard continued his winning ways in the final week,
> with fans naming him the most inspiring captain.
2. Picard is handsome. 
3. Picard knows how to code: `make engage`
---------------------------------
## Picard Fandom
Here's why everyone wants to be a fan...
این مثال از مجموعهای از عناصر بلوکی تشکیل شده است: سرآیند بخش، سرآیند زیربخش، بند (پاراگراف)، مجموعهای از موارد فهرست، خط افقی، و سپس سرآیند زیربخش دیگر. هر عنصر بلوکی شامل عناصر درونخطی است: متن عادی، متن تاکیدشده (توپر و کج)، تصویر، پیوند، و بخشی از کد.
این سند ساختار دستوری Markdown پذیرفتهشده توسط lowdown(1) را شرح میدهد.
متن (TEXT)
متن درون اسناد Markdown باید با کدگذاری UTF-8 باشد. سند میتواند حاوی علامت ترتیب بایت (BOM) باشد، هرچند این کار توسط استاندارد یونیکد توصیه نمیشود. خطوط متنی میتوانند با پایان خط یونیکس (‘\n’) یا داس (‘\r\n’) خاتمه یابند. در حالت دوم، چنانچه بازگشت به ابتدای خط (carriage return) در خط اول شناسایی شود، از کل ورودی حذف خواهد شد.
عناصر بلوکی (BLOCK ELEMENTS)
یک عنصر بلوکی در یک خط جدید آغاز میشود و تا خط خالی بعدی یا عنصر بلوکی بعدی ادامه مییابد. یک عنصر بلوکی شامل عناصر درونخطی است.
بندها و شکستهای خط (Paragraphs and Line Breaks)
یک بند از یک یا چند خط متن تشکیل میشود که ممکن است حاوی عناصر درونخطی باشند. بندها با خطوط خالی از یکدیگر جدا میشوند.
برای درج یک شکست خط سخت (یعنی شکست خطی در ورودی که عیناً در خروجی بازتولید شود)، دو فاصله در انتهای خط قرار دهید. اگر تجزیهکننده ورودی commonmark فعال باشد، این کار میتواند با گریز دادن خط جدید نیز انجام شود:
Darmok and Jalad...\ at Tanagra.
سرآیندها (Headers)
دو سبک برای سرآیندها وجود دارد: زیرخطدار (“setext”) و علامتگذاریشده با هش (“atx”). برای سرآیندهای زیرخطدار، کلمه دادهشده را با علامت مساوی (“=”) برای سرآیندهای سطح اول و خط تیره (“-”) برای سرآیندهای سطح دوم خط بکشید.
This is an underlined header 1 ==============================
برای سرآیندهای علامتگذاریشده با هش، از تعداد نویسههای هش متناظر با سطح سرآیند (تا ۶ سطح) در ابتدای خط استفاده کنید که با یک فاصله از متن سرآیند جدا میشود.
## This is a hash-marked header 2
چنانچه تجزیهکننده ورودی commonmark فعال باشد، وجود فاصله پس از نویسههای هش در هر سرآیند هشدار الزامی است.
هر دو نوع سرآیند از ویژگیهای PHP Extra درون آکولاد پشتیبانی میکنند. این ویژگیها میتوانند از هر نقطهای شروع شوند اما باید در انتهای خط پایان یابند.
## Star Trek: Enterprise { #stent }
Star Trek: Enterprise { .reboots }
---------------------
مقادیر غیرخالی با نقطه ابتدایی به عنوان کلاسهای HTML (CSS) یا OpenDocument تفسیر میشوند، و مقادیر با علامت پوند (#) ابتدایی به عنوان شناسههای پیوند درونسندی تفسیر میگردند.
شناسههای ویژگی Extra سازوکار پیشفرض برای ایجاد شناسههای سرآیند را بازنویسی میکنند. آنها باید تنها شامل نویسههای الفبایی-عددی ASCII باشند.
نقلقولهای بلوکی (Block Quotes)
بخشهای نقلقول بلوکی با یک علامت زاویه راست (“>”) به همراه یک فاصله در ابتدای هر خط و بین بندها فراخوانی میشوند.
> The Prime Directive is not just a set of rules; > it is a philosophy... and a very correct one. > > (It goes on for a few paragraphs).
نقلقولهای بلوکی همچنین میتوانند فراخوانی غیرچندخطی داشته باشند: کافی است علامت زاویه راست را تنها در ابتدای یک بند درج کنید و آن را بین بندها کاملاً حذف نمایید.
> You cannot explain away a wantonly immoral act because you think it is connected to some higher purpose. > Here is another paragraph about Picard wisdom.
نقلقولهای بلوکی متوالی مانند بالا در خروجی به صورت بندهایی درون یک نقلقول بلوکی واحد ادغام میشوند، حتی اگر سبکها (غیرچندخطی و غیرازآن) ترکیب شده باشند.
نقلقولهای بلوکی میتوانند درون سایر نقلقولهای بلوکی تو در تو شوند، همانطور که هر عنصر بلوکی دیگری مانند سرآیندها، فهرستهای مرتب/نامرتب، و بلوکهای کد میتوانند تو در تو قرار گیرند.
> ### hash-marked header 3 > > > I'd be delighted to offer any advice > > I have on understanding women. > > When I have some, I'll let you know. > > 1. advice list item 1 > 2. advice list item 2 > > Here's the code to implement JLP's advice: > yes | read engage
هشدارهای متنی (Admonitions)
این نقلقولهای بلوکی ویژه که به آنها "callouts" نیز گفته میشود، توجه خواننده را به محتوا جلب میکنند. اینها معمولاً همانطور که هستند رندر میشوند، اما برخی حالتهای خروجی به شکل ویژهای آنها را برای برجستهسازی محتوا نمایش میدهند.
> **Note** > > The computer is voiced by Majel Barrett.
پیامهای توجه با یک تاکید دوگانه "Note" یا "Warning" آغاز میشوند، و حذف خط جدید اولیه، فاصلههای خالی پس از نوع هشدار را نادیده میگیرد. این ساختار دستوری GFM است. ساختار دستوری MDN شامل یک عبارت اولیه پس از نوع هشدار و دونقطه است، و همچنین از نوع "Callout" پشتیبانی میکند:
> **Warning:** red alert. > > Romulan warbird decloaking!
فهرستها (Lists)
فهرستها میتوانند به صورت مرتب (شمارهگذاریشده) یا نامرتب مشخص شوند. فهرستهای مرتب با اعداد به همراه نقطه (مانند “1.”) فراخوانی شده و در قالبی مشابه رندر میشوند. نکته: مهم نیست از چه ترتیبی یا چه اعدادی در فهرست مرتب خود استفاده میکنید، زیرا تمام فهرستهای مرتب از عدد یک شروع میشوند.
1. Make. 2. It. 1. So. (Not 1. again!)
اگر تجزیهکننده ورودی commonmark فعال باشد، موارد فهرست میتوانند متناوباً با پرانتز راست خاتمه یابند:
1) Live long 2) Prosper
برای جلوگیری از ایجاد ناخواسته فهرستها توسط بندی که با عدد و نقطه شروع میشود، پیش از نقطه از یک ممیز وارونه (backslash) استفاده کنید.
1987. The year TNG premiered. 1987\. The year TNG premiered.
از سوی دیگر، فهرستهای نامرتب میتوانند با استفاده از ستاره (“*”), علامت جمع (“+”), یا خط تیره (“-”) فراخوانی شوند و میتوان ترکیبی از هر سه سبک را به کار برد. صرفنظر از سبک بهکاررفته، موارد فهرست به یک شیوه رندر میشوند.
- Earl Grey tea. * Shakespeare. + Exotic fish.
تمام عناصر بلوکی تو در تو به یک شکست خط جدید نیاز دارند، در غیر این صورت در خروجی روی همان خط مربوط به مورد فهرست رندر خواهند شد. برای درج بندها در یک مورد فهرست، هر بند را با چهار فاصله یا یک تب تورفتگی دهید.
- First list item
Courage can be an emotion too.
Things are only impossible until they're not.
+ Second list item
+ Third list item
برای درج نقلقولهای بلوکی در یک مورد فهرست، نقلقول بلوکی را با چهار فاصله یا یک تب قبل از علامت زاویه راست (“>”) تورفتگی دهید.
* List item 1
* List item 2
> I am Locutus of Borg.
> That is the cutest of Borg.
بلوکهای کد باید دو بار تورفتگی داشته باشند (دو تب یا هشت فاصله ابتدایی): یک بار برای شناخته شدن درون مورد فهرست، و بار دیگر برای خود بلوک کد.
* Here is a list item for an indented code block:
alias path='echo -e ${PATH//:/\n}'
برای اینکه عناصر فهرست به صورت پیوسته و فشرده ظاهر شوند — مانند فهرست خرید — نباید خط خالی بین موارد وجود داشته باشد.
- Phaser - Communicator
از سوی دیگر، اگر میخواهید فهرستها با فاصله خالی رندر شوند، از ساختار دستوری زیر استفاده کنید:
- A phaser is a type of weapon. - A communicator keeps Riker in contact with Troi.
این قاعده برای هر دو نوع فهرست مرتب و نامرتب صدق میکند.
فهرستهای وظایف (Task lists)
یکی از اشکال فهرست نامرتب، فهرست وظایف است که یک افزونه GFM به شمار میرود. این فهرستها با جعبههای علامتگذاری (علامتخورده یا نخورده) آغاز میشوند و در خروجی به شکل مشابهی رندر میگردند.
Star Trek series with episodes in the Delta quadrant: - [ ] Original series - [x] TNG - [ ] DS9 - [x] Voyager - [ ] Enterprise - [ ] Discovery
علامت بررسی میتواند با حروف بزرگ یا کوچک باشد. یک فاصله باید پس از قلاب راست قرار گیرد.
فهرستهای تعاریف (Definition Lists)
فهرستهای تعاریف یک افزونه PHP Extra هستند. آنها شبیه به فهرستها هستند با این تفاوت که جفتهای کلید و مقدار دارند، و کلیدها با یک خط خالی مقدم میشوند:
Best understated characters: *Quark* : Armin Shimerman *Weyoun* : Jeffrey Combs
کلیدها از یک خط تشکیل میشوند و میتوانند شامل عناصر درونخطی باشند. مانند سایر فهرستها، مقادیر میتوانند شامل بلوکهای تو در توی دلخواه باشند. برای هر کلید میتواند چندین مقدار متوالی وجود داشته باشد. اگر کلید و مقدار با یک خط خالی از هم جدا شوند، فهرست به گونهای تولید میشود که گویی حاوی عناصر بلوکی است (معمولاً در خروجی به صورت فاصله بین جفتهای کلید-مقدار نمایش مییابد).
بلوکهای کد (Code Blocks)
بلوکهای کد شامل متن پیشقالببندیشده مانند کد منبع هستند. هر بلوک کد شامل متنی کدر/لفظی (opaque/literal) است. این بدان معناست که خطوط جدید و فاصلههای خالی حفظ میشوند — به هیچ وجه قالببندی نمیشوند و هر متنی درون بلوک کد تفسیر نمیگردد. برای فراخوانی یک بلوک کد، یک شکست خط ایجاد کرده و سپس هر خط را با چهار فاصله یا یک تب تورفتگی دهید.
Here is a paragraph about Bridge protocol
Here is a code block for the command "Engage"
درون یک بلوک کد، متن متناسب با قالب خروجی گریز داده میشود. بنابراین، نویسههایی که در زبانهای دیگر پردازش متن معمولاً باید گریز داده شوند، مانند علامت اند (“&”) نیازی به گریز دادن ندارند.
Here is how you start the program xterm:
xterm &
متناوباً، بلوکهای کد در صورتی که با سه یا تعداد بیشتری بکتیک یا تیلدا احاطه شده باشند، “حصاردار (fenced)” نامیده میشوند. حصار کد میتواند اختیاری شامل نام زبان مورد استفاده پس از سرآیند باشد، مانند نمونه زیر:
```c
int main(void) {
puts("Engage!");
return 0;
}
```
زبان مشخصشده، در صورت ارائه، معمولاً به عنوان اطلاعات کمکی نظیر کلاس HTML به خروجی منتقل میشود.
خطوط افقی (Horizontal Rules)
خط افقی خطی است که در سرتاسر یک صفحه خروجی کشیده میشود. این خطوط با سه یا تعداد بیشتری ستاره (“*”), خط تیره (“-”), یا خط زیرین (“_”) در خط جداگانه خود فراخوانی میشوند. فاصلههای میان این نویسهها نادیده گرفته میشوند.
*** * * * --- - - - ___ _ _ _ ___________________________
فراداده (Metadata)
اسناد میتوانند شامل فرادادههایی باشند که بخشی از متن اصلی نیستند. ساختار دستوری از مشخصات MMD و Pandoc پیروی میکند.
در ساختار دستوری MMD، بلوک در اولین خط سند آغاز شده و تا نخستین خط خالی ادامه مییابد. کلیدها و مقادیر با دونقطه و جفتها با یک خط جدید جدا میشوند. یک کلید (و مقدار متعاقب آن) باید در خط آغازین جفت فراداده وجود داشته باشد، اما مقدار میتواند در چندین خط امتداد یابد.
Title: Captain's log Author: Captain J-L Picard Summary: As part of an exchange program, we're taking aboard a Klingon officer to return the recent visit of Commander Riker to the cruiser Pagh. Stardate: 43917.4
متناوباً، یک بلوک از فرادادههای MMD میتواند با خطی از "---" آغاز شده و با "---" یا "..." پایان یابد.
چنانچه چندین خط متن در مقدار یک فراداده وجود داشته باشد، خطوط بعدی باید (اما الزامی نیست) با فاصله خالی تورفتگی داشته باشند. در غیر این صورت، نباید دونقطه در مقدار وجود داشته باشد، چرا که به عنوان کلید جفت بعدی تعبیر خواهد شد.
انتهای هر خط را با دو فاصله خاتمه دهید تا از رندر شدن شکستهای خط در خروجی برای رندرکنندههای غیرمنطبق Markdown اطمینان حاصل شود. علاوه بر این، آغاز یک سند با یک جمله معمولی حاوی دونقطه ممکن است باعث فراخوانی فراداده شود. برای گریز از این موضوع، یک خط خالی به ابتدای سند بیفزایید.
کلیدهای فراداده باید از نویسههای الفبایی-عددی ASCII، خط تیره ("-"), یا خط زیرین ("_") تشکیل شوند. آنها باید حداقل یک نویسه داشته باشند، فاصلههای خالی آنها حذف میشود، نویسههای غیرمنطبق با خط زیرین جایگزین میگردند، و به حروف کوچک تبدیل میشوند.
مقادیر فراداده متنی کدر و غیرقابل تفسیر هستند: عبارتهای Markdown (مانند حروف کج، موجودیتها و غیره) عیناً کپی میشوند. فاصلههای خالی ابتدایی مقادیر (یعنی فاصله پس از دونقطه) حذف خواهد شد.
اگر چندین کلید فراداده به یک نام یکسان ختم شوند، آخرین فراخوانی حفظ میشود. این بررسی پس از استانداردسازی نام با حذف فاصلهها، تبدیل به حروف کوچک، و جایگزینی نویسههای ناشناخته صورت میگیرد.
در ساختار دستوری Pandoc، بلوک در اولین خطی که با علامت درصد یا فاصله شروع نمیشود متوقف میگردد. فراداده حداکثر به سه کلید محدود است: عنوان (title)، نویسنده یا نویسندگان (author)، و تاریخ (date). خط اول برای عنوان، خط دوم (در صورت ارائه) برای نویسندگان، و خط سوم (در صورت ارائه) برای تاریخ است. خطوط میتوانند با شروع خط بعدی با یک فاصله ادامه یابند. اگر تنها یک خط با درصد ابتدایی گنجانده شود، فراداده فقط برای عنوان است؛ اگر دو خط باشد، برای عنوان و نویسندگان؛ و به همین ترتیب. اگر یک خط با درصد ابتدایی خالی باشد، فراداده متناظر خالی (نامشخص) باقی میماند.
% A Skin of Evil % Tasha Yar Armus % 1988-04-2525 Wow what a day...
چندین نویسنده میتوانند با چند فاصله خالی (از جمله خطوط جدید)، یک نقطه-ویرگول، یا هر دو از هم جدا شوند.
خط عنوان Pandoc به طور خودکار بررسی میشود که آیا عنوانی به سبک صفحه راهنما (manpage) است یا خیر:
% TREK(6)
ابزار
lowdown عنوان
یک صفحه
راهنما را
از روی
پرانتز باز
و به دنبال
آن یک عدد (یا
"n"),
نویسههای
اختیاری
بعدی، و سپس
یک پرانتز
بسته
شناسایی
میکند. در
صورت
یافتن،
عنوان به دو
بخش نام
عنوان و بخش
(section) تفکیک
میشود. هر
متنی پس از
عنوان به
عنوان منبع
(source) شناسایی
شده و
چنانچه یک
خط عمودی
شناسایی
شود، متن پس
از آن به
عنوان جلد (volume)
تلقی
میگردد.
% TREK(6) OpenBSD | Games Manual
به این
مقادیر
میتوان با
کلیدهای
فراداده
title و section,
و به صورت
اختیاری
volume و source
دسترسی
داشت.
با
استفاده از
هر دو
ساختار
دستوری،
تاریخها
ترجیحاً
باید در
قالب YYYY-MM-DD
باشند، اما
میتوانند
در هر قالبی
قرار گیرند.
مقادیر
فراداده را
میتوان با
ارجاع به
[%key] در سند
الصاق کرد،
مانند
استفاده از
مثال فوق،
باز هم با
این نکته که
نشانهگذاریهای
Markdown (حروف کج و
غیره) عیناً
کپی
میشوند:
date: 43917.4 It's currently stardate [%date].
یا با استفاده از Pandoc:
% % % 43917.4 It's currently stardate [%date].
ریاضیات (Mathematics)
پشتیبانی از ریاضیات یک افزونه برای Markdown است. این افزونه تنها نحوه آغاز و پایان بلوکهای ریاضی را توصیف میکند: معادلات داخل بلوک معمولاً در فرمت LaTeX هستند و در بخش رابط کاربری (مانند HTML) پیادهسازی میشوند. دو نوع وجود دارد: درونخطی و بلوکی. هر دو میتوانند در هر نقطهای از جریان متن قرار گیرند. معادلات درونخطی به عنوان بخشی از متن رندر میشوند؛ معادلات بلوکی به صورت مستقل رندر میگردند.
This is an inline $f(x)$ function. This is a block $$f(x)$$ function. This is also an inline \\(f(x)\\) function. This is also a block \\[f(x)\\] function.
جدولها (Tables)
جدولها یک افزونه GFM (GitHub-flavoured Markdown) برای ساختار دستوری پایه هستند. آنها از یک سرآیند و بدنه جدول تشکیل میشوند، و ستونها میتوانند چپچین، راستچین یا وسطچین باشند.
| Officer | Rank | | --------------: | -------------------- | | Jean-Luc Picard | Captain | | Worf | Lieutenant Commander | | Data | Lieutenant Commander | | William Riker | Commander |
پس از سرآیند جدول باید یک خط از خط تیرهها با حداقل سه خط تیره/دونقطه برای هر ستون قرار گیرد. ستونها با خطوط عمودی جدا میشوند. علامت دونقطه نشاندهنده تراز است: دونقطه در ابتدا به معنای چپچین، در انتها به معنای راستچین، و در هر دو طرف به معنای وسطچین است.
جداکننده ستون در ابتدا و انتهای خط اختیاری و زائد است. وجود دادههای جدول ضروری نیست، اما سرآیند جدول الزامی است. حداقل ساختار جدول برای نمونه بالا عبارت است از:
Officer | Rank --:|--- Jean-Luc Picard | Captain
ستونهای جدول میتوانند شامل عناصر درونخطی دلخواه باشند.
تعریف پاورقی (Footnote Definition)
پاورقیها یک افزونه MMD برای ساختار دستوری پایه هستند. تعاریف پاورقی میتوانند در هر کجای متن (به جز درون بلوکها) قرار گیرند و توسط یک ارجاع پاورقی (Footnote Reference) به آنها “ارجاع داده میشود”. آنها شامل نام پاورقی (درون قلاب و مقدم با علامت توان ^)، یک دونقطه، و سپس تمام متن باقیمانده در بلوک به عنوان محتوای پاورقی هستند.
[^pt]:
Klingon insult, meaning something like "weirdo," deriving from
the verb "to be weird" (**taQ**), with and [sic] you (plural)
imperative prefix (**pe-**).
محتوای پاورقی میتواند در همان خط دونقطه قرار گیرد. نام پاورقی به صورت یک عدد رندر میشود. اگر به یک تعریف پاورقی ارجاع داده نشود، چاپ نخواهد شد.
بلوکهای HTML (HTML Blocks)
قراردادن HTML تعبیهشده توصیه نمیشود، زیرا مانع از قالببندی در خروجیهای غیر HTML میگردد، اما همچنان پذیرفته میشود. بلوکهای HTML باید با یک عنصر شناختهشده سطح بلوک HTML آغاز شوند.
در Markdown
اولیه،
عناصر سطح
بلوک به
خوبی توسط HTML4
تعریف شده
بودند.
عناصر HTML5 نیز
پذیرفته
میشوند،
اما از آنجا
که مفهومی
از سطح بلوک
در HTML5 وجود
ندارد، این
موارد
غیراستاندارد
هستند.
عناصر
پذیرفتهشده
عبارتند از:
<address>,
<article>,
<aside>,
<blockquote>,
<del>,
<details>,
<dialog>, <dd>,
<div>, <dl>,
<dt>,
<fieldset>,
<figcaption>,
<figure>,
<footer>,
<form>, <h1>,
<h2>, <h3>,
<h4>, <h5>,
<h6>, <header>,
<hgroup>,
<iframe>, <ins>,
<li>, <main>,
<math>, <nav>,
<noscript>,
<ol>, <p>,
<pre>,
<section>,
<script>,
<style>,
<table>, <ul>.
عناصر خالی
(void elements) مانند
<br />, <hr />,
<link />, و <meta
/> نیز
شناخته
میشوند و
نیازی نیست
که خودبسته
(self-closed) باشند.
عناصر درونخطی (INLINE ELEMENTS)
عناصری درون یک عنصر بلوکی هستند. گاهی به آنها عناصر (درونخطی) گفته میشود. برای نمونه متن عادی، بخشی از متن تاکیدشده، یا یک پیوند. یک عنصر درونخطی نمیتواند شامل یک عنصر بلوکی باشد، اما میتواند شامل سایر عناصر درونخطی باشد.
تاکید (Emphasis)
دو سبک مختلف از تاکید وجود دارد: تاکید قوی (strong) که معمولاً به صورت توپر (bold) رندر میشود؛ و تاکید ملایم (emphasis) که معمولاً به صورت کج (italics) رندر میگردد. این موضوع ممکن است گیجکننده باشد، بنابراین گاهی اولی به عنوان “تاکید دوگانه” و دومی به عنوان “تاکید تکی” نامیده میشود.
متنی که با یک ستاره تکی (“*”) یا خط زیرین (“_”) احاطه شده باشد (گونه تاکید تکی)، به طور سنتی به صورت کج رندر میشود.
*Captain Picard* _Captain Picard_
متنی که با دو ستاره (“**”) یا دو خط زیرین (“__”) احاطه شده باشد (گونه تاکید دوگانه)، به طور سنتی به صورت توپر رندر میشود.
**Jean-Luc Picard** __Jean-Luc Picard__
تاکید میتواند در میانه یک کلمه نیز رخ دهد:
En*ter*prise
برای ایجاد یک ستاره واقعی و لفظی (“*”) یا خط زیرین (“_”) کافی است نویسه را با فاصلههای خالی احاطه کنید.
The ship * USS Enterprise * will not be emphasized
دو نوع دیگر از تاکید دوگانه خطزدگی (strike-through) و برجستهسازی (highlight) هستند. اینها به ترتیب با جفت نویسههای تیلدا و مساوی ایجاد میشوند:
~~Kirk~~Picard is the best ==captain==.
گونه برجستهسازی میتواند در lowdown(1) با فعال کردن تجزیه برجستهسازی فعال شود. این ویژگی به طور پیشفرض غیرفعال است زیرا اگر در ابتدای خط استفاده شود ممکن است به اشتباه به عنوان یک بخش تفسیر گردد.
پیوندها (Links)
دو نوع پیوند وجود دارد: درونخطی و ارجاعی. در هر دو مورد، متن پیوند با قلابها (“[]”) مشخص میشود. یک پیوند درونخطی از پرانتزها (“()”) حاوی نشانی وب (URL) بلافاصله پس از متن پیوند درون قلابها برای فراخوانی پیوند استفاده میکند.
[text to link](https://bsd.lv)
ارجاعات محلی میتوانند مسیرهای مطلق یا نسبی باشند:
[Picard](/Picard)
از سوی دیگر، پیوند ارجاعی نشانی وب را خارج از متن نگه میدارد — معمولاً در پاورقیها. یک پیوند ارجاعی را در هر کجای سند با یک عنوان درون قلاب (“[]”) به دنبال آن یک دونقطه (“:”) و سپس نشانی وب یا مسیر مربوطه و پس از آن یک عنوان اختیاری تعریف کنید.
[link1]: https://www.bsd.lv/picard.jpg "Optional Title"
عنوان میتواند با گیومه تکی، گیومه دوتایی، یا پرانتز محصور شود. این عنوان تنها در خروجی HTML رندر میشود. عنوان تمام متن را تا آخرین جداکننده پیش از انتهای خط در بر میگیرد، بنابراین میتواند حاوی جداکنندهها باشد. عنوان میتواند در خط جداگانه خود قرار گیرد.
در هر کجای متن خود با استفاده از [متن پیوند] و همان [عنوان پیوند]، هر دو درون قلابهای (“[]”) در کنار یکدیگر، به پیوند ارجاع دهید:
Text about [Captain Picard][link1].
نیازی نیست ارجاعات پس از تعریف بیایند: هر دو میتوانند در هر کجایی نسبت به یکدیگر قرار گیرند.
پیوندهای ارجاعی و درونخطی میتوانند با ویژگیهای PHP Extra همراه شوند.
Lowdown [homepage][home] or
[github](https://github.com/kristapsdz/lowdown){ .gh #link1 }.
[home]: https://kristaps.bsd.lv/lowdown { .home #link2 }
برای پیوندهای درونخطی، آکولاد باز باید بلافاصله پس از پرانتز بسته قرار گیرد. ویژگیها با فاصله از هم جدا میشوند.
مقادیر دارای نقطه ابتدایی (".class") به عنوان کلاسهای HTML (CSS) یا OpenDocument تفسیر میشوند، و مقادیر دارای علامت پوند ابتدایی ("#id") به عنوان شناسههای پیوند درونسندی تفسیر میگردند. علاوه بر این، ویژگیهای رایج HTML مانند rel، download، referrerpolicy و ping نیز پذیرفته میشوند. ویژگیهای سفارشی به صورت مشروط پذیرفته میشوند. پیادهسازی این موارد به محیط خروجی بستگی دارد.
پیوندهای تو در تو توسط CommonMark مجاز نیستند و در صورت استفاده منجر به رفتار غیرقابلحمل خواهند شد.
پیوندهای خودکار (Automatic Links)
پیوندهای خودکار پیوندهایی به نشانیهای وب یا رایانامهها هستند که نیازی به متن پیوند ندارند؛ بلکه کل پیوند یا نشانی رایانامه از خود متن استنباط میشود. برای فراخوانی یک پیوند خودکار، نشانی پیوند یا رایانامه را درون علامتهای زاویه (“<>”) قرار دهید، برای نمونه:
<https://bsd.lv/> <kristaps@localhost>
تصاویر (Images)
ساختار دستوری تصویر شبیه به ساختار پیوندها است. تفاوت کلیدی این است که تصاویر نیازمند یک علامت تعجب (“!”) قبل از متن پیوند محصور در قلابها (“[]”) هستند.

درست مانند پیوندها، هر دو نوع پیوند تصویر درونخطی و ارجاعی وجود دارد.
سبک درونخطی شامل یک علامت تعجب (“!”) به دنبال آن متن جایگزین (که میتواند خالی باشد) درون قلابها “([])” و سپس نشانی وب یا مسیر درون پرانتزها “(())” است.
برخلاف متن پیوند درون قلابها، متن جایگزین عیناً تفسیر میشود. بنابراین، ارسال موجودیتهای Markdown یا HTML مستقیماً به خروجی منتقل خواهد شد (مطابق با محیط خروجی گریز داده میشود). متن جایگزین نباید با علامت توان (“^”) یا درصد (“%”) آغاز شود، زیرا در غیر این صورت به ترتیب به عنوان ارجاع پاورقی یا فراداده تفسیر خواهند شد.
پرانتزها میتوانند شامل ابعاد اختیاری (widthx[height]) شروعشده با یک علامت مساوی یا یک عنوان نقلقولشده (گیومه تکی یا دوتایی) به هر ترتیبی پس از نشانی وب یا مسیر باشند. این ابعاد اندازههای پیکسلی هستند.

تعریف به سبک ارجاعی شامل شناسه تصویر درون قلابها “([])” به دنبال آن دونقطه “(:)” و سپس نشانی وب یا مسیر تصویر و ویژگی اختیاری عنوان درون گیومه دوتایی است.
[image1]: https://bsd.lv/picard.jpg "Picture of Picard"
فراخوانی ارجاع تصویر به شرح زیر است:
A picture of the captain: ![Captain Picard][image1]
همانند پیوندهای ارجاعی عادی، تعریف و ارجاعات میتوانند در هر کجایی نسبت به یکدیگر قرار گیرند.
تصاویر همچنین میتوانند با ویژگیهای PHP Extra برای کلاسها، شناسهها، و پهنا و بلندی همراه شوند. این ساختار از همان قواعد پیوندها پیروی میکند. علاوه بر این، ویژگیهای رایج HTML مانند loading، ismap، usemap، crossorigin، referrerpolicy، sizes و srcset نیز پذیرفته میشوند. ویژگیهای سفارشی به صورت مشروط پذیرفته میشوند. پیادهسازی این موارد به محیط خروجی بستگی دارد.
{width=20% .class}
آکولاد باز باید بلافاصله پس از پرانتز بسته قرار گیرد. ویژگیها با فاصله از هم جدا میشوند.
جفت مقادیر "width=xx" و "height=xx" به عنوان ابعاد HTML (CSS)، OpenOffice یا LaTeX تفسیر میشوند. اینها ابعاد پیکسلی تعیینشده را بازنویسی میکنند. درصدها توسط هر سه محیط درک میشوند؛ در غیر این صورت، واحدهای ابعاد متناسب با محیط خروجی تفسیر میگردند.
مقادیر دارای نقطه ابتدایی (".class") به عنوان کلاسهای HTML (CSS) یا OpenDocument تفسیر میشوند، و مقادیر دارای علامت پوند ابتدایی ("#id") به عنوان شناسههای پیوند درونسندی تفسیر میگردند.
کد (Code)
علاوه بر بلوکهای کد، بخشهای کد درونخطی میتوانند درون بندها یا سایر عناصر بلوکی یا درونخطی مشخص شوند. برای فراخوانی بخشی از کد، آن را با گیومههای بکتیک (“`”) احاطه کنید.
I need your IP address to scp you Picard pics. Use the `ifconfig iwm0` command.
برای گنجاندن بکتیکهای لفظی (“`”) درون یک بخش کد، کد را با چندین بکتیک (“(``”) احاطه کنید.
``Here is a span of code with `backticks` inside it.``
اگر در ابتدا یا انتهای بخش کد بکتیک واقعی دارید، یک فاصله بین بکتیک واقعی و بکتیکهای جداکننده بگذارید.
`` `So many backticks.` ``
ارجاع پاورقی (Footnote Reference)
پاورقیها یک افزونه MMD برای ساختار دستوری پایه هستند. ارجاعات پاورقی به یک تعریف پاورقی (Footnote Definition) در سطح بلوک اشاره میکنند. آنها شامل نام پاورقی درون قلابها، به همراه علامت توان در ابتدا هستند.
P'tahk[^pt], tell me who you are, or I will kill you right here!
نام پاورقی به صورت یک عدد رندر میشود. برای هر تعریف تنها میتواند یک ارجاع پاورقی وجود داشته باشد. اگر یک ارجاع پاورقی به تعریفی ناشناخته اشاره کند، یا اگر قبلاً برای اشاره به یک تعریف استفاده شده باشد، عیناً چاپ میشود. تعاریف پاورقی بدون ارجاع چاپ نمیشوند. پاورقیهای تو در تو مجاز نیستند.
بالانویسها (Superscripts)
از علامت توان (“^”) برای آغاز یک بالانویس و از علامت دیگر برای پایان آن استفاده میکند. میان این دو، فاصله خالی مجاز نیست. این سبک GFM است.
Though a great book, Q^2^ isn't Star Trek canon.
اگر بالانویسهای سبک "کوتاه" (سنتی) فعال باشند، با علامت توان آغاز شده و تا اولین فاصله خالی ادامه مییابند؛ یا چنانچه با پرانتز باز آغاز شوند، با پرانتز بسته با امکان وجود فاصلههای خالی پایان مییابند.
Though a great book, Q^2 isn't Star Trek canon.
محتوای HTML (HTML Content)
در حالی که HTML در سطح بلوک باید با یک عنصر شناختهشده سطح بلوک HTML آغاز شود، HTML در سطح محدوده (span-level) تنها کافی است با علامتهای زاویه آغاز و پایان یابد و حاوی ابرپیوند نباشد.
بنابراین،
<p>, <Leonard
Nimoy>, و <span
class="foo"> همگی
پذیرفته
میشوند.
حتی محتوای
ناصحیح،
مانند <span
class="foo> نیز
پذیرفته
میشود،
مادامی که
با
علامتهای
زاویه آغاز
و پایان
یابد.
نویسههای گریز (ESCAPES)
گریزهای خودکار (Automatic Escapes)
خروجی بسته به محیط به طور خودکار گریز داده میشود. برای نمونه، خروجی HTML به درستی علامتهای زاویه “(<)” و اند “(&)” را برای تولید HTML منطبق گریز میدهد. همین امر در خروجی man(7) برای گریز دادن نقطههای ابتدایی و موارد مشابه صدق میکند.
گریزهای ممیز وارونه (Backslash Escapes)
گریزهای ممیز وارونه نویسههای لفظی را رندر میکنند که در غیر این صورت یک عنصر بلوکی یا درونخطی خاص را فراخوانی میکردند. برای نمونه، احاطه یک عبارت با ستارههای تکی آن را به عنوان تاکید رندر میکند:
*Captain Picard*
با این حال، اگر میخواهید آن نویسههای کج را به عنوان نویسههای واقعی فراخوانی کنید، آن ستارهها را با استفاده از ممیز وارونه (“\”) گریز دهید.
\*Captain Picard\*
نویسههای زیر میتوانند برای تولید متن لفظی گریز داده شوند:
*- ستاره (asterisk)
\- ممیز وارونه (backslash)
`- بکتیک (backtick)
{- آکولاد باز (curly brace)
!- علامت تعجب (exclamation mark)
#- علامت هش / پوند (hash mark)
-- علامت منها / خط تیره (minus sign)
(- پرانتز باز (parentheses)
.- نقطه (period)
+- علامت جمع (plus sign)
[- قلاب باز (square bracket)
_- خط زیرین (underscore)
شیوهنگاری (TYPOGRAPHY)
lowdown(1) توالیهای خاصی از نویسهها را برای خوانایی آسانتر رندر میکند. به این کار "قالببندی هوشمند" گفته میشود. توالیهای نویسهای زیر به نگارههای ویژه خروجی تبدیل میشوند. جدول نشان میدهد که آیا این توالیها باید در مرزهای کلمه باشند یا خیر.
| (c) | حق نشر (copyright) | |
| (r) | ثبتشده (registered) | |
| (tm) | علامت تجاری (trademark) | |
| (sm) | علامت خدماتی (service mark) | |
| ... | حذف / سهنقطه (ellipsis) | |
| . . . | حذف / سهنقطه (ellipsis) | |
| --- | خط تیره بلند (em-dash) | |
| -- | خط تیره کوتاه (en-dash) | |
| 1/4 | یکچهارم (one-quarter) | مرز کامل کلمه |
| 1/4th | یکچهارم (one-quarter) | مرز کامل کلمه |
| 3/4 | سهچهارم (three-quarters) | مرز کامل کلمه |
| 3/4th | سهچهارم (three-quarters) | مرز کامل کلمه |
| 3/4ths | سهچهارم (three-quarters) | مرز کامل کلمه |
| 1/2 | یکدوم (one-half) | مرز کامل کلمه |
| " | گیومه دوتایی چپ | مرز کلمه چپ |
| " | گیومه دوتایی راست | مرز کلمه راست |
| ' | گیومه تکی چپ | مرز کلمه چپ |
| ' | گیومه تکی راست | نه در مرز کلمه چپ |
مرزهای کلمه با فاصله خالی (از جمله انتهای بلوکها مانند بندها، یا انتهای پرونده) یا علائم نگارشی تعریف میشوند. مرز کلمه چپ به فاصله خالی یا پرانتز یا قلاب سمت چپ توالی اشاره دارد. سمت راست به فاصله خالی یا علامت نگارشی در سمت راست اشاره دارد.
گیومههای هوشمند (تکی و دوتایی) وابسته به زمینه نیستند: استفاده از گیومه چپ یا راست به نویسههای احاطهکننده گیومه بستگی دارد، نه به این که آیا علامت گیومه قبلی استفاده شده است یا خیر.
همچنین ببینید (SEE ALSO)
استانداردها (STANDARDS)
ساختار دستوری Markdown پذیرفتهشده توسط lowdown(1) با پیادهسازی اولیه Markdown اثر John Gruber مطابقت دارد. افزونههای این زبان به طور ویژه ذکر شدهاند. آنها عبارتند از:
نویسندگان (AUTHORS)
مرجع lowdown
در ابتدا
توسط Christina
Sophonpanich نوشته
شد و توسط
Kristaps Dzonsons
<kristaps@bsd.lv>
نگهداری
میشود.
| September 25, 2026 | Linux 6.12.107+deb13-amd64 |