ویکی‌خبر:لوآ

از ویکی‌خبر، مرجع خبری آزاد
(تغییرمسیر از ویکی‌خبر:Module)
میان‌بُر:
وخ:لوآ

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

کدهای منبع لوآ در صفحه‌هایی تحت عنوان پودمان (برگردان فارسی Module (ماژول)) (مثلاً پودمان:آزمایش) قرار می‌گیرند. این پودمان‌ها سپس از صفحه‌های دیگر می‌توانند فراخوانی شوند (با {{#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 با ۱۵۰ آرگومان به یک پودمان لوآ باعث شد حدود ۵۰٪ در زمان تجزیهٔ صفحه صرفه‌جویی شود.[۱]

برچسب‌زدن الگوهایی که از لوآ استفاده می‌کنند[ویرایش]

در صفحهٔ توضیحات الگوهایی که از پودمان‌های لوآ استفاده می‌کنند الگوی {{لوآ}} را در میان برچسب <includeonly></includeonly> به صورت {{لوآ|نام پودمان}} بیفزایید.

تمرین[ویرایش]

برای تمرین به پودمان:صفحه تمرین بروید.

پانویس‌ها[ویرایش]

  1. Lua (در تاریخ 2012-03-14). Lua templating/Converting Wikitext templates.‏

جستارهای وابسته[ویرایش]