۳۳٬۷۴۹
ویرایش
جز (۱ نسخه واردشده) |
جز (جایگزینی متن - 'ویکیپدیا' به 'امامتپدیا') برچسبها: ویرایش همراه ویرایش از وبگاه همراه |
||
خط ۱: | خط ۱: | ||
{{میانبر|وپ:لوآ}} | {{میانبر|وپ:لوآ}} | ||
[[لوآ (زبان برنامهنویسی)|لوآ]] یک زبان برنامهنویسی است که هم اکنون از طریق افزونهٔ مدیاویکی [[mw:Extension:Scribunto|اسکریبونتو (Scribunto)]] در | [[لوآ (زبان برنامهنویسی)|لوآ]] یک زبان برنامهنویسی است که هم اکنون از طریق افزونهٔ مدیاویکی [[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> | ||
== برچسبزدن الگوهای تبدیلشده == | == برچسبزدن الگوهای تبدیلشده == |