پودمان:Labelled list hatnote/توضیحات

از ویکی‌پدیا، دانشنامهٔ آزاد

این پودمان چندین تابع کاربردی را فراهم می‌کند که کار پیاده‌سازی سرنویس‌هایی که از قالب یک برچسب پیش از فهرستی از صفحه‌ها برخوردار هستند را آسان می‌کنند. نمونه‌ای از سرنویس‌های مذکور:

استفاده[ویرایش]

labelledList[ویرایش]

برای پیاده‌سازی بیشتر الگوهایی از این دست، درخواست برای اجرای تابع labelledList() کفایت می‌کند:

{{#درخواست:Labelled list hatnote|labelledList|برچسب سراسری}}

یا

{{#درخواست:Labelled list hatnote|labelledList|برچسب مفرد|برچسب جمع}}

برای مثال، وارد کردن «همچنین ببینید» به‌جای «برچسب سراسری» در نمونهٔ نخست، عملکردی یکسان با {{همچنین ببینید}} را ارائه می‌دهد، و وارد کردن «مقالهٔ اصلی» و «مقاله‌های اصلی» به‌جای «برچسب مفرد» و «برچسب جمع» منجر به عملکردی یکسان با الگوی {{اصلی}} (در فضای نام مقاله) می‌شود.

اگر برچسب‌های سوم و چهارم نیز وارد شده باشند، در مواردی به‌کار خواهند رفت که هریک از صفحه‌های هدف در خارج از فضای نام مقاله باشند؛ بنابراین، برای مثال {{اصلی}} می‌تواند به شکل زیر پیاده‌سازی شود:

{{#درخواست:Labelled list hatnote|labelledList|مقالهٔ اصلی|مقاله‌های اصلی|صفحهٔ اصلی|صفحه‌های اصلی}}

preprocessDisplays[ویرایش]

تابع preprocessDisplays() فهرستی خام از آرگومان‌ها را می‌پذیرد و هرگونه آرگومان نمایشی را با آن ترکیب می‌کند. برای مثال، {{همچنین ببینید|۱|ب۱=یک}} در ابتدا فهرست آرگومان‌های {'۱', ['ب۱'] = 'یک'} را دارد؛ این فهرست، در حالت ترکیب شده به‌شکل {'1|یک'} در فهرست جدید قرار می‌گیرد. این تابع از نام‌پوشی دستی (یعنی {{همچنین ببینید|۱{{!}}۲|ب۱=یک}}{'۱|یک'}) چشم‌پوشی می‌کند و در صورت صرف نظر از یک پارامتر یا خالی گذاشتن آن، آرایه‌های پراکنده را فشرده‌سازی می‌کند.

نمونه:

local mLabelledList = require('Module:Labelled list hatnote')
local pages = mLabelledList.preprocessDisplays(args)

_labelledList[ویرایش]

برای پودمان‌هایی که همزمان با استفاده از این پودمان، نیازمند اعمال تغییرات جزئی در عملکرد آن هستند، تابع _labelledList() تا حدودی انعطاف‌پذیرتر است. این تابع سه پارامتر را می‌پذیرد:

  1. فهرستی از صفحه‌ها، ترجیحاً پیش-پردازش‌شده و فشرده‌سازی‌شده توسط preprocessDisplays
  2. جدولی از برچسب‌ها، که آیتم اول آن حاوی برچسب مفرد یا برچسب سراسری باشد، و پارامتر دوم آن نیز جاوی برچسب جمع یا رونوشتی از پارامتر اول باشد.
  3. جدولی از گزینه‌ها، ترجیحاً حاوی موارد زیر:
    • یک رشتهٔ template حاوی عنوان کامل الگو. به‌طور پیش‌فرض بر روی عنوان این پودمان تنظیم شده‌است.
    • یک رشتهٔ category (یا nil) به‌شکلی توسط makeWikitextError در پودمان:Hatnote پذیرفته می‌شود، برای غیرفعال‌سازی اختیاری رده‌های خطا
    • یک رشتهٔ selfref (یا nil) به‌شکلی که توسط _hatnote برای فعال‌سازی گزینهٔ خودارجاع پذیرفته می‌شود

نمونه:

local mLabelledList = require('Module:Labelled list hatnote')
return mLabelledList._labelledList(pages, labels, options)

خطاها[ویرایش]

در صورتی که نام هیچ صفحه‌های در قالب پارامترهای الگو وارد نشده باشد، این پودمان باعث می‌شود تا الگوهای مبتنی بر آن یک پیام خطا تولید کنند. در حالت عادی، این پیام باید به بخش «خطاها» در صفحهٔ مستندات الگوها هدایت شود. با این حال، اگر الگوهای مزبور از این پودمان با تابع _labelledList() استفاده کنند و در جدول گزینه‌های خود آیتم template را ارائه ندهند، ان پیام خطا به‌طور پیش‌فرض به همین بخش که در حال مطالعه‌اش هستید، هدایت می‌شود. آن خطا را می‌توان با وارد کردن نام دست کم یک صفحهٔ معتبر به‌عنوان پارامتر الگوی مورد بحث، برطرف کرد؛ مشکل موجود در الگو را نیز می‌توان با وارد کردن مقدار به آیتم template در جدول options تابع _labelledList() حل کرد.