KRAMDOWN(1) General Commands Manual KRAMDOWN(1)

kramdown - یک مبدل سریع و تمام‌روبی برای ابرمجموعه Markdown

kramdown [options] [FILE...]

ابزار kramdown در درجه‌ی اول برای تجزیه (parse) یک ابرمجموعه از Markdown و تبدیل آن به قالب‌های خروجی مختلف استفاده می‌شود. این ابزار از Markdown استاندارد (با برخی اصلاحات جزئی) و افزونه‌های مختلفی مانند جدول‌ها و فهرست‌های تعاریف پشتیبانی می‌کند. به دلیل معماری پیمانه‌ای (ماژولار)، این ابزار قالب‌های ورودی دیگری به‌جز Markdown مانند HTML یا Github Flavored Markdown را نیز می‌پذیرد.

اگر FILE مشخص نشده باشد، kramdown از ورودی استاندارد می‌خواند. نتیجه در خروجی استاندارد نوشته می‌شود.

دو دسته گزینه وجود دارد که kramdown می‌پذیرد: دسته‌ی اول شامل گزینه‌هایی است که مستقیماً توسط باینری kramdown استفاده می‌شوند. دسته‌ی دوم گزینه‌ها نحوه تجزیه و تبدیل ورودی توسط kramdown را کنترل می‌کنند.

مقادیر پیش‌فرض برای این دسته‌ی دوم می‌توانند با استفاده از YAML از طریق فایل پیکربندی kramdownrc تنظیم شوند. توجه داشته باشید که نام گزینه‌های پیکربندی از زیرخط (underscore) استفاده می‌کنند، نه خط تیره (خط تیره‌ها فقط در نام گزینه‌های CLI استفاده می‌شوند)، و گزینه‌های بولی فاقد حالت no هستند و به جای آن مقدار true یا false می‌گیرند. این فایل در لینوکس/یونیکس باید در XDG_CONFIG_HOME، در macOS در ~/Library/Preferences و در ویندوز در ~/AppData/Local قرار داشته باشد.

قالب ورودی را مشخص می‌کند. قالب‌های ورودی موجود: kramdown (پیش‌فرض است)، markdown، یا html. قالب ورودی GFM از طریق جم kramdown-parser-gfm در دسترس است.
یک یا چند قالب خروجی جداشده با ویرگول را مشخص می‌کند: html (پیش‌فرض)، kramdown، latex، man یا remove_html_tags. مبدل pdf از طریق جم kramdown-converter-pdf در دسترس است.
یک یا چند افزونه را بارگذاری می‌کند. نام افزونه نباید شامل پیشوند kramdown- باشد، برای مثال فقط parser-gfm. می‌توان چندین افزونه را با جدا کردن آن‌ها با ویرگول بارگذاری کرد.

نکته: این گزینه باید قبل از هر گزینه دیگری که متکی به بارگذاری قبلی افزونه است، استفاده شود.

هیچ فایل پیکربندی‌ای را نمی‌خواند. رفتار پیش‌فرض این است که وجود فایل پیکربندی را بررسی کرده و در صورت وجود، آن را می‌خواند.
مسیر و نام پیش‌فرض فایل پیکربندی را دگرگون می‌کند.
نسخه‌ی kramdown را نمایش می‌دهد.
راهنما را نمایش می‌دهد.

پیشوند مورد استفاده برای شناسه‌های (ID) سرآیند که به‌طور خودکار تولید می‌شوند

این گزینه می‌تواند برای تنظیم یک پیشوند برای شناسه‌های سرآیند تولیدشده به‌طور خودکار استفاده شود تا هنگام تبدیل جداگانه‌ی چندین سند kramdown درون یک فایل خروجی، تداخلی رخ ندهد. این پیشوند فقط باید شامل نویسه‌هایی باشد که در یک ID معتبر هستند!

پیش‌فرض: ‘’ استفاده‌شده توسط: مبدل HTML/Latex

--[no-]auto-id-stripping
حذف تمام قالب‌بندی‌ها از متن سرآیند برای تولید خودکار شناسه

اگر این گزینه true باشد، فقط عناصر متنی یک سرآیند برای تولید شناسه در ادامه استفاده می‌شوند (برخلاف استفاده از خط متنی خام سرآیند).

