امامت‌پدیا:لوآ

از امامت‌پدیا، دانشنامهٔ امامت و ولایت

نسخه‌ای که می‌بینید نسخه‌ای قدیمی از صفحه‌است که توسط Admin (بحث | مشارکت‌ها) در تاریخ ‏۲۰ ژوئیهٔ ۲۰۱۹، ساعت ۲۰:۳۹ ویرایش شده است. این نسخه ممکن است تفاوت‌های عمده‌ای با نسخهٔ فعلی بدارد.

لوآ یک زبان برنامه‌نویسی است که هم اکنون از طریق افزونهٔ مدیاویکی اسکریبونتو (Scribunto) در امامت‌پدیای فارسی (و دیگر پروژه‌های بنیاد ویکی‌مدیا) قابل دسترس است. کدهای لوآ می‌توانند با استفاده از کد {{#invoke:}} در الگوهای ویکی جاسازی شوند.

کدهای منبع لوآ در صفحه‌هایی تحت عنوان پودمان (مثلاً پودمان:آزمایش) قرار می‌گیرند. این پودمان‌ها سپس از صفحه‌های دیگر می‌توانند فراخوانی شوند (با {{#invoke:نام پودمان}}).

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

چند پودمان برای مثال

  • w:en:Module:Bananas: ساده‌ترین الگوی ممکن، تنها یک تابع بدون آرگومان دارد.
  • w:en:Module:BananasArgs: شیوهٔ ایجاد و استفاده از پارامترها را نمایش می‌دهد.

درخواست کدنویسی

در امامت‌پدیا:درخواست‌های لوآ می‌توانید برای نوشتن کد لوآ درخواست دهید.

تاریخچه

اول از الگوی qif شروع شد، بعد توابع تجزیه‌گر (ParserFunctions) به ویکی افزوده شدند و پس از آن افزونهٔ Lua، بعد بر روی اینکه زبان اسکریپتی ویکی جاوااسکریپت باشد یا لوآ مناقشه پیش آمد، بعد افزونهٔ WikiScripts ایجاد شد، و درنهایت Tim Starling افزونهٔ Scribunto را با پشتیبانی اولیه از زبان لوآ ساخت. بعد از سال‌ها بحث، لوآ در سال ۲۰۱۲ برای آزمایش در test2.wikipedia.org نصب شد، و از کاربران برای آزمایش آن از طریق ساخت پودمان‌های لوآ دعوت شد. بعد از آزمایش در mediawiki.org و دیگر ویکی‌های آزمایش ویکی‌مدیا، لوآ در فوریهٔ ۲۰۱۳ در همهٔ امامت‌پدیاها فعال شد.

دربارهٔ لوآ

همچنین ببینید Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module (PDF).

لوآ یک زبان اسکریپتی است که می‌تواند از طریق توابع و یا برنامه‌نویسی شیءگرا برای تحلیل داده‌ها، محاسبات، و قالب‌بندی نتایج به کار رود.

یکی از مهمترین عبارت‌هایی که باعث کندتر عمل کردن الگوهای امامت‌پدیا می‌شود دستور {{#switch:}} است که در هر صفحه‌ای معمولاً چندین بار فراخوانی می‌شود. با استفاده از جداول لوآ می‌توان به شدت بر کارایی این جستجوها افزود و تقریباً به درجهٔ پیچیدگی ‎O(1)‎ دست یافت، این داده‌ها — حتی اگر چندین بار پودمان لوآ فراخوانی شده باشد — تنها یک بار فراخوانی می‌شوند. در یک آزمایش تبدیل یک دستور switch با ۱۵۰ آرگومان به یک پودمان لوآ باعث شد حدود ۵۰٪ در زمان تجزیهٔ صفحه صرفه‌جویی شود.[۱]

برچسب‌زدن الگوهای تبدیل‌شده

در صفحهٔ بحث الگوهایی که از پودمان‌های لوآ استفاده می‌کنند الگوی {{بحث لوآ}} را بیفزایید.

پانویس‌ها

جستارهای وابسته