امامتپدیا:لوآ: تفاوت میان نسخهها
جز (۱ نسخه واردشده) |
جز (جایگزینی متن - 'ویکیپدیا' به 'امامتپدیا') برچسبها: ویرایش همراه ویرایش از وبگاه همراه |
||
خط ۱: | خط ۱: | ||
{{میانبر|وپ:لوآ}} | {{میانبر|وپ:لوآ}} | ||
[[لوآ (زبان برنامهنویسی)|لوآ]] یک زبان برنامهنویسی است که هم اکنون از طریق افزونهٔ مدیاویکی [[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> | ||
== برچسبزدن الگوهای تبدیلشده == | == برچسبزدن الگوهای تبدیلشده == |
نسخهٔ ۲۰ ژوئیهٔ ۲۰۱۹، ساعت ۲۰:۳۹
لوآ یک زبان برنامهنویسی است که هم اکنون از طریق افزونهٔ مدیاویکی اسکریبونتو (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 با ۱۵۰ آرگومان به یک پودمان لوآ باعث شد حدود ۵۰٪ در زمان تجزیهٔ صفحه صرفهجویی شود.[۱]
برچسبزدن الگوهای تبدیلشده
در صفحهٔ بحث الگوهایی که از پودمانهای لوآ استفاده میکنند الگوی {{بحث لوآ}} را بیفزایید.
پانویسها
جستارهای وابسته
- w:en:Wikipedia:Lua style guide – قراردادهایی برای افزایش خوانایی کدها
- Special:PrefixIndex/Module: – بررسی و پیگیری پودمانهای موجود در این ویکی به کمک Special:PrefixIndex
- w:en:Help:Lua debugging – آموزش اشکالزدایی پودمانهای لوآ
- w:en:Category:Lua-based templates – گروههای الگوهای مبتنی بر لوآ
- Module:تمرین برای تمرین پودمانهای لوآ
- وپ:درخواستهای لوآ – درخواست برای نوشتن الگوها یا انجام کارها به کمک لوآ