این گزینه در نسخه 2.0 حذف خواهد شد زیرا پس از آن به حالت پیش‌فرض تبدیل می‌شود.

پیش‌فرض: false استفاده‌شده توسط: تجزیه‌گر kramdown

--[no-]auto-ids
استفاده از تولید خودکار شناسه‌ی سرآیند

اگر این گزینه true باشد، در صورتی که شناسه‌ای به‌طور صریح مشخص نشده باشد، مقادیر شناسه برای تمام سرآیندها به‌طور خودکار تولید می‌شوند.

پیش‌فرض: true استفاده‌شده توسط: مبدل HTML/Latex

نحوه درج نهادها (entities) در خروجی را تعیین می‌کند

مقادیر ممکن عبارتند از: :as_input (نهادها به همان شکلی که در ورودی یافت می‌شوند در خروجی درج می‌شوند)، :numeric (نهادها به شکل عددی در خروجی درج می‌شوند)، :symbolic (در صورت امکان نهادها به شکل نمادین در خروجی درج می‌شوند) یا :as_char (در صورت امکان نهادها به‌صورت نویسه در خروجی درج می‌شوند، تنها در Ruby 1.9 در دسترس است).

پیش‌فرض: :as_char استفاده‌شده توسط: مبدل HTML، مبدل kramdown

متنی را که باید برای پیوندهای بازگشتی پاورقی استفاده شود تعیین می‌کند

پیوند بازگشتی پاورقی صرفاً یک متن است، بنابراین هر نویسه‌ی خاص HTML گریز داده می‌شود (escaped).

اگر متن پیوند بازگشتی پاورقی یک رشته‌ی خالی باشد، هیچ پیوند بازگشتی برای پاورقی‌ها تولید نخواهد شد.

پیش‌فرض: ‘&8617;’ استفاده‌شده توسط: مبدل HTML

--[no-]footnote-backlink-inline
مشخص می‌کند که آیا پیوند بازگشتی پاورقی همیشه باید درون‌خطی (inline) باشد یا خیر

در حالت پیش‌فرض false، پیوند بازگشتی پاورقی در انتهای آخرین بند (در صورت وجود) قرار می‌گیرد، یا یک بند اضافی که تنها شامل پیوند بازگشتی پاورقی است ایجاد می‌شود.

تنظیم این گزینه روی true تلاش می‌کند پیوند بازگشتی پاورقی را در آخرین بند یا سرآیند (که احتمالاً تو در تو است) قرار دهد. در صورت عدم موفقیت (برای مثال در مورد یک جدول)، یک بند اضافی فقط حاوی پیوند بازگشتی پاورقی ایجاد می‌شود.

پیش‌فرض: false استفاده‌شده توسط: مبدل HTML

متن استفاده‌شده برای شماره‌ی پاورقی در پیوند پاورقی

این گزینه می‌تواند برای افزودن متن بیشتر به پیوند پاورقی استفاده شود. این مقدار باید یک رشته قالب‌بندی (format string) باشد و شماره‌ی پاورقی به‌عنوان تنها آرگومان به آن ارسال می‌شود؛ برای مثال “[footnote %s]” به‌صورت “[footnote 1]” نمایش داده خواهد شد.

پیش‌فرض: ‘%s’ استفاده‌شده توسط: HTML

شماره‌ی اولین پاورقی

این گزینه می‌تواند برای مشخص کردن شماره‌ای که برای اولین پاورقی استفاده می‌شود به کار رود.

پیش‌فرض: 1 استفاده‌شده توسط: مبدل HTML

پیشوند مورد استفاده برای شناسه‌های پاورقی

این گزینه می‌تواند برای تنظیم یک پیشوند برای شناسه‌های پاورقی استفاده شود. این قابلیت هنگام تبدیل چندین سند درون یک فایل خروجی مشترک برای جلوگیری از شناسه‌های تکراری مفید است. این پیشوند فقط باید شامل نویسه‌هایی باشد که در یک ID معتبر هستند!

پیش‌فرض: ‘’ استفاده‌شده توسط: HTML

گزینه‌هایی را مشخص می‌کند که مجاز نیستند با افزونه {::options} تنظیم شوند

مقدار باید آرایه‌ای از نام گزینه‌ها باشد.

