پرش به محتوا

امامت‌پدیا:لوآ: تفاوت میان نسخه‌ها

جز
جایگزینی متن - 'ویکی‌پدیا' به 'امامت‌پدیا'
جز (۱ نسخه واردشده)
 
جز (جایگزینی متن - 'ویکی‌پدیا' به 'امامت‌پدیا')
برچسب‌ها: ویرایش همراه ویرایش از وبگاه همراه
خط ۱: خط ۱:
{{میانبر|وپ:لوآ}}
{{میانبر|وپ:لوآ}}
[[لوآ (زبان برنامه‌نویسی)|لوآ]] یک زبان برنامه‌نویسی است که هم اکنون از طریق افزونهٔ مدیاویکی [[mw:Extension:Scribunto|اسکریبونتو (Scribunto)]] در ویکی‌پدیای فارسی (و دیگر پروژه‌های بنیاد ویکی‌مدیا) قابل دسترس است. کدهای لوآ می‌توانند با استفاده از کد <nowiki>{{#invoke:}}</nowiki> در الگوهای ویکی جاسازی شوند.
[[لوآ (زبان برنامه‌نویسی)|لوآ]] یک زبان برنامه‌نویسی است که هم اکنون از طریق افزونهٔ مدیاویکی [[mw:Extension:Scribunto|اسکریبونتو (Scribunto)]] در امامت‌پدیای فارسی (و دیگر پروژه‌های بنیاد ویکی‌مدیا) قابل دسترس است. کدهای لوآ می‌توانند با استفاده از کد <nowiki>{{#invoke:}}</nowiki> در الگوهای ویکی جاسازی شوند.


[[کد منبع|کدهای منبع]] لوآ در صفحه‌هایی تحت عنوان پودمان (مثلاً [[پودمان:آزمایش]]) قرار می‌گیرند. این پودمان‌ها سپس از صفحه‌های دیگر می‌توانند فراخوانی شوند (با <nowiki>{{#invoke:نام پودمان}}</nowiki>).
[[کد منبع|کدهای منبع]] لوآ در صفحه‌هایی تحت عنوان پودمان (مثلاً [[پودمان:آزمایش]]) قرار می‌گیرند. این پودمان‌ها سپس از صفحه‌های دیگر می‌توانند فراخوانی شوند (با <nowiki>{{#invoke:نام پودمان}}</nowiki>).
خط ۱۱: خط ۱۱:


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


== تاریخچه ==
== تاریخچه ==
اول از الگوی [[w:en:Template:qif|qif]] شروع شد، بعد [[mw:Help:Extension:ParserFunctions|توابع تجزیه‌گر (ParserFunctions)]] به ویکی افزوده شدند و پس از آن افزونهٔ [[mw:Extension:Lua|Lua]]، بعد بر روی اینکه زبان اسکریپتی ویکی جاوااسکریپت باشد یا لوآ مناقشه پیش آمد، بعد افزونهٔ [[mw:Extension:WikiScripts|WikiScripts]] ایجاد شد، و درنهایت [[mw:User:Tim Starling|Tim Starling]] افزونهٔ [[mw:Extension:Scribunto|Scribunto]] را با پشتیبانی اولیه از زبان لوآ ساخت. بعد از سال‌ها بحث، لوآ در سال ۲۰۱۲ برای آزمایش در [[test2wiki:|test2.wikipedia.org]] نصب شد، و از کاربران برای آزمایش آن از طریق ساخت پودمان‌های لوآ دعوت شد. بعد از آزمایش در mediawiki.org و دیگر ویکی‌های آزمایش ویکی‌مدیا، لوآ در فوریهٔ ۲۰۱۳ در همهٔ ویکی‌پدیاها فعال شد.
اول از الگوی [[w:en:Template:qif|qif]] شروع شد، بعد [[mw:Help:Extension:ParserFunctions|توابع تجزیه‌گر (ParserFunctions)]] به ویکی افزوده شدند و پس از آن افزونهٔ [[mw:Extension:Lua|Lua]]، بعد بر روی اینکه زبان اسکریپتی ویکی جاوااسکریپت باشد یا لوآ مناقشه پیش آمد، بعد افزونهٔ [[mw:Extension:WikiScripts|WikiScripts]] ایجاد شد، و درنهایت [[mw:User:Tim Starling|Tim Starling]] افزونهٔ [[mw:Extension:Scribunto|Scribunto]] را با پشتیبانی اولیه از زبان لوآ ساخت. بعد از سال‌ها بحث، لوآ در سال ۲۰۱۲ برای آزمایش در [[test2wiki:|test2.wikipedia.org]] نصب شد، و از کاربران برای آزمایش آن از طریق ساخت پودمان‌های لوآ دعوت شد. بعد از آزمایش در mediawiki.org و دیگر ویکی‌های آزمایش ویکی‌مدیا، لوآ در فوریهٔ ۲۰۱۳ در همهٔ امامت‌پدیاها فعال شد.


== دربارهٔ لوآ ==
== دربارهٔ لوآ ==
خط ۲۱: خط ۲۱:
لوآ یک [[پردازه‌نویسی|زبان اسکریپتی]] است که می‌تواند از طریق توابع و یا [[برنامه‌نویسی شیءگرا]] برای تحلیل داده‌ها، محاسبات، و قالب‌بندی نتایج به کار رود.
لوآ یک [[پردازه‌نویسی|زبان اسکریپتی]] است که می‌تواند از طریق توابع و یا [[برنامه‌نویسی شیءگرا]] برای تحلیل داده‌ها، محاسبات، و قالب‌بندی نتایج به کار رود.


یکی از مهمترین عبارت‌هایی که باعث کندتر عمل کردن الگوهای ویکی‌پدیا می‌شود دستور <code><nowiki>{{#switch:}}</nowiki></code> است که در هر صفحه‌ای معمولاً چندین بار فراخوانی می‌شود. با استفاده از جداول لوآ می‌توان به شدت بر کارایی این جستجوها افزود و تقریباً به درجهٔ پیچیدگی {{چر}}O(1){{چر}} دست یافت، این داده‌ها — حتی اگر چندین بار پودمان لوآ فراخوانی شده باشد — تنها یک بار فراخوانی می‌شوند. در یک آزمایش تبدیل یک دستور switch با ۱۵۰ آرگومان به یک پودمان لوآ باعث شد حدود ۵۰٪ در زمان تجزیهٔ صفحه صرفه‌جویی شود.<ref>{{یادکرد وب|نویسنده=Lua|عنوان=Lua templating/Converting Wikitext templates|وب‌گاه=Wikia Developers Wiki|تاریخ=2012-03-14|سال=2012|پیوند=http://dev.wikia.com/wiki/Lua_templating/Converting_Wikitext_templates|کد زبان=en|تاریخ بازبینی=2014-10-26}}‏</ref>
یکی از مهمترین عبارت‌هایی که باعث کندتر عمل کردن الگوهای امامت‌پدیا می‌شود دستور <code><nowiki>{{#switch:}}</nowiki></code> است که در هر صفحه‌ای معمولاً چندین بار فراخوانی می‌شود. با استفاده از جداول لوآ می‌توان به شدت بر کارایی این جستجوها افزود و تقریباً به درجهٔ پیچیدگی {{چر}}O(1){{چر}} دست یافت، این داده‌ها — حتی اگر چندین بار پودمان لوآ فراخوانی شده باشد — تنها یک بار فراخوانی می‌شوند. در یک آزمایش تبدیل یک دستور switch با ۱۵۰ آرگومان به یک پودمان لوآ باعث شد حدود ۵۰٪ در زمان تجزیهٔ صفحه صرفه‌جویی شود.<ref>{{یادکرد وب|نویسنده=Lua|عنوان=Lua templating/Converting Wikitext templates|وب‌گاه=Wikia Developers Wiki|تاریخ=2012-03-14|سال=2012|پیوند=http://dev.wikia.com/wiki/Lua_templating/Converting_Wikitext_templates|کد زبان=en|تاریخ بازبینی=2014-10-26}}‏</ref>


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