| highlight(1) | user documentation | highlight(1) |
نام (NAME)
highlight - مبدل همهمنظوره کد منبع به متن قالببندیشده
خلاصه دستور (SYNOPSIS)
highlight [OPTIONS]... [FILES]...
توضیحات (DESCRIPTION)
Highlight کد منبع را به HTML، XHTML، RTF، ODT، LaTeX، TeX، BBCode، نشانهگذاری Pango، SVG یا توالیهای گریز XTERM یا ANSI تبدیل میکند. پوستههای رنگی متعددی در دسترس هستند. Highlight کلمات کلیدی، اعداد، رشتهها، توضیحات، نمادها و دستورهای پیشپردازنده را شناسایی میکند. این برنامه از حدود ۱۸۰ زبان برنامهنویسی که در اسکریپتهای Lua تعریف شدهاند، پشتیبانی میکند.
گسترش و ارتقای پایگاهدادهٔ زبانهای برنامهنویسی و پوستههای رنگی highlight بهسادگی امکانپذیر است. برای جزئیات بیشتر فایل README را ببینید.
گزینههای عمومی (GENERAL OPTIONS)
- -B, --batch-recursive=<wildcard>
- تبدیل تمام فایلهای منطبق با نویسه عام (wildcard) (از جستجوی بازگشتی استفاده میکند)
- -D, --data-dir=<path>
- تنظیم مسیر به دایرکتوری دادههای highlight
- --config-file=<file>
- تنظیم مسیر به یک فایل زبان یا پوسته
- -h, --help[=topic]
- چاپ این راهنما یا توضیح یک مبحث <topic> = [syntax, theme, plugin, config]
- -i, --input=<file>
- نام فایل ورودی
- -o, --output=<file>
- نام فایل خروجی
- -d, --outdir=<output directory>
- نام دایرکتوری خروجی
- -P, --progress
- چاپ نوار پیشرفت در حالت دستهای
- -S, --syntax=<type|path>
- تعیین نوع کد منبع، در صورت نبود پسوند فایل ورودی ضروری است. نحو میتواند به عنوان مسیر فایل زبان نیز تعریف شود.
- --syntax-by-name=<name>
- مشخص کردن نوع کد منبع با نام ارائهشده. فایلی با این نام خوانده نخواهد شد؛ برای stdin و جهت تعیین نحو فایل پیش از هدایت (pipe) محتوای آن به highlight کاربرد دارد. این گزینه بر --syntax اولویت دارد.
- --syntax-supported
- بررسی اینکه آیا نحو دادهشده قابل بارگیری است یا خیر و چاپ نتیجه (مستلزم -S یا --syntax-by-name)
- -v, --verbose
- چاپ اطلاعات اشکالزدایی در stderr؛ برای نمایش اطلاعات بیشتر تکرار کنید
- -q, --quiet
- عدم نمایش اطلاعات پیشرفت در حالت دستهای
- --force[=syntax]
- تولید خروجی در صورت ناشناخته بودن نحو ورودی. نحو جایگزین میتواند در اینجا تعیین شود، پیشفرض Plain Text است.
- --list-scripts=<type>
- فهرست کردن اسکریپتهای نصبشده <type> = [langs, themes, plugins]
- --list-cat=<categories>
- پالایش اسکریپتها بر اساس دستههای دادهشده (مثال: --list-cat='source;script')
- --max-size=<size>
- تنظیم حداکثر اندازه فایل ورودی (مثالها: 512M، 1G؛ پیشفرض: 256M)
- --skip-leading-cols=<num>
- خروجی دادن num ستون نخست هر خط بدون برجستهسازی؛ این ستونها خارج از تجزیهکننده نگه داشته میشوند، بنابراین نقلقولها یا جداکنندههای توضیح درون آنها نمیتوانند برجستهسازی بقیه کد را تغییر دهند (مثال: خروجی hg یا svn annotate)
- --plug-in=<script>
- اجرای اسکریپت افزونهٔ Lua؛ برای اعمال چندین افزونه این گزینه را تکرار کنید
- --plug-in-param
- تنظیم پارامتر ورودی افزونه. این میتواند نام یک فایل ورودی باشد (مانند 'tags').
- --print-config
- چاپ پیکربندی مسیرها
- --print-style
- فقط چاپ شیوهنامه (ببینید: --style-outfile)
- --skip=<list>
- نادیده گرفتن انواع ناشناختهٔ فایلهای فهرستشده (مثال: --skip='bak;c~;h~')
- --stdout
- ارسال خروجی به stdout (حالت دستهای، --print-style)
- --validate-input
- بررسی اینکه آیا ورودی یک فایل متنی معتبر است یا خیر
- --service-mode
- اجرا در حالت سرویس، تا زمان دریافت سیگنال متوقف نمیشود
- --version
- چاپ اطلاعات نسخه و حق تکثیر (کپیرایت)
گزینههای قالببندی خروجی (OUTPUT FORMATTING OPTIONS)
- -O, --out-format=<format>
- خروجی دادن فایل در قالب مشخصشده <format>=[html, xhtml, latex, tex, rtf, odt, ansi, xterm256, truecolor, bbcode, pango, svg]
- -c, --style-outfile=<file>
- نام فایل تعریف شیوه (style)
- -T, --doc-title
- عنوان سند
- -e, --style-infile=<file>
- نام فایلی که در style-outfile گنجانده میشود
- -f, --fragment
- حذف سربرگ و پانویس سند خروجی (ببینید: --keep-injections)
- -F, --reformat=<style>
- قالببندی مجدد خروجی به شیوه مشخصشده. <style>=[allman, gnu, google, horstmann, java, kr, linux, lisp, mozilla, otbs, pico, vtk, ratliff, stroustrup, webkit, whitesmith]
- -I, --include-style
- گنجاندن تعاریف شیوه در خروجی
- -J, --line-length=<num>
- طول خط پیش از شکستن (ببینید: -V، -W)
- -j, --line-number-length=<num>
- طول شماره خط شامل فاصلهگذاری از چپ. طول پیشفرض: 5
- -k, --font=<font>
- تنظیم قلم (مخصوص قالب خروجی)
- -K, --font-size=<num?>
- تنظیم اندازه قلم (مخصوص قالب خروجی)
- -l, --line-numbers
- چاپ شماره خطوط در فایل خروجی
- -m, --line-number-start=<cnt>
- شروع شمارهگذاری خطوط از cnt (مستلزم -l)
- --line-range=<start-end>
- خروجی دادن تنها خطوط از شماره <start> تا <end>
- --indent-guides
- رسم خط راهنما در فضای خالی ابتدای هر سطح تورفتگی. خطوط خالی درون یک بلوک، تورفتگی خط بعدی را که حاوی کد است به خود میگیرند. راهنماها از عنصر پوسته IndentGuide یا یک مقدار پیشفرض کمرنگ استفاده میکنند اگر پوسته عنصری تعریف نکرده باشد (خروجی ساده ansi همواره از پیشفرض کمرنگ استفاده میکند)؛ در صورتی که پهنای تب تعیین نشده باشد مستلزم -t 4 است
- -s, --style=<style name|path>
- تنظیم شیوه (پوسته) برجستهسازی. برای استفاده از یک پوسته Base16، پیشوند 'base16/' را اضافه کنید. پوسته میتواند به عنوان مسیر فایل پوسته نیز تعریف شود.
- -t --replace-tabs=<num>
- جایگزینی تبها با num فاصله
- -u, --encoding=<enc>
- تنظیم کدگذاری خروجی مطابق با کدگذاری فایل ورودی؛ اگر روی "NONE" تنظیم شود، اطلاعات کدگذاری حذف میگردد
- -V, --wrap-simple
- شکستن خطوط پس از ۸۰ نویسه (پیشفرض) بدون ایجاد تورفتگی برای پارامترهای توابع و عبارتها.
- -W, --wrap
- شکستن خطوط پس از ۸۰ نویسه (پیشفرض) (با احتیاط استفاده شود).
- -z, --zeroes
- پر کردن فضای خالی ابتدای شماره خطوط با صفر
- --isolate
- خروجی دادن هر نشانهٔ نحوی در برچسبهای جداگانه (خروجی پرگو)
- --keep-injections
- خروجی دادن تزریقهای سربرگ و پانویس افزونه علیرغم استفاده از -f
- --kw-case=<upper|lower|capitalize>
- خروجی دادن تمام کلمات کلیدی با بزرگی و کوچکی حروف دادهشده در صورتی که زبان به بزرگی و کوچکی حروف حساس نباشد
- --no-trailing-nl[=mode]
- حذف خط جدید پایانی. اگر mode برابر با "empty-file" باشد، تنها برای ورودی خالی حذف میشود
- --no-version-info
- حذف توضیح مربوط به اطلاعات نسخه
- --wrap-no-numbers
- حذف شماره خطوط برای خطوط شکسته شده (مستلزم -l)
گزینههای (X)HTML ((X)HTML OPTIONS)
- -a, --anchors
- افزودن لنگرگاهها (anchors) به شماره خطوط (تنها در HTML)
- -y, --anchor-prefix=<str>
- تنظیم پیشوند نام لنگرگاه
- -N, --anchor-filename
- استفاده از نام فایل ورودی به عنوان نام لنگرگاه
- -C, --print-index
- چاپ فایل شاخص حاوی پیوند به تمامی فایلهای خروجی
- -n, --ordered-list
- چاپ خطوط به عنوان موارد فهرست مرتبشده (ordered list)
- --class-name=<str>
- تنظیم پیشوند نام کلاس CSS؛ اگر روی "NONE" تنظیم شود، نام کلاس حذف میشود
- --inline-css
- خروجی دادن CSS درون هر برچسب (خروجی پرگو)
- --enclose-pre
- محصور کردن خروجی قطعهبندیشده درون برچسب pre (مستلزم -f)
گزینههای LATEX (LATEX OPTIONS)
- -b, --babel
- غیرفعال کردن میانبرهای بسته Babel
- -r, --replace-quotes
- جایگزینی نقلقول جفتی با \dq
- --beamer
- تطبیق خروجی برای بسته Beamer
- --pretty-symbols
- بهبود ظاهر براکتها و سایر نمادها
گزینههای RTF (RTF OPTIONS)
- --page-color
- گنجاندن ویژگیهای رنگ صفحه
- -x, --page-size=<size>
- تنظیم اندازه صفحه، <size>=[a3, a4, a5, b4, b5, b6, letter]
- --char-styles
- گنجاندن شیوهنامههای نویسه
گزینههای SVG (SVG OPTIONS)
- --height=<h>
- تنظیم ارتفاع تصویر (استفاده از واحدها مجاز است)
- --width=<w>
- تنظیم اندازه تصویر (ببینید: --height)
گزینههای خروجی توالی گریز ترمینال (TERMINAL ESCAPE OUTPUT OPTIONS (XTERM256 OR TRUECOLOR))
- --canvas[=width]
- تنظیم فاصلهگذاری رنگ پسزمینه (پیشفرض: 80)
گزینههای کارساز زبان (LANGUAGE SERVER OPTIONS)
- --ls-profile=<server>
- بارگیری پیکربندی LSP از lsp.conf
- --ls-delay=<ms>
- تنظیم تأخیر راهاندازی اولیه کارساز بر حسب میلیثانیه
- --ls-exec=<bin>
- تنظیم نام فایل اجرایی کارساز
- --ls-option=<option>
- تنظیم گزینه خط فرمان برای کارساز (قابل تکرار)
- --ls-hover
- اجرای درخواستهای شناوری (hover) (تنها خروجی HTML)
- --ls-semantic
- پرسوجو از کارساز برای انواع نشانههای معنایی (نیازمند LSP 3.16)
- --ls-syntax=<lang>
- تنظیم نحوی که برای کارساز قابل درک باشد
- --ls-syntax-error
- دریافت اطلاعات خطای نحو (مستلزم --ls-hover یا --ls-semantic)
- --ls-workspace=<dir>
- تنظیم دایرکتوری فضای کاری برای راهاندازی اولیه کارساز
- --ls-legacy
- عدم نیاز به پاسخ قابلیتهای کارساز
محیط (ENVIRONMENT)
برنامه Highlight این متغیرها را شناسایی میکند:
- HIGHLIGHT_DATADIR
- مسیر اسکریپتهای پیکربندی highlight را تنظیم میکند
- HIGHLIGHT_OPTIONS
- میتواند شامل گزینههای خط فرمان باشد، اما نباید شامل مسیر فایلهای ورودی باشد.
نکات (HINTS)
اگر هیچ فایل ورودی یا خروجی مشخص نشود، stdin و stdout برای ورودی یا خروجی استفاده خواهند شد. همچنین خواندن از stdin میتواند با گزینه '-' فعال شود.
قالب خروجی پیشفرض: xterm256 یا در صورت مناسب بودن truecolor، در غیر این صورت HTML.
در صورتی که هیچیک از گزینههای -c یا -I داده نشود، تعاریف شیوه در highlight.css (برای HTML، XHTML، SVG) یا highlight.sty (برای LaTeX، TeX) ذخیره میشوند. برای CSS، با گزینه -I تعاریف در سربرگ سند خروجی ذخیره میشوند؛ چنانچه -f نیز مشخص شده باشد، هیچ تعریف شیوهای وجود نخواهد داشت.
قالببندی مجدد کد (-F) تنها با فایلهای ورودی C، C++، C# و Java کار خواهد کرد.
ویژگیهای LSP به مسیرهای ورودی مطلق نیاز دارند و قالببندی مجدد (-F) را غیرفعال میکنند.
گزارش باگها (BUGS)
شکستن خطوط با -V یا -W باعث برجستهسازی نادرست توضیحات طولانی تکخطی و دستورهای پیشپردازنده خواهد شد. استفاده از line-range ممکن است با عناصر نحوی چندخطی تداخل ایجاد کند. با احتیاط استفاده شود.
فایلها (FILES)
فایلهای پیکربندی در /usr/share/highlight/ ذخیره شدهاند. تعاریف زبان، پوستهها و افزونهها در زیردایرکتوریها قرار دارند.
فایلهای مستندات در /usr/share/doc/highlight/ و فایلهای پیکربندی در /etc/highlight/ ذخیره شدهاند.
برای چگونگی نصب اسکریپتهای اختصاصی در دایرکتوری خانگی (home)، فایل README را ببینید.
مثالها (EXAMPLES)
تبدیل یک فایل تکی:
highlight -o hello.html -i hello.c
highlight -o hello.html hello.c
highlight -o hello.html -S c < hello.c
highlight -S c < hello.c > hello.html
توجه داشته باشید که فایلی با نام highlight.css در دایرکتوری جاری ایجاد میشود.
پردازش دستهای فایلها:
highlight --out-format=xhtml -B '*.cpp' -d /home/you/html_code/
تمام فایلهای *.cpp در دایرکتوری جاری و دایرکتوریهای فرعی آن را به فایلهای xhtml تبدیل کرده و خروجی را در /home/you/html_code ذخیره میکند.
highlight --out-format=latex * -d /home/you/latex_code/
تمام فایلها را به LaTeX تبدیل کرده و در /home/you/latex_code/ ذخیره میکند.
برای بهبود کارایی پردازش دستهای فایلها از --quiet استفاده کنید (برای استفاده در اسکریپتهای شل توصیه میشود).
از دستور highlight --out-format=xterm256 <yourfile> | less -R برای نمایش یک فایل منبع در ترمینال استفاده کنید.
برای مشاهده تمامی انواع نحوهای پشتیبانیشده، دستور highlight --list-scripts=langs را اجرا کنید.
نویسندگان (AUTHORS)
Andre Simon <as@andre-simon.de>
همچنین ببینید (SEE ALSO)
فایلهای README و http://www.andre-simon.de.
| 2023-05-11 | Andre Simon |