ویکی‌پدیا:لوآ

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
میانبر:
  • وپ:لوآ

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

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

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

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

  1. Lua. “Lua templating/Converting Wikitext templates”. Wikia Developers Wiki. 2012-03-14. Retrieved 2014-10-26. 

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