پیش‌فرض: [template] استفاده‌شده توسط: مبدل HTML

--[no-]header-links
تگ‌های لنگر (anchor tags) را درون سرآیندها اضافه می‌کند که می‌توانند هنگام عدم استفاده از فهرست مطالب برای تولید پیوندهای یکتا (permalinks) استفاده شوند.

تگ‌های لنگر خالی هستند، اما می‌توان بر اساس سلیقه آن‌ها را استایل‌دهی کرد.

پیش‌فرض: false

میزان جابه‌جایی (offset) خروجی را برای سرآیندها تنظیم می‌کند

اگر این گزینه c باشد (ممکن است منفی نیز باشد)، آنگاه یک سرآیند با سطح n به‌صورت سرآیندی با سطح c+n در خروجی درج می‌شود. اگر c+n کمتر از 1 باشد، از سطح 1 استفاده خواهد شد. اگر c+n بزرگتر از 6 باشد، از سطح 6 استفاده خواهد شد.

پیش‌فرض: 0 استفاده‌شده توسط: مبدل HTML، مبدل Kramdown، مبدل Latex

--[no-]html-to-native
تبدیل عناصر HTML به عناصر بومی (native)

اگر این گزینه true باشد، تجزیه‌گر عناصر HTML را به عناصر محلی تبدیل می‌کند. برای مثال، هنگام تجزیه‌ی <em>hallo</em> تگ تأکید به‌طور معمول به یک عنصر :html با نوع تگ :em تبدیل می‌شود. اگر html_to_native برابر true باشد، آنگاه تأکید به یک عنصر بومی :em تبدیل خواهد شد.

این قابلیت برای مبدل‌هایی که نمی‌توانند با عناصر HTML کار کنند مفید است.

پیش‌فرض: false استفاده‌شده توسط: تجزیه‌گر kramdown

دستورات LaTeX را برای سطوح مختلف سرآیند تعیین می‌کند

دستورات مربوط به سطوح سرآیند یک تا شش را می‌توان با جدا کردن آن‌ها با ویرگول مشخص کرد.

پیش‌فرض: section,subsection,subsubsection,paragraph,subparagraph,subparagraph استفاده‌شده توسط: مبدل Latex

عرض خط مورد استفاده را هنگام نوشتن سند در خروجی مشخص می‌کند

پیش‌فرض: 72 استفاده‌شده توسط: مبدل kramdown --link-defs ARG تعریف از پیشِ تعاریف پیوند

این گزینه می‌تواند برای تعریف از پیشِ تعاریف پیوند (link definitions) استفاده شود. مقدار باید یک Hash باشد که در آن کلیدها، شناسه‌های پیوند و مقادیر، آرایه‌های دو عضوی (Array) شامل URL پیوند و عنوان پیوند هستند.

اگر مقدار یک String باشد، باید شامل یک هش معتبر YAML بوده و ساختار هش از رهنمودهای بالا پیروی کند.

پیش‌فرض: {} مورداستفاده در: تجزیه‌گر kramdown

تنظیم تعداد فاصله‌ها برای تورفتگی فهرست

پیش‌فرض: 2 مورداستفاده در: تبدیل‌کنندهٔ Kramdown

تنظیم موتور ریاضی

موتور ریاضی مورد استفاده برای تبدیل بلوک‌ها/محدوده‌های ریاضی (math blocks/spans) را مشخص می‌کند. اگر این گزینه روی +nil+ تنظیم شود، از هیچ موتور ریاضی‌ای استفاده نمی‌شود و بلوک‌ها/محدوده‌های ریاضی بدون تغییر در خروجی قرار می‌گیرند.

گزینه‌های مربوط به موتور ریاضیِ انتخاب‌شده را می‌توان با گزینهٔ پیکربندی math_engine_opts تنظیم کرد.

پیش‌فرض: mathjax مورداستفاده در: تبدیل‌کنندهٔ HTML

تنظیم گزینه‌های موتور ریاضی

گزینه‌های مربوط به موتور ریاضیِ تعیین‌شده از طریق گزینهٔ پیکربندی math_engine را مشخص می‌کند.

مقدار باید یک هش از جفت‌های کلید-مقدار باشد که برای موتور ریاضی مورد استفاده قابل فهم باشد.

