.\" Copyright (c) Kristaps Dzonsons .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate$ .Dt LOWDOWN 1 .Os .Sh "نام (NAME)" .Nm lowdown .Nd مترجم ساده مارک‌داون .Sh "خلاصه دستور (SYNOPSIS)" .Nm lowdown .Op input_options .Op output_options .Op Fl Ls .Op Fl M Ar metadata .Op Fl m Ar metadata .Op Fl o Ar file .Op Fl t Ar mode .Op Fl X Ar keyword .Op Ar file .Sh "توضیحات (DESCRIPTION)" ترجمه از .Xr lowdown 5 به قالب‌های خروجی گوناگون. نتایج در خروجی استاندارد نوشته می‌شوند. .Pp آرگومان‌های کوتاه به شرح زیر هستند: .Bl -tag -width Ds .It Fl L فهرست کردن کلیدهای فراداده، هر کلید در یک خط. حالت .Fl t نادیده گرفته می‌شود. فراداده به‌طور خودکار فعال می‌گردد. گزینه .Fl X را لغو می‌کند. .It Fl s تولید یک سند مستقل (مثلاً یک سند معتبر HTML شامل نوع سند، head و غیره) در اطراف محتوای قالب‌بندی‌شده. برای جزئیات بیشتر به .Sx "اسناد مستقل (Standalone documents)" مراجعه کنید. .It Fl M Ar metadata ارائه یک جفت کلید-مقدار فراداده واحد. این مقدار می‌تواند در قالب نحو معمول یا به‌صورت جفت‌های جداشده با علامت مساوی باشد، بسته به اینکه کدام نویسه (دونقطه یا علامت مساوی) زودتر ظاهر شود. در صورتی که هیچ‌کدام ارائه نشود، با خطا خارج می‌شود. این گزینه بر .Fl m و آنچه از سند تجزیه شده است اولویت دارد. به .Sx "فراداده (Metadata)" مراجعه کنید. .It Fl m Ar metadata مشابه .Fl M , اما مقدار تجزیه‌شده از سند و سپس .Fl M بر آن اولویت دارند. .It Fl o Ar file ارسال خروجی به .Ar file مگر اینکه .Dq - باشد، که در این حالت از پیش‌فرض خروجی استاندارد استفاده می‌شود. .It Fl t Ar mode , Fl T Ar mode حالت خروجی. می‌تواند شامل موارد زیر باشد: .Ar html برای خروجی HTML5، .Ar latex برای LaTeX، .Ar gemini برای قالب .Dq gemtext در Gemini، .Ar ms برای خروجی roff با استفاده از بسته .Fl mspdf و نیازمند پشتیبانی از جدول، .Ar term برای خروجی ترمینال UTF-8 سازگار با ANSI، .Ar man برای خروجی roff با استفاده از بسته .Fl man , .Ar mdoc برای خروجی roff با استفاده از بسته .Fl mdoc , .Ar tree , برای نمایش درخت تجزیه سند ورودی، و .Ar null برای تجزیه سند بدون انجام رندر. به .Sx "رسانه‌های خروجی (Output media)" مراجعه کنید. قالب .Fl T Ar mode برای سازگاری با گذشته حفظ شده است. .It Fl X Ar keyword چاپ مقدار فراداده برای .Ar keyword یا یک رشته خالی در صورت پیدا نشدن آن. حالت .Fl t نادیده گرفته می‌شود. فراداده به‌طور خودکار فعال می‌گردد. گزینه .Fl L را لغو می‌کند. .It Ar file سند ورودی مارک‌داون. اگر مشخص نشود یا اگر .Ar file برابر با .Dq - باشد، از ورودی استاندارد خوانده می‌شود. .El .Pp گزینه‌های بلند زیر برای تجزیه ورودی هستند. این گزینه‌ها بر درخت تجزیه ارسال‌شده به تمام خروجی‌ها تأثیر می‌گذارند: .Bl -tag -width Ds .It Fl -parse-hilite فعال‌سازی پشتیبانی از برجسته‌سازی متن (highlight span). این ویژگی به‌طور پیش‌فرض غیرفعال است زیرا ممکن است به‌اشتباه به‌عنوان سرآیند بخش‌ها تفسیر شود. .It Fl -parse-math شناسایی معادلات ریاضی. .It Fl -parse-maxdepth=depth بیشینه عمق عناصر تو‌در‌تو. مقدار پیش‌فرض 128 است که برای هر سند واقعی بیش از حد کافی است. اگر به این بیشینه برسد، سیستم به‌گونه‌ای خارج می‌شود که گویی حافظه به پایان رسیده است. برای نامحدود بودن، آن را صفر قرار دهید. .It Fl -parse-no-autolink پیوندهای .Li http , .Li https , .Li ftp , .Li mailto و پیوندهای نسبی یا قطعه‌های پیوند تجزیه نشوند. .It Fl -parse-no-cmark عدم تجزیه با محدودیت‌های CommonMark و قابلیت‌های زیر: .Pp .Bl -dash -compact .It استفاده از مقدار اولین مورد فهرست مرتب به‌جای شروع همه فهرست‌ها از یک. .It فهرست‌هایی که بلافاصله پس از بندها می‌آیند. .El .It Fl -parse-no-codeindent محتوای تورفته به‌عنوان بلوک‌های کد تجزیه نشود. .It Fl -parse-no-callouts کادرها و یادداشت‌های جانبی (callouts) در GFM/MDN .Pq Dq هشدارهای توصیه‌ای تجزیه نشوند. .It Fl -parse-no-deflists فهرست‌های تعاریف اضافی PHP تجزیه نشوند. .It Fl -parse-no-ext-attrs ویژگی‌های گسترش‌یافته اضافی PHP تجزیه نشوند. .It Fl -parse-no-fenced بلوک‌های کد حصارکشی‌شده (ویژه زبان برنامه‌نویسی) GFM تجزیه نشوند. .It Fl -parse-no-footnotes پانویس‌های MMD تجزیه نشوند. .It Fl -parse-no-img-ext منسوخ شده است. به .Fl -parse-no-ext-attrs مراجعه کنید. .It Fl -parse-no-intraemph تأکید درون واژه‌ها و پیوندها تجزیه نشود. .It Fl -parse-no-mantitle عنوان، بخش، منبع و جلد صفحه راهنما از فراداده عنوان Pandoc تجزیه نشود. عنوان‌های صفحات راهنما با یک عنوان و سپس پرانتز باز، عدد به همراه نویسه‌های اختیاری و پرانتز بسته مشخص می‌شوند. .It Fl -parse-no-metadata فراداده تجزیه نشود. این گزینه بر فراداده‌های داده‌شده در .Fl m یا .Fl M تأثیری ندارد. .It Fl -parse-no-strike خط‌خوردگی متن (strikethroughs) تجزیه نشود. .It Fl -parse-no-super بالانویس‌ها یا زیرنویس‌ها اصلاً تجزیه نشوند. .It Fl -parse-no-tables جدول‌های GFM تجزیه نشوند. .It Fl -parse-no-tasklists فهرست وظایف GFM تجزیه نشوند. .It Fl -parse-super-short اگر تجزیه بالانویس فعال باشد، از نحو سنتی غیر GFM .Dq کوتاه استفاده شود. .El .Pp گزینه‌های بلند خروجی متعددی وجود دارد. موارد زیر میان تمام رسانه‌های خروجی مشترک هستند: .Bl -tag -width Ds .It Fl -out-standalone نام مستعار برای .Fl s . .It Fl -out-no-smarty عدم استفاده از فیلتر تایپوگرافی هوشمند. به‌طور پیش‌فرض، برخی توالی‌های نویسه‌ای به گلیف‌های ویژه خروجی تبدیل می‌شوند. .It Fl -template Ar template هنگام تولید خروجی مستقل .Fl s , از یک فایل قالب استفاده شود. به .Sx "قالب‌ها (Templates)" مراجعه کنید. در حال حاضر تنها برای .Fl t Ns Ar gemini , .Fl t Ns Ar html , .Fl t Ns Ar latex , .Fl t Ns Ar man , .Fl t Ns Ar ms و .Fl t Ns Ar tree استفاده می‌شود. .El .Pp آنچه در ادامه می‌آید، گزینه‌های بلند اختصاصی هر خروجی است. برای HTML با .Fl t Ns Ar html , این گزینه‌ها به شرح زیر هستند: .Bl -tag -width Ds .It Fl -html-callout-mdn , -html-callout-gfm چاپ نحو کادر هشدار/توصیه (callout) مربوط به MDN یا GFM یا هر دو. .It Fl -html-custom-attributes چاپ ویژگی‌های ناشناخته HTML برای پیوندها، تصویرها و سرآیندها. .It Fl -html-hardwrap شکستن سخت خطوط (hard-wrap) در بندها با درج شکست‌های خط در صورت امکان. .It Fl -html-no-escapehtml اگر .Fl -html-no-skiphtml مشخص شده باشد، این گزینه باعث می‌شود که HTML توکار اسکیپ نشود و در عوض عیناً چاپ گردد. اگر .Fl -html-no-skiphtml مشخص نشده باشد، این گزینه هیچ اثری ندارد. .It Fl -html-no-head-ids عدم چاپ ویژگی‌های .Li id برای سرآیندها. .It Fl -html-no-num-ent نهادهای HTML (در صورت امکان) به‌صورت عددی یکسان‌سازی نشوند و در عوض از همان نهادهای ارائه‌شده در ورودی استفاده شود. .It Fl -html-no-owasp عدم پیروی از توصیه‌های OWASP برای اسکیپ کردن متن، و انجام صرفاً کمترین اسکیپ لازم برای اطمینان از اینکه محتوای عادی به‌صورت HTML تفسیر نشود. .It Fl -html-no-skiphtml چاپ HTML توکار. به‌طور پیش‌فرض، HTML توکار اصلاً چاپ نمی‌شود. به .Fl -html-no-escapehtml مراجعه کنید. .It Fl -html-titleblock اگر اطلاعات عنوان (عنوان، نویسنده، تاریخ) تجزیه شده باشد، آن‌ها را در یک عنصر سرآیند در ابتدای سند قالب‌بندی کن. .El .Pp برای قالب‌های roff شامل .Fl t Ns Ar man , .Fl t Ns Ar mdoc و .Fl t Ns Ar ms .Pq مگر در مواردی که ذکر شده , گزینه‌های زیر اعمال می‌شوند: .Bl -tag -width Ds .It Fl -roff-code-font Ns = Ns Ar fonts جایگزینی قلم‌های پیش‌فرض با عرض ثابت با یک چندتایی از متغیرهای عادی، پررنگ، مورب و پررنگ‌مورب به همان ترتیب. برای نمونه، .Li B,B,BI,BI به‌جای قلم با عرض ثابت از قلم پررنگ .Pq Dq B استفاده می‌کند. مشخص نکردن قلم یا تعیین نام قلم با طول صفر، از پیش‌فرض استفاده خواهد کرد. نام‌های مستعار .Li none , .Li bold و .Li code به‌ترتیب بدون قلم ویژه، پررنگ، و قلم با عرض ثابت پیش‌فرض را تنظیم می‌کنند. .It Fl -roff-endnotes به تأخیر انداختن چاپ پانویس‌ها تا انتهای سند. فقط برای .Fl t Ns Ar ms اعمال می‌شود، زیرا .Fl t Ns Ar man و .Fl t Ns Ar mdoc تنها از یادداشت‌های پایانی (endnotes) پشتیبانی می‌کنند. .It Fl -roff-manpage قالب‌بندی خروجی به‌عنوان یک صفحه راهنما (manpage). این گزینه بندهای موجود در بخش‌های .Li NAME , .Li SYNOPSIS و .Li SEE ALSO را به فرم استاندارد مورد استفاده در صفحات راهنما بازآرایی می‌کند. نحوه قالب‌بندی سند به فراداده بخش بستگی دارد: ۱، ۶ و ۸ برای سبک برنامه؛ ۲، ۳ و ۹ برای سبک توابع. سبک برنامه فلگ‌ها و آرگومان‌ها را بازآرایی می‌کند، در حالی که سبک توابع نام توابع، متغیرها و آرگومان‌ها را بازآرایی می‌نماید. هرگونه محتوا در گستره قلم‌ها (مانند تأکید یا تأکید دوگانه) در بخش‌های دیگر، از قلم مربوطه پاک شده و به همان شیوه بازآرایی می‌شود. تنها برای .Fl t Ns Ar man و .Fl t Ns Ar mdoc اعمال می‌شود. .It Fl -roff-no-numbered سرآیندهای شماره‌دار چاپ نشوند .Po .Li .NH NN .Pc . تنها برای .Fl t Ns Ar ms اعمال می‌شود. .It Fl -roff-no-skiphtml چاپ HTML توکار. این کار معمولاً منطقی نیست زیرا HTML توسط خواننده خروجی تفسیر نخواهد شد. به‌طور پیش‌فرض، HTML نادیده گرفته می‌شود. .It Fl -roff-no-links در صورت امکان، آدرس‌های اینترنتی (URL) برای تصاویر و پیوندها نمایش داده نشوند. محتوای پیوند همواره نمایش داده می‌شود. بر .Fl -roff-short-links و .Fl -roff-no-rellinks اولویت دارد. .It Fl -roff-no-rellinks در صورت امکان، آدرس‌های اینترنتی برای پیوندهای نسبی نمایش داده نشوند. محتوای پیوند همواره نمایش داده می‌شود. بر .Fl -roff-short-links اولویت دارد. .It Fl -roff-short-links در صورت امکان، آدرس‌های اینترنتی تصاویر، پیوندها و پیوندهای خودکار فقط به نام دامنه و مسیر نهایی کوتاه شوند. .It Fl -roff-traditional تولید خروجی سنتی .Fl ms .Pq نه Fl mspdf و .Fl man بدون افزونه‌ها. به‌طور ویژه، از ماکروهای پیوند .Po .Li .pdfhref , .Li .UR , .Li .MT .Pc , جدول‌های چندصفحه‌ای .Po .Li .TS H , .Li .TH .Pc , نحو توالی یونیکد .Po .Li \e[uNNNN] .Pc , ماکروهای بلوک مثال .Po .Li .EX .Pc , سرآیندهای بخش مدرن .Po .Li .NH NN , .Li .SH NN , .Li .pdfhref O NN .Pc یا پیوندهای درون‌سندی .Po .Li .pdfhref L .Pc استفاده نشود. خروجی با .Xr troff 1 سنتی سازگار خواهد بود. .El .Pp پیشوند آرگومان .Fl -nroff , مانند .Fl -nroff-traditional , به نفع .Fl -roff منسوخ شده است. .Pp خروجی .Fl t Ns Ar term شامل موارد زیر است: .Bl -tag -width Ds .It Fl -term-all-metadata اگر .Fl s مشخص شده باشد، به‌جای فقط عنوان، نویسنده و تاریخ، تمام فراداده‌ها چاپ شوند. .It Fl -term-columns=columns تعداد ستون‌های ترمینال. هنگام اجرا در یک لوله (pipe) کاربرد دارد. پیش‌فرض بر اساس گزارش ترمینال است یا ۷۲ در صورتی که در ترمینال نباشد. .It Fl -term-hmargin=margin تعداد نویسه‌های حاشیه چپ. پیش‌فرض صفر است. همچنین می‌تواند .Ar auto باشد تا حاشیه چپ را پس از کم کردن .Fl -term-width , به نصف باقیمانده .Fl -term-columns تنظیم کند. .It Fl -term-hpadding=padding تعداد نویسه‌های فاصله‌گذاری (padding) چپ. پیش‌فرض چهار است. فاصله‌گذاری از مقدار .Fl -term-width می‌کاهد. .It Fl -term-no-ansi سبک‌های ANSI اصلاً نمایش داده نشوند. این گزینه متضمن .Fl -term-no-colour است. .It Fl -term-no-colour رنگ‌های ANSI نمایش داده نشوند. متن همچنان با زیرخط، پررنگ و مورب آراسته می‌شود، اما هیچ کد رنگی تولید نخواهد شد. .It Fl -term-no-links در صورت امکان، آدرس‌های اینترنتی برای تصاویر و پیوندها نمایش داده نشوند. محتوای پیوند همواره نمایش داده می‌شود. بر .Fl -term-short-links و .Fl -term-no-rellinks اولویت دارد. .It Fl -term-no-rellinks در صورت امکان، آدرس‌های اینترنتی برای پیوندهای نسبی نمایش داده نشوند. محتوای پیوند همواره نمایش داده می‌شود. بر .Fl -term-short-links اولویت دارد. .It Fl -term-short-links در صورت امکان، آدرس‌های اینترنتی تصاویر، پیوندها و پیوندهای خودکار فقط به نام دامنه و مسیر نهایی کوتاه شوند. .It Fl -term-vmargin=margin تعداد خطوط خالی حاشیه بالا و پایین. پیش‌فرض صفر است. .It Fl -term-width=width حد نرم بر روی تعداد نویسه‌ها در هر سطر شامل .Pq Fl -term-hpadding . این مقدار ممکن است توسط متن لفظی نقض شود. اگر صفر باشد یا تنظیم نشود، پیش‌فرض آن .Fl -term-columns یا حداکثر ۸۰ است. به مقدار .Fl -term-columns کوتاه می‌شود. .El .Pp خروجی .Fl t Ns Ar gemini دارای چندین فلگ است که محل قرارگیری پیوندها را کنترل می‌کنند. به‌طور پیش‌فرض، پیوندها (تصاویر، پیوندهای خودکار و پیوندها) وقتی به‌صورت درون‌خطی مشخص شوند در صف قرار می‌گیرند و سپس در یک توالی بلوکی پس از نزدیک‌ترین عنصر بلوک چاپ می‌شوند. .Bl -tag -width Ds .It Fl -gemini-link-end صف پیوندها به‌جای پس از نزدیک‌ترین عنصر بلوک، در انتهای سند چاپ شود. .It Fl -gemini-link-inline رندر کردن تمام پیوندها در جریان متن. این کار در پیوندهای تو‌در‌تو، مانند تصاویر درون پیوندها، پیوندها در نقل‌قول‌ها و غیره باعث شکست ساختار می‌شود. نباید استفاده شود مگر در اسنادی که با دقت بسیار آماده شده باشند. .It Fl -gemini-link-noref برچسب‌های پیوند قالب‌بندی نشوند. بر .Fl -gemini-link-roman اولویت دارد. .It Fl -gemini-link-roman هنگام قالب‌بندی برچسب‌های پیوند، به‌جای سیستم بیست‌و‌شش‌گانی حروف کوچک پیش‌فرض (یعنی .Dq a , .Dq b , \&...، .Dq aa , .Dq ab , \&...)، از اعداد رومی با حروف کوچک استفاده شود. .It Fl -gemini-metadata چاپ فراداده به‌صورت کلید استانداردشده و به‌دنبال آن دونقطه و سپس مقدار، هرکدام در یک سطر (خطوط جدید با فاصله جایگزین می‌شوند). بلوک فراداده با دو خط جدید خاتمه می‌یابد. اگر فراداده‌ای وجود نداشته باشد، این گزینه کاری انجام نمی‌دهد. .El .Pp خروجی .Fl t Ns Ar latex دارای گزینه‌های زیر است: .Bl -tag -width Ds .It Fl -latex-no-numbered بخش‌ها (و زیربخش‌ها و غیره) شماره‌گذاری نشوند. .It Fl -latex-no-skiphtml چاپ HTML توکار. این کار معمولاً منطقی نیست زیرا HTML توسط خواننده خروجی تفسیر نخواهد شد. به‌طور پیش‌فرض، HTML نادیده گرفته می‌شود. .El .Pp خروجی .Fl t Ns Ar fodt دارای گزینه‌های زیر است: .Bl -tag -width Ds .It Fl -odt-no-skiphtml چاپ HTML توکار. این کار معمولاً منطقی نیست زیرا HTML توسط خواننده خروجی تفسیر نخواهد شد. به‌طور پیش‌فرض، HTML نادیده گرفته می‌شود. .It Fl -odt-style Ns = Ns Ar file مشخص کردن یک فایل سبک OpenDocument که باید دست‌کم شامل عناصر XML .Li , .Li و .Li در ریشه سند باشد. صحت نحو این فایل به هیچ وجه بررسی نمی‌شود. .El .Ss "رسانه‌های خروجی (Output media)" رسانه خروجی توسط .Fl t مشخص می‌شود که پیش‌فرض آن .Fl t Ns Ar html است. .Bl -tag -width Ds .It Fl t Ns Ar fodt خروجی OpenDocument .Dq تخت (Flat) . سبک‌های خودکار (سبک‌هایی که مشروط به وضعیت سند هستند) به همراه خروجی تولید می‌شوند. وجود کلاس‌های مشخص‌شده توسط ویژگی‌های گسترش‌یافته PHP بررسی نمی‌شود. .It Fl t Ns Ar gemini قالب .Dq gemtext در Gemini. .It Fl t Ns Ar html خروجی HTML5 با کدگذاری UTF-8. .It Fl t Ns Ar latex خروجی ساده LaTeX. بسته‌های زیر مورد نیاز هستند: .Li amsmath و .Li amssymb برای ریاضیات، .Li graphicx برای تصویرها، .Li inputenc Pq utf8 برای ورودی UTF-8، .Li frontend Pq T1 و .Li textcomp برای گلیف‌های خروجی، .Li lmodern برای قلم Latin modern، .Li xcolor برای خروجی موتور تفاوت، و .Li hyperref برای پیوندها. .It Fl t Ns Ar man بسته ماکروی .Ar man مناسب برای خواندن توسط .Xr groff 1 , .Xr mandoc 1 , Heirloom .Xr troff 1 یا .Xr troff 1 سنتی. از معادلات و تصاویر پشتیبانی نمی‌کند. پشتیبانی از جدول توسط .Xr tbl 1 ارائه می‌شود. از آنجا که ممکن است UTF-8 به‌عنوان مقادیر ورودی ارسال شود، ممکن است نیاز به استفاده از .Xr preconv 1 باشد. .It Fl t Ns Ar mdoc بسته ماکروی .Ar mdoc مناسب برای خواندن توسط .Xr groff 1 , .Xr mandoc 1 , Heirloom .Xr troff 1 یا (احتمالاً؟) .Xr troff 1 سنتی. از معادلات و تصاویر پشتیبانی نمی‌کند. پشتیبانی از جدول توسط .Xr tbl 1 ارائه می‌شود. از آنجا که ممکن است UTF-8 به‌عنوان مقادیر ورودی ارسال شود، ممکن است نیاز به استفاده از .Xr preconv 1 باشد. .It Fl t Ns Ar ms بسته ماکروی .Ar ms مناسب برای خواندن توسط .Xr groff 1 یا .Xr troff 1 سنتی. از معادلات پشتیبانی نمی‌کند و پشتیبانی محدودی از تصاویر پست‌اسکریپت کپسوله‌شده (با پسوند PS و EPS) دارد. تصاویر همیشه به‌صورت بلوکی قالب‌بندی می‌شوند. ابعاد تصویر و ویژگی‌های گسترش‌یافته نادیده گرفته می‌شوند، هرچند اگر تصاویر بزرگ‌تر از عرض متن فعلی باشند، اندازه آن‌ها کوچک می‌شود. پشتیبانی از جدول توسط .Xr tbl 1 ارائه می‌شود. از آنجا که ممکن است UTF-8 به‌عنوان مقادیر ورودی ارسال شود، ممکن است نیاز به استفاده از .Xr preconv 1 باشد. .It Fl t Ns Ar term خروجی UTF-8 اسکیپ‌شده ANSI مناسب برای خواندن در ترمینال. تصاویر و معادلات پشتیبانی نمی‌شوند. .It Fl t Ns Ar tree خروجی اشکال‌زدایی. برای استفاده برنامه‌نویسی مناسب نیست زیرا ممکن است قالب آن بین نسخه‌ها تغییر کند. .El .Ss "اسناد مستقل (Standalone documents)" هنگامی که .Fl s مشخص شود، محتوای قالب‌بندی‌شده درون یک قالب سند خودکفا، طبق تعریف نوع خروجی، سریال‌سازی می‌شود. .Pp اگر صریحاً با .Fl -template تنظیم نشده باشد، یک قالب پیش‌فرض به شرح زیر تولید می‌شود: .Bl -tag -width Ds .It Fl t Ns Ar fodt پوشش .Li و دیباچه .Li , .Li و .Li . .It Fl t Ns Ar html اعلان doctype مربوط به HTML5 و به دنبال آن پوشش .Li با زبان اختیاری، سپس .Li . عنصر .Li به‌ترتیب شامل عناصر .Li مربوط به charset و viewport؛ عناصر اختیاری .Li برگرفته از فراداده‌های وابستگی سازمانی (affiliation/سازنده)، نویسنده (author)، حق نشر (copyright) و تاریخ (date)؛ منابع اختیاری CSS برگرفته از فراداده؛ منابع اختیاری JavaScript برگرفته از فراداده؛ عنصر احتمالاً خالی .Li ؛ و سپس محتوای دلخواه اختیاری از فراداده HTML header است. .It Fl t Ns Ar latex دستورهای دیباچه .Li documentclass و .Li usepackage , محتوای دلخواه اختیاری از فراداده LaTeX header، و سپس دستورهای احاطه‌کننده .Li begin{document} . .It Fl t Ns Ar man , Fl t Ns Ar mdoc , Fl t Ns Ar ms ماکروهای دیباچه. .It Fl t Ns Ar term سطرهای دیباچه. .It Fl t Ns Ar tree فراداده و قالب تجزیه‌شده. .El .Pp برای مقادیر فراداده مورد استفاده توسط قالب پیش‌فرض، به .Sx "فراداده (Metadata)" مراجعه کنید. .Ss "فراداده (Metadata)" کلیدهای فراداده بر اساس اولویت زیر یکسان‌سازی (canonicalised) شده و موارد تکراری حذف می‌شوند: .Fl m .Pq اولویت کمتر نسبت به محتوای سند و Fl M , دیباچه خود سند، و سپس .Fl M .Pq دارای اولویت نسبت به محتوای سند و Fl m . .Pp پس از حذف موارد تکراری، فراداده یا به‌طور مستقیم با استفاده از .Fl X یا .Fl L قابل دسترسی است، یا در متغیرهای سند و/یا خروجی مستقل .Fl s سریال‌سازی می‌شود. .Pp در صورت عدم استفاده از .Fl -template , کلیدهای فراداده زیر در قالب پیش‌فرض .Fl s به کار می‌روند: .Bl -tag -width Ds .It Li affiliation وابستگی سازمانی نویسنده (سازمان یا مؤسسه). وابستگی‌های متعدد می‌توانند با دو یا چند فاصله (شامل خطوط جدید) از یکدیگر جدا شوند. در موارد زیر استفاده می‌شود: .Fl t Ns Ar html , .Fl t Ns Ar latex و .Fl t Ns Ar ms . .It Li author نویسنده سند. نویسندگان متعدد می‌توانند با دو یا چند فاصله (شامل خطوط جدید) از یکدیگر جدا شوند. توسط .Li rcsauthor لغو می‌شود. در موارد زیر استفاده می‌شود: .Fl t Ns Ar fodt , .Fl t Ns Ar html , .Fl t Ns Ar latex , .Fl t Ns Ar ms و .Fl t Ns Ar term . .It Li baseheaderlevel به هر سطح سرآیند افزوده می‌شود. به نفع .Li shiftheadinglevelby منسوخ شده است. .It Li copyright حق نشر سند (بدون واژه .Dq Copyright ) , برای نمونه، .Dq 2017, Kristaps Dzonsons . در موارد زیر استفاده می‌شود: .Fl t Ns Ar ms و .Fl t Ns Ar html . .It Li css یک فایل CSS که در سرآمد (head) سند HTML به‌صورت دستور .Li <link rel="stylesheet" href="..." /> خروجی داده می‌شود. چندین فایل CSS (به‌ترتیب) می‌توانند با دو یا چند فاصله (شامل خطوط جدید) از هم جدا شوند و به همان ترتیب مشخص‌شده در خروجی قرار می‌گیرند. تنها در .Fl t Ns Ar html استفاده می‌شود. .It Li date تاریخ سند در قالب ISO-8601 به صورت YYYY-MM-DD. توسط .Li rcsdate لغو می‌شود. در موارد زیر استفاده می‌شود: .Fl t Ns Ar fodt , .Fl t Ns Ar html , .Fl t Ns Ar latex , .Fl t Ns Ar man , .Fl t Ns Ar mdoc , .Fl t Ns Ar ms و .Fl t Ns Ar term . .It Li htmlheader محتوای دلخواه HTML که در سرآمد سند HTML دقیقاً پیش از بستن تگ head چاپ می‌شود. تنها در .Fl t Ns Ar html و همراه با .Fl s استفاده می‌شود. این فراداده پردازش نمی‌شود: بدون تغییر در خروجی قرار می‌گیرد. .It Li javascript یک فایل جاوااسکریپت که در سرآمد سند HTML به‌صورت دستور .Li <script src="..."></script> خروجی داده می‌شود. چندین فایل اسکریپت (به‌ترتیب) می‌توانند با دو یا چند فاصله (شامل خطوط جدید) از هم جدا شوند و به همان ترتیب در خروجی قرار می‌گیرند. تنها در .Fl t Ns Ar html استفاده می‌شود. .It Li lang زبان سند در قالب RFC 5646. تنها در .Fl t Ns Ar html استفاده می‌شود. .It Li latexheader محتوای دلخواه LaTeX که در دیباچه سند دقیقاً پیش از .Li begin{document} چاپ می‌شود. تنها در .Fl t Ns Ar latex و همراه با .Fl s استفاده می‌شود. این فراداده پردازش نمی‌شود: بدون تغییر در خروجی قرار می‌گیرد. .It Li manheader محتوای دلخواه roff که دقیقاً پیش از ماکروی .Li .TH چاپ می‌شود. تنها در .Fl t Ns Ar man و همراه با .Fl s استفاده می‌شود. این فراداده پردازش نمی‌شود: بدون تغییر در خروجی قرار می‌گیرد. .It Li msheader محتوای دلخواه roff که دقیقاً پیش از ماکروی .Li .TL چاپ می‌شود. تنها در .Fl t Ns Ar ms و همراه با .Fl s استفاده می‌شود. این فراداده پردازش نمی‌شود: بدون تغییر در خروجی قرار می‌گیرد. .It Li rcsauthor مشابه .Li author , اما در قالب نویسنده RCS. بر .Li author اولویت دارد. .It Li rcsdate مشابه .Li date , اما در قالب تاریخ RCS. بر .Li date اولویت دارد. .It Li section بخش صفحه راهنما، با مقدار پیش‌فرض .Dq 7 . تنها در .Fl t Ns Ar man و .Fl t Ns Ar mdoc استفاده می‌شود. .It Li shiftheadinglevelby تغییر سطح تمام سرآیندها به اندازه عدد داده‌شده. برای مثال، مقدار ۱ باعث می‌شود سرآیندهایی که در اصل در سطح ۱ .Pq Dq <h1> بوده‌اند به سطح ۲ .Pq Dq <h2> تبدیل شوند، در حالی که مقدار ۱- سطح ۲ را به ۱ منتقل می‌کند. سطوح به کمتر از ۱ تغییر نخواهند کرد. بر .Li baseheaderlevel اولویت دارد. اگر تنظیم نشود یا عدد معتبری نباشد، پیش‌فرض آن صفر است. در موارد زیر استفاده می‌شود: .Fl t Ns Ar fodt , .Fl t Ns Ar html , .Fl t Ns Ar latex , .Fl t Ns Ar man , .Fl t Ns Ar mdoc و .Fl t Ns Ar ms . .It Li source منبع صفحه راهنما (سازمان ارائه‌دهنده راهنما). تنها در .Fl t Ns Ar man و .Fl t Ns Ar mdoc استفاده می‌شود. .It Li volume جلد صفحه راهنما (توصیف‌کننده بخش صفحه راهنما). تنها در .Fl t Ns Ar man و .Fl t Ns Ar mdoc استفاده می‌شود. .It Li title عنوان سند. در موارد زیر استفاده می‌شود: .Fl t Ns Ar fodt , .Fl t Ns Ar html , .Fl t Ns Ar latex , .Fl t Ns Ar man , .Fl t Ns Ar mdoc , .Fl t Ns Ar ms و .Fl t Ns Ar term . .El .Pp مقادیر پیش‌فرض، مانند .Dq 7 برای .Li section , به‌عنوان مقادیر فراداده تنظیم نمی‌شوند و در صورت استفاده از کلید فراداده به‌عنوان یک متغیر، ظاهر نخواهند شد. .Ss "قالب‌ها (Templates)" برخی رسانه‌های خروجی قالبی را می‌پذیرند .Pq Fl -template تا خروجی مستقل .Pq Fl s را سفارشی‌سازی کنند. محتوای تجزیه‌شده ورودی از طریق دستورهای کنترلی که از شرط‌ها، حلقه‌ها و توالی‌های تبدیل متغیر پشتیبانی می‌کنند، درون قالب‌ها جایگذاری می‌شود. .Pp دستورهای کنترلی با .Cm $statement$ یا .Cm ${statement} محدود می‌شوند. فاصله‌های خالی دلخواه می‌توانند دستور غیرحساس به حروف کوچک و بزرگ را میان جداکننده‌های متناظر احاطه کنند. دستورهای فاقد جداکننده پایانی به‌عنوان متن کدر (بدون پردازش) تلقی می‌شوند. .Pp دستورهای زیر در دسترس هستند: .Bl -tag -width Ds .It Cm $$ , ${} چاپ نویسه واقعی .Cm $ . می‌تواند شامل فاصله‌های خالی دلخواه باشد. .It Cm $ifdef(expression)$ دستور شرطی. بین .Cm ifdef و پرانتز باز نباید هیچ فاصله خالی وجود داشته باشد. بلوکی را آغاز می‌کند که با .Cm else , .Cm endif یا پایان فایل خاتمه می‌یابد. محتوای آن تنها در صورتی چاپ می‌شود که .Cm expression به یک رشته غیرخالی ارزیابی شود. .It Cm $else$ بلوکی را آغاز می‌کند که با .Cm endif یا پایان فایل خاتمه می‌یابد. محتوای آن تنها در صورتی چاپ می‌شود که شرط یک .Cm ifdef پیشین به یک رشته خالی ارزیابی شده باشد. یک .Cm else بدون .Cm ifdef قبلی چاپ نمی‌شود. .It Cm $endif$ بلوک آغازشده با .Cm ifdef یا .Cm else را می‌بندد. اگر قبل از آن یکی از این دستورها نیامده باشد، نادیده گرفته می‌شود. .It Cm $for(expression)$ دستور حلقه. بین .Cm for و پرانتز باز نباید هیچ فاصله خالی وجود داشته باشد. بلوکی را آغاز می‌کند که با .Cm endfor یا پایان فایل خاتمه می‌یابد. محتوای بلوک به‌ازای هر آیتم فهرست ارزیابی‌شده از .Cm expression به‌طور مکرر چاپ می‌شود. کلیدواژه ارجاعی .Cm this می‌تواند برای دسترسی به عبارت حلقه فعلی در درون بلوک استفاده شود. .It Cm $expression$ با نتیجه ارزیابی یک عبارت قالب جایگزین می‌شود. .El .Pp اگر یک دستور کنترلی پیش از جداکننده پایانی به دو خط تیره متوالی ختم شود، ورودی تا خط جدید بعدی (و شامل آن) یا تا انتهای فایل مصرف می‌شود. این امر به رسانه‌های خروجی حساس به خط اجازه می‌دهد تا از دستورهای کنترلی بدون خطوط خالی زائد استفاده کنند. .Pp عبارت‌ها از موارد زیر تشکیل می‌شوند: .Pp .Dl initial[([arg]*)]?[.transform[([arg]*)]?]* , .Pp یا یک مقدار اولیه که آرگومان‌های اختیاری را می‌پذیرد و به‌دنبال آن یک سری اختیاری از تبدیلات که آرگومان‌های اختیاری را می‌پذیرند. اگر فهرست آرگومان خالی باشد یا ارائه نشود، به یک فهرست خالی ارزیابی می‌شود. .Pp مقدار .Li initial یکی از موارد زیر است: .Bl -tag -width Ds .It Cm and(expression[,expression]*) یک فهرست غیرخالی حاوی مقدار .Li true اگر تمام عبارت‌ها به فهرست‌های غیرخالی ارزیابی شوند، در غیر این صورت یک فهرست خالی. یک عبارت خالی به یک فهرست خالی ارزیابی می‌شود. .It Li \(dqliteral string\(dq به یک فهرست تک‌عضوی حاوی رشته ارزیابی می‌شود. یک رشته خالی به یک فهرست خالی ارزیابی می‌شود. نویسه نقل‌قول دوگانه می‌تواند اسکیپ شود، مانند .Li \(dqfoo\e\(dqbar\(dq . .It Cm body بدنه تجزیه‌شده سند ورودی. .It canonicalised metadata key مقدار مربوط به کلید فراداده داده‌شده در صورت یافت شدن، در غیر این صورت یک فهرست خالی. .It Cm body بدنه تجزیه‌شده سند ورودی. .It Cm meta(key) تولید مقدار فراداده برای .Cm key استانداردشده فراداده. امکان استفاده از کلیدهایی را که کلیدواژه نیز هستند (مانند .Li body یا .Li endif Ns ) فراهم می‌کند. .It Cm not(expression) یک فهرست غیرخالی حاوی مقدار .Li true اگر عبارت به عنوان یک فهرست خالی ارزیابی شود، در غیر این صورت یک فهرست خالی. .It Cm or(expression[,expression]*) یک فهرست غیرخالی حاوی مقدار .Li true اگر حداقل یکی از عبارت‌ها به فهرست غیرخالی ارزیابی شود، در غیر این صورت یک فهرست خالی. یک عبارت خالی به یک فهرست خالی ارزیابی می‌شود. .It Cm this مقدار یک بافت حلقه جاری یا یک فهرست خالی. .El .Pp اگر یک کلید فراداده در ورودی مشخص نشده باشد، یا اگر ارجاعی .Cm this توسط یک بافت حلقه مقداردهی اولیه نشده باشد، مقدار اولیه به یک فهرست خالی ارزیابی می‌شود. در غیر این صورت، مقدار یک فهرست تک‌عضوی است. .Pp اگر تبدیلات نامعتبر باشند، به یک فهرست خالی تبدیل خواهند شد. .Pp تبدیلات زیر در دسترس هستند: .Bl -tag -width Ds .It Cm escapegemini , escapegeminiline اسکیپ کردن آیتم‌های فهرست برای gemini .Pq Fl t Ns Ar gemini , برای چندین خط یا فشرده‌شده در یک خط منفرد. .It Cm escapehtml , escapehtmlattr , escapehtmlurl اسکیپ کردن آیتم‌های فهرست برای HTML .Pq Fl t Ns Ar html به‌ترتیب برای محتوای بدنه، ویژگی‌ها و ویژگی‌های URL. .It Cm escapelatex اسکیپ کردن آیتم‌های فهرست برای محتوای بدنه LaTeX .Pq Fl t Ns Ar latex . .It Cm escaperoff , escaperoffline اسکیپ کردن آیتم‌های فهرست برای roff .Pq Fl t Ns Ar ms , Fl t Ns Ar man , Fl t Ns Ar mdoc , برای چندین خط یا فشرده‌شده در یک خط منفرد. دستور .Cm escaperoff همچنین جداکننده‌های اولیه roff و موارد پس از خطوط جدید را اسکیپ می‌کند. .It Cm join اتصال یک فهرست به یک فهرست تک‌عضوی با استفاده از دو فاصله به‌عنوان جداکننده اتصال. .It Cm lowercase تبدیل تمام آیتم‌های فهرست به حروف کوچک. .It Cm split تقسیم آیتم‌های فهرست بر روی توالی‌های دو یا چند نشانه فاصله خالی (فاصله، سطر جدید، تب). این تبدیل معمولاً روی یک تک‌عضو فراخوانی می‌شود، اما ممکن است مکرراً روی یک فهرست از پیش تقسیم‌شده نیز فراخوانی گردد. پیش از اولین تقسیم، .Cm trim را فراخوانی می‌کند. فهرست حاصل هیچ موردی که صرفاً فاصله خالی باشد ندارد. .It Cm trim حذف فاصله‌های خالی از ابتدا و انتهای تمام آیتم‌های فهرست. اگر موردی فاقد نویسه غیرفاصله باشد، دور انداخته می‌شود. .It Cm uppercase تبدیل تمام آیتم‌های فهرست به حروف بزرگ. .El .Sh "محیط (ENVIRONMENT)" .Bl -tag -width Ds .It Ev NO_COLOR در حالت .Fl t Ns Ar term رنگ‌ها را تولید نکن. مترادف با .Ev NO_COLOUR . مشابه .Fl -term-nocolour . .El .Sh "فایل‌ها (FILES)" .Bl -tag -width Ds .It Pa share/html/default.html قالب پیش‌فرضی که در صورت مشخص نشدن .Fl -template برای .Fl t Ns Ar html استفاده می‌شود. .It Pa share/latex/default.latex قالب پیش‌فرضی که در صورت مشخص نشدن .Fl -template برای .Fl t Ns Ar latex استفاده می‌شود. .It Pa share/man/default.man قالب پیش‌فرضی که در صورت مشخص نشدن .Fl -template برای .Fl t Ns Ar man استفاده می‌شود. .It Pa share/ms/default.ms قالب پیش‌فرضی که در صورت مشخص نشدن .Fl -template برای .Fl t Ns Ar ms استفاده می‌شود. .It Pa share/odt/styles.xml سبک‌های پیش‌فرض مورد استفاده هنگام تولید اسناد مستقل .Fl t Ns Ar fodt . قالب برای سبک‌های .Fl -odt-style . .El .Sh "وضعیت خروج (EXIT STATUS)" .Ex -std .Pp در صورت استفاده از فلگ .Fl X , اگر کلیدواژه داده‌شده یافت نشود، .Nm lowdown با خطا خارج می‌شود. .Sh "مثال‌ها (EXAMPLES)" برای مشاهده یک فایل مارک‌داون در یک ترمینال سازگار با ANSI و UTF-8: .Pp .Dl lowdown -tterm foo.md | less -R .Pp برای تولید یک سند مستقل HTML5: .Pp .Dl lowdown -s foo.md > foo.html .Pp برای استفاده از .Xr groff 1 جهت قالب‌بندی به‌صورت یک فایل PS: .Bd -literal -offset indent lowdown -stms foo.md | groff -itk -mspdf > foo.ps .Ed .Pp یا با استفاده از LaTeX: .Bd -literal -offset indent lowdown -stlatex foo.md > foo.latex pslatex foo.latex .Ed .Pp تولید PDF از منطق مشابهی پیروی می‌کند: .Bd -literal -offset indent lowdown -stms foo.md | pdfroff -itk -mspdf > foo.pdf lowdown -stlatex foo.md > foo.latex pdflatex foo.latex .Ed .Pp پشتیبانی از UTF-8 برای خروجی PDF یا PS در .Xr groff 1 نیازمند قلم‌های مناسب است، مانند قلم Unicode Times. این قلم و سایر قلم‌های یونیکد همیشه به‌طور پیش‌فرض نصب نیستند. برای خروجی PDF، آن‌ها را می‌توان در مجموعه .Pa devpdf در دایرکتوری قلم‌های .Xr groff 1 یافت که با پیشوند .Sq U مشخص شده‌اند. .Bd -literal -offset indent lowdown -stms foo.md | pdfroff -itk -mspdf -FU-T > foo.pdf .Ed .Pp صفحات راهنما را می‌توان با استفاده از .Xr groff 1 یا .Xr mandoc 1 تبدیل کرده و در ترمینال مشاهده نمود: .Bd -literal -offset indent lowdown -stmdoc foo.md | mandoc | less lowdown -stman foo.md | groff -itk -man -Tutf8 | less -R .Ed .Pp برای فهرست کردن تمام کلیدهای فراداده و سپس استخراج مقدار فراداده .Dq title از .Pa foo.md : .Pp .Dl lowdown -L foo.md .Dl lowdown -X title foo.md .Sh "همچنین ببینید (SEE ALSO)" .Xr lowdown-diff 1 , .Xr lowdown 3 , .Xr lowdown 5 .Sh "نویسندگان (AUTHORS)" .Nm lowdown از پروژه .Lk https://github.com/hoedown/hoedown hoedown توسط .An Kristaps Dzonsons , .Mt kristaps@bsd.lv فورک شده است. از آن زمان تاکنون تغییرات زیادی یافته است.