CHA-URIMETHODMAP(5) File Formats Manual CHA-URIMETHODMAP(5)

cha-urimethodmap - پشتیبانی از نگاشت روش‌های URI در مرورگر وب Chawan

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

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

مسیر جستجوی فایل‌های urimethodmap را می‌توان با استفاده از متغیر پیکربندی external.urimethodmap بازنویسی کرد.

مسیر پیش‌فرض جستجو برای فایل‌های urimethodmap عبارت است از:

$CHA_DIR/urimethodmap:$HOME/.urimethodmap:/etc/urimethodmap

قالب urimethodmap به‌طور ۱:۱ از w3m اقتباس شده است، با برخی اصلاحات در تفسیر الگوها.

تلاشی تقریبی برای توصیف رسمی این ساختار:

URIMethodMap-File = *URIMethodMap-line
URIMethodMap-Line = Comment / URIMethodMap-Entry
URIMethodMap-Entry = Protocol *WHITESPACE Template *WHITESPACE CR
Protocol = 1*CHAR COLON
Template = [see below]
Comment = *WHITESPACE CR / "#" *CHAR CR

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

مثال‌ها:

# این مورد صحیح است:
protocol:	/cgi-bin/interpret-protocol?%s
# این مورد نیز صحیح است:
protocol:/cgi-bin/interpret-protocol?%s
# فاصله‌ها و تب‌ها هر دو مجاز هستند، بنابراین این نیز صحیح است:
protocol:	/cgi-bin/interpret-protocol?%s
# اما این مورد نادرست است، زیرا علامت دونقطه وجود ندارد:
protocol	/cgi-bin/interpret-protocol?%s

الگوی بازهدایت همان نشانی وب (URL) مقصد است. اگر رشته %s در الگو گنجانده شده باشد، با نشانی وب مقصد جایگزین خواهد شد.

برای سازگاری با w3m، الگوهایی که با /cgi-bin/ و file:/cgi-bin/ آغاز می‌شوند وضعیت خاص دارند و رشته ابتدایی با cgi-bin: جایگزین می‌شود. بنابراین برای مثال، الگوی /cgi-bin/w3mdict.cgi همانند cgi-bin:w3mdict.cgi است (و همچنین مانند file:/cgi-bin/w3mdict.cgi).

مثال:

# موارد زیر در Chawan یکسان هستند:
protocol:	/cgi-bin/interpret-protocol?%s
protocol:	file:/cgi-bin/interpret-protocol?%s
# نکته: این مدخل آخر در w3m کار نمی‌کند.
protocol:	cgi-bin:interpret-protocol?%s

با این حال توجه داشته باشید که مسیرهای مطلق به اسکریپت‌های cgi وضعیت خاص در نظر گرفته نمی‌شوند؛ بنابراین برای نمونه file:///usr/local/libexec/w3m/cgi-bin/w3mdict.cgi صرفاً w3mdict.cgi را در نمایش‌دهنده پرونده باز خواهد کرد. (برخلاف w3m که در آن ممکن بود بسته به پیکربندی کاربر، w3mdict.cgi اجرا شود.)

سطرهای زیر باید در $CHA_DIR/urimethodmap مشخص شوند (که در آن $CHA_DIR بسته به مکان config.toml شما، یا ~/.chawan است یا ~/.config/chawan).

# استفاده از اسکریپت شل CGI به نام `magnet.cgi` برای ارسال پیوندهای مگنت به Transmission.
magnet:		/cgi-bin/magnet.cgi?%s

فایل magnet.cgi را می‌توان در دایرکتوری bonus/ یافت. همچنین می‌توانید یک لفاف (wrapper) محلی CGI بنویسید تا پیوندها را به کلاینت بیت‌تورنت دلخواه شما منتقل کند.

در w3m، از urimethodmap معمولاً برای تعریف میان‌برها (shorthands) برای اسکریپت‌های CGI سوءاستفاده می‌شود.

این قابلیت در Chawan نیز کار می‌کند؛ برای نمونه، می‌توانید یک میان‌بر tl: را به این شکل تعریف کنید:

# (اسکریپت trans.cgi را می‌توانید در دایرکتوری bonus/ بیابید و بررسی کنید.)
tl:		/cgi-bin/trans.cgi?%s

سپس، می‌توانید ترجمه هر کلمه‌ای را با استفاده از tl:word باز کنید.

با این حال توجه داشته باشید که Chawan امکانات قدرتمندتری را برای چنین میان‌برهای جایگزینی در قالب قوانین همه‌منظوره (omni-rules) ارائه می‌دهد. بنابراین اگر می‌خواهید با tl:word به یک سایت لغت‌نامه آنلاین هدایت شوید به جای اینکه یک رابط محلی CGI فراهم کنید، استفاده از omni-rules به جای ترکیب urimethodmap و بازهدایت محلی CGI آسان‌تر است.

cha(1)، cha-cgi(5)