پیش‌فرض: {} مورداستفاده در: تبدیل‌کنندهٔ HTML

--[no-]parse-block-html
پردازش نحو kramdown در تگ‌های بلوکی HTML

اگر این گزینه true باشد، تجزیه‌گر kramdown محتوای تگ‌های بلوکی HTML را به عنوان متنِ حاوی عناصر سطح-بلوک پردازش می‌کند. از آنجا که این رفتار معمولاً مطلوب نیست، مقدار پیش‌فرض false است. معمولاً بهتر است پردازش kramdown را به‌صورت گزینشی و از طریق صفت markdown فعال کنید.

پیش‌فرض: false مورداستفاده در: تجزیه‌گر kramdown

--[no-]parse-span-html
پردازش نحو kramdown در تگ‌های درون‌خطی (span) HTML

اگر این گزینه true باشد، تجزیه‌گر kramdown محتوای تگ‌های درون‌خطی HTML را به عنوان متنِ حاوی عناصر سطح-درون‌خطی (span-level) پردازش می‌کند.

پیش‌فرض: true مورداستفاده در: تجزیه‌گر kramdown

--[no-]remove-block-html-tags
حذف تگ‌های بلوکی HTML

اگر این گزینه true باشد، تبدیل‌کنندهٔ RemoveHtmlTags تگ‌های بلوکی HTML را حذف می‌کند.

پیش‌فرض: true مورداستفاده در: تبدیل‌کنندهٔ RemoveHtmlTags

--[no-]remove-line-breaks-for-cjk
مشخص می‌کند که آیا شکست‌های خط بین نویسه‌های CJK باید حذف شوند یا خیر

پیش‌فرض: false مورداستفاده در: تبدیل‌کنندهٔ HTML

--[no-]remove-span-html-tags
حذف تگ‌های درون‌خطی (span) HTML

اگر این گزینه true باشد، تبدیل‌کنندهٔ RemoveHtmlTags تگ‌های درون‌خطی HTML را حذف می‌کند.

پیش‌فرض: false مورداستفاده در: تبدیل‌کنندهٔ RemoveHtmlTags

تعریف نام‌های موجودیت HTML یا نقاط کد برای خروجی علامت‌های نقل‌قول هوشمند

موجودیت‌هایی که با نام موجودیت (entity name) یا نقطه کد (code point) مشخص شده‌اند و باید به ترتیب برای نقل‌قول تکی چپ، نقل‌قول تکی راست، نقل‌قول دوتایی چپ و نقل‌قول دوتایی راست استفاده شوند، با کاما از یکدیگر جدا می‌شوند.

پیش‌فرض: lsquo,rsquo,ldquo,rdquo مورداستفاده در: تبدیل‌کنندهٔ HTML/Latex

تنظیم برجسته‌ساز نحو (syntax highlighter)

برجسته‌ساز نحو مورد استفاده برای برجسته‌سازی بلوک‌ها و محدوده‌های درون‌خطی کد را مشخص می‌کند. اگر این گزینه روی +nil+ تنظیم شود، هیچ برجسته‌سازی نحوی انجام نمی‌شود.

گزینه‌های مربوط به برجسته‌ساز نحو را می‌توان با گزینهٔ پیکربندی syntax_highlighter_opts تنظیم کرد.

پیش‌فرض: rouge مورداستفاده در: تبدیل‌کنندهٔ HTML/Latex

تنظیم گزینه‌های برجسته‌ساز نحو

گزینه‌های مربوط به برجسته‌ساز نحوِ تعیین‌شده از طریق گزینهٔ پیکربندی syntax_highlighter را مشخص می‌کند.

مقدار باید یک هش از جفت‌های کلید-مقدار باشد که برای برجسته‌ساز نحوِ مورد استفاده قابل فهم باشد.

پیش‌فرض: {} مورداستفاده در: تبدیل‌کنندهٔ HTML/Latex

نام فایل الگوی ERB که باید برای قالب‌بندی خروجی استفاده شود، یا خود الگوی ERB.

از این گزینه برای قرار دادن خروجی درون یک قالب استفاده می‌شود تا خروجی بتواند به عنوان یک سند مستقل عمل کند. به عنوان مثال، یک الگوی HTML تگ‌های هدر و بدنهٔ لازم را فراهم می‌کند تا کل خروجی یک فایل معتبر HTML باشد. اگر هیچ الگویی مشخص نشود، خروجی تنها متن تبدیل‌شده خواهد بود.

هنگام واکشی فایل الگو، ابتدا نام الگوی داده‌شده بررسی می‌شود. اگر چنین فایلی پیدا نشود، پسوند تبدیل‌کننده (همان نام تبدیل‌کننده) به انتهای آن افزوده می‌شود. اگر فایل باز هم پیدا نشود، نام الگو به عنوان نام الگویی که توسط kramdown ارائه شده تفسیر می‌شود (بدون پسوند تبدیل‌کننده). اگر فایل همچنان یافت نشود، بررسی می‌شود که آیا نام الگو با ‘string://’ آغاز می‌شود یا خیر؛ در این صورت، این پیشوند حذف شده و باقی‌مانده به عنوان محتوای الگو استفاده می‌شود.

ابزار kramdown برای هر تبدیل‌کننده یک الگوی پیش‌فرض به نام ‘document’ ارائه می‌دهد.

پیش‌فرض: ‘’ مورداستفاده در: تمام تبدیل‌کننده‌ها

سطوحی را که برای فهرست مطالب (TOC) استفاده می‌شوند تعریف می‌کند

سطوح مجزا را می‌توان با جدا کردن توسط کاما (مانند 1,2,3) یا با استفاده از نحو بازه (مانند 1..3) مشخص کرد. تنها سطوح تعیین‌شده برای فهرست مطالب استفاده می‌شوند.

پیش‌فرض: 1..6 مورداستفاده در: تبدیل‌کنندهٔ HTML/Latex

--[no-]transliterated-header-ids
نویسه‌گردانی متن سربرگ پیش از تولید شناسه (ID)

در شناسه‌های سربرگ‌ها تنها از نویسه‌های ASCII استفاده می‌شود. این موضوع برای زبان‌هایی با تعداد زیادی نویسهٔ غیر ASCII مناسب نیست. با فعال کردن این گزینه، متن سربرگ تا حد امکان به ASCII نویسه‌گردانی می‌شود تا شناسهٔ سربرگ حاصل کاربردی‌تر باشد.

برای کارکرد این قابلیت باید کتابخانهٔ stringex نصب شده باشد!

پیش‌فرض: false مورداستفاده در: تبدیل‌کنندهٔ HTML/Latex

نگاشتی از نماد تایپوگرافی به نویسه‌های خروجی را تعریف می‌کند

نمادهای تایپوگرافی معمولاً با استفاده از نقطه کد یونیکد معادل خود در خروجی قرار می‌گیرند. با این حال، گاهی ممکن است نیاز به تغییر خروجی باشد؛ به‌ویژه برای جایگزینی با دنباله‌ای از نویسه‌های ASCII.

این گزینه چنین امکانی را از طریق تعیین یک نگاشت از نماد تایپوگرافی به رشتهٔ خروجی آن فراهم می‌کند. برای نمونه، نگاشت {hellip: ...} بازنمایی استاندارد ASCII یک سه‌نقطه (ellipsis) را در خروجی تولید می‌کند.

نام‌های نمادهای تایپوگرافی موجود عبارتند از:

  • hellip: سه‌نقطه (ellipsis)
  • mdash: خط تیرهٔ بلند (em-dash)
  • ndash: خط تیرهٔ کوتاه (en-dash)
  • laquo: گیومه چپ (left guillemet)
  • raquo: گیومه راست (right guillemet)
  • laquo_space: گیومه چپ همراه با یک فاصله پس از آن
  • raquo_space: گیومه راست همراه با یک فاصله پیش از آن

پیش‌فرض: {} مورداستفاده در: تبدیل‌کنندهٔ HTML/Latex اگر هیچ خطایی رخ ندهد، وضعیت خروج 0 است. در غیر این صورت 1 خواهد بود.

وب‌سایت kramdown http://kramdown.gettalong.org برای اطلاعات بیشتر، به‌ویژه درباره نحو ورودی پشتیبانی‌شده.

‏kramdown توسط Thomas Leitner نوشته شده است.

این صفحه راهنما توسط Thomas Leitner نوشته شده است.

January 2019