.\" .\" This file is part of the Detox package. .\" .\" Copyright (c) Doug Harple .\" .\" For the full copyright and license information, please view the LICENSE .\" file that was distributed with this source code. .\" .Dd February 24, 2021 .Dt DETOXRC 5 .Os .Sh "نام (NAME)" .Nm detoxrc .Nd فایل پیکربندی برای .Xr detox 1 .Sh "نمای کلی (OVERVIEW)" ابزار .Cm detox امکان پیکربندی توالی‌های خود را از طریق فایل‌های پیکربندی فراهم می‌کند. این سند نحوه کارکرد این فایل‌ها را شرح می‌دهد. .Sh "مهم (IMPORTANT)" هنگام تنظیم مجموعه‌ای جدید از قواعد، فیلترهای .Ar safe و .Ar wipeup همواره باید پس از یک فیلتر تبدیل (یا مجموعه‌ای از آن‌ها)، مانند فیلترهای .Ar utf_8 یا .Ar uncgi اجرا شوند. در غیر این صورت، خطر ورود نویسه‌های دشوار و مشکل‌ساز به نام فایل وجود خواهد داشت. .Sh "ساختار دستوری (SYNTAX)" قالب این فایل پیکربندی مشابه زبان C است. این قالب به‌طور تقریبی بر اساس فایل‌های پیکربندی مورداستفاده توسط .Cm named طراحی شده است. هر دستور با یک نقطه\-ویرگول خاتمه می‌یابد و اصلاح‌کننده‌ها در یک دستور خاص معمولاً درون آکولاد قرار می‌گیرند. .Bl -tag -width 0.25i .It Cm sequence Qo Ar name Qc Bro Ar sequence; ... Brc ; توالی‌ای از فیلترها را برای پردازش و عبور دادن نام فایل تعریف می‌کند. آرگومان .Ar name مشخص می‌کند که کاربر در زمان اجرا چگونه به این توالی خاص ارجاع خواهد داد. قراردادن نام توالی در میان علامت‌های نقل‌قول معمولاً اختیاری است، اما اگر نام توالی با یک حرف الفبا شروع نشود، باید از آن استفاده کرد. .Pp یک توالی ویژه به نام .Ar default وجود دارد که توالی پیش‌فرض مورداستفاده توسط .Cm detox است. این مقدار را می‌توان از طریق گزینه خط فرمان .Fl s یا متغیر محیطی .Ev DETOX_SEQUENCE تغییر داد و بازنویسی کرد. .Pp نام‌های توالی به بزرگی و کوچکی حروف حساس بوده و در سراسر تمام توالی‌ها یکتا هستند؛ به این معنا که اگر یک فایل سراسری در سیستم، توالی .Ar normal_seq را تعریف کرده باشد و کاربر نیز توالی‌ای با همین نام در فایل .Pa .detoxrc خود داشته باشد، نسخه کاربر .Ar normal_seq جایگزین نسخه سراسری سیستم خواهد شد. .It Cm ignore Bro Cm filename Qo Ar filename Qc ; ... Brc ; هر نام فایلی که در اینجا فهرست شود، در طول پیمایش بازگشتی نادیده گرفته خواهد شد. توجه داشته باشید که تمامی فایل‌هایی که با نقطه شروع می‌شوند، مانند .Pa .git یا .Pa .config ، توسط .Cm detox در طول پیمایش بازگشتی نادیده گرفته می‌شوند. .It Cm # comments هر متنی پس از نویسه # در هر سطری نادیده گرفته می‌شود. .El .Ss "توالی‌ها (SEQUENCES)" تمام این دستورات درون یک بلوک .Cm sequence قرار می‌گیرند. .Bl -tag -width 0.25i .It Cm iso8859_1 ; .It Cm iso8859_1 Bro Cm builtin Qo Ar name Qc ; Brc ; .It Cm iso8859_1 Bro Cm filename Qo Ar /path/to/filename Qc ; Brc ; این فیلتر نویسه‌های ISO\-8859\-1 بین 0xA0 و 0xFF را به معادل‌های UTF\-8 آن‌ها، به‌جز چند استثنا، تبدیل کدگذاری می‌کند. خروجی لزوماً امن نیست و باید از فیلتر .Ar safe نیز عبور داده شود. .Pp اگر .Ar builtin مشخص شود، از یک جدول توکار با نام تعیین‌شده استفاده خواهد شد. .Pp در شرایط عادی، نیازی به استفاده از ساختار filename نیست. ابزار .Cm detox چندین مسیر را برای یافتن فایلی به نام .Pa iso8859_1.tbl جستجو می‌کند؛ این فایل مجموعه‌ای از قواعد است که نحوه ترجمه نویسه‌های ISO\-8859\-1 را مشخص می‌سازد. اگر .Cm detox نتواند این جدول ترجمه را پیدا کند، به جدول توکار .Pa iso8859_1 رجوع خواهد کرد. .Pp همچنین می‌توانید جدول دلخواه خود را دانلود یا ایجاد کرده و با استفاده از ساختار filename که در بالا نشان داده شده، مسیر آن را به .Cm detox اعلام کنید. .Pp می‌توان چندین فیلتر .Ar iso8859_1 را به‌صورت زنجیره‌ای به یکدیگر متصل کرد، به‌شرطی که مقدار پیش‌فرض همه آن‌ها به جز آخرین مورد، خالی باشد. این موضوع در .Xr detox.tbl 5 توضیح داده شده است. .Pp این فیلتر با فیلتر .Ar utf_8 مانعة‌الجمع (ناهمساز) است. .It Cm utf_8 ; .It Cm utf_8 Bro Cm builtin Qo Ar name Qc ; Brc ; .It Cm utf_8 Bro Cm filename Qo Ar /path/to/filename Qc ; Brc ; این فیلتر نویسه‌های کنترلی یونیکد کدگذاری‌شده با UTF\-8 را فیلتر می‌کند. .Pp عملکرد این فیلتر مشابه .Ar iso8859_1 است، با این تفاوت که به دنبال جدول ترجمه‌ای به نام .Pa unicode.tbl می‌گردد. .Pp مشابه فیلتر .Ar iso8859_1 ، یک جدول داخلی بر اساس جدول ترجمه استاندارد به نام .Pa unicode نیز وجود دارد. .It Cm uncgi ; این فیلتر رشته‌های دارای فرار CGI (CGI\-escaped) را به معادل‌های ASCII آن‌ها ترجمه می‌کند. خروجی این فیلتر لزوماً امن نیست و دست‌کم باید از فیلتر .Ar safe عبور داده شود. .It Cm safe ; .It Cm safe Bro Cm builtin Qo Ar name Qc ; Brc ; .It Cm safe Bro Cm filename Qo Ar /path/to/filename Qc ; Brc ; این فیلتر را می‌توان «امن برای سیستم‌عامل‌های شبه‌یونیکس» نیز نامید. این فیلتر نویسه‌هایی را که کار با آن‌ها در محیط‌های یونیکس دشوار است، به نویسه‌های بدون مشکل تبدیل می‌کند. .Pp مشابه فیلترهای .Ar iso8859_1 و .Ar utf_8 ، این مورد را نیز می‌توان با استفاده از یک جدول ترجمه کنترل کرد. این فیلتر همچنین نسخه داخلی جدول ترجمه را دارد که از طریق جدول توکار .Ar safe قابل دسترسی است. .It Cm wipeup ; .It Cm wipeup Bro Cm remove_trailing ; Brc ; هر توالی متوالی از زیرخط‌ها یا خط‌های تیره را به یک نویسه کاهش می‌دهد. خط تیره اولویت دارد. .Pp اگر .Cm remove_trailing تنظیم شده باشد، نقطه‌ها نیز به مجموعه نویسه‌های تحت پردازش افزوده می‌شوند. در این حالت نقطه بالاترین اولویت را خواهد داشت و پس از آن خط تیره قرار می‌گیرد. .Pp اگر نویسه هش (#)، زیرخط یا خط تیره در ابتدای نام فایل وجود داشته باشد، حذف خواهد شد. .It Cm max_length Bro Cm length Ar value ; Brc ; نام فایل را تا طول مشخص‌شده (یا کمتر) کوتاه می‌کند. این فیلتر پسوند فایل را تشخیص داده و تلاش می‌کند هر آنچه را که پس از آخرین نقطه در نام فایل قرار دارد حفظ کند. .Pp به‌عنوان مثال، با فرض حداکثر طول ۱۲ و نام فایل .Pa this_is_my_file.txt ، خروجی فیلتر برابر با .Pa this_is_.txt خواهد بود. .It Cm lower ; این فیلتر نویسه‌های بزرگ را به نویسه‌های کوچک تبدیل می‌کند. این فیلتر فقط روی نویسه‌های ASCII عمل می‌کند. .El .Sh "جدول‌های توکار (BUILTIN TABLES)" .Bl -tag -width 0.25i .It cp1252 یک جدول ترجمه برای تبدیل کدگذاری نویسه‌های CP\-1252 به UTF\-8، به‌جز چند استثنا. این مورد دیگر یک کاربرد متداول نیست و به یک جدول جداگانه منتقل شده است. .It iso8859_1 یک جدول ترجمه برای تبدیل کدگذاری نویسه‌های تک‌بایتی با بیت بالاییِ فعال از ISO\-8859\-1 به UTF\-8. .It safe یک جدول جایگزینی برای نویسه‌هایی که کار با آن‌ها در یونیکس و سیستم‌عامل‌های شبه‌یونیکس دشوار است. .It unicode یک جدول ترجمه برای تبدیل نویسه‌های کنترلی چندبایتی کدگذاری‌شده در UTF\-8 به نویسه‌های امن. .El .Sh "مثال‌ها (EXAMPLES)" .Bd -literal .\" START SAMPLE # فیلتر کردن نویسه‌های کنترلی UTF-8 به ASCII (با استفاده از جدول‌های زنجیره‌ای)، پاک‌سازی sequence utf8 { utf_8 { filename "/usr/local/share/detox/custom.tbl"; }; utf_8 { builtin "unicode"; }; safe { builtin "safe"; }; wipeup { remove_trailing; }; max_length { length 128; }; }; # رمزگشایی CGI، تبدیل کدگذاری CP-1252 به UTF-8، پاک‌سازی sequence "cgi-cp1252" { uncgi; iso8859_1 { builtin "cp1252"; }; safe { builtin "safe"; }; }; .\" END SAMPLE .Ed .Sh "همچنین ببینید (SEE ALSO)" .Xr detox 1 , .Xr inline-detox 1 , .Xr detox.tbl 5 , .Xr ascii 7 , .Xr iso_8859-1 7 , .Xr unicode 7 , .Xr utf-8 7 .Sh "نویسندگان (AUTHORS)" ابزار .Nm detox توسط .An "Doug Harple" نوشته شده است.