Buka menu utama

Perubahan

37 bait dibuang ,  2 tahun lalu
k
tiada ringkasan suntingan
 
{{Ruang nama}}
'''[[Lua]]''' ialah sebuah bahasa pengaturcaraan yang sekarang disediakan buat tapak-tapak Wikipedia melalui penyambung MediaWiki, [[mw:Extension:Scribunto|Scribunto]]. Kod Lua sekarang boleh dibenamkan dlamdalam templat wiki dengan menggunakan fungsi "<nowiki>{{#invoke:}}</nowiki>" penyambung Scribunto buat MediaWiki.
 
[[Kod sumber]] Lua disimpan dalam laman-laman yang digelar modul (contoh [[Modul:Pisang]]. Modul-modul ini kemudian dipanggil dengan "<nowiki>{{#invoke:}}</nowiki>") pada laman-laman templat (misalan, [[Module:Pisang/doc]] menggunakan kod <nowiki>{{#invoke:Pisang|hello}}</nowiki> bagi mencetak teks, "Helo, dunia!").
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sejarah buruk]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], perdebatan penskripan wiki (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim menulis [[mw:Extension:Scribunto|Scribunto]] dengan sokongan awal untuk Lua.
 
Selepas perbincangan bertahun-tahun, Lua dipasang pada tahintahun 2012 di [[test2wiki:|test2.wikipedia.org]], dengan jemputan terbuka kepada semua penyunting untuk menguji pembangunan modul-modul Lua. Lua dipasang pada Wikipedia bahasa Inggeris pada Februari 2013 selepas ujian di mediawiki.org dan wiki-wiki ujian Wikimedia.
 
== Tentang Lua ==
:''Lihat juga [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|penyampaian ringkas Brad Jorsch berkaitan contoh asas bagaimana mengubah templat teks wiki kepada modul Lua (PDF).]]''
 
Lua ialah sebuah [[bahasa penskripan]] yang dapat digunakan untuk menganalisis data, mengira ungkapan, dan memformat keputusan menggunakan fungsi atau [[pengaturcaraan berorientasi objek]]. Walaupun sesetengah skrip Lua dapat dikekalkan ringkas agar memudahkan pemahaman, Lua membenarkan pengatucaraan struktur-struktur kompleks yang boleh mencabar seorang ahli sains komputer, dengan jadual, fungsi-fungsi dinamik, dan tatasusunan bersekutu yang membolehkan subskrip indeks boleh terdiri daripada perkataan selian nombor-nombor indeks. Lua juga menyokong rekursi fungsi bersarang, justeru pengaturcaraan terlalu kompleks harus dielakkan agar pengguna-pengguna lain dapat memahami bagaimana sesuatu modul Lua daptdapat disenggara. Berikut adalahialah sebuah contoh [[kod sumber]] Lua bagi fungsi [[hello dunia|helo dunia]] yang terkandung dalam [[Modul:HeloDunia]]:
 
<syntaxhighlight lang="lua">
== Ujian unit ==
 
Kerangka ujian unit buat skrip Lua di Wikipedia disediakan di [[:en:Module:UnitTests]]. Ia membenarkan anda untuk melaksana skrip berasaskan set input dan sahkan yang output yang disangkakan dihasilkan skrip. Ujian unit berguna terutamnyaterutamanya bagi mengesan regresi hasil timbulnya masalah baharu ekoran pengubahsuaian skrip.
 
Mengikut resam, ujian unit bagi modul seperti [[Modul:Pisang]] diletakkan dalam [[Modul:Pisang/kes_ujian]], dan dilaksanan pada [[Module talk:Pisang/kes_ujian]] dengan contohnya, <code><nowiki>{{#invoke: Pisang/kes_ujian | laksan_ujian}}</nowiki></code>. Kaedah ujian perlu bermula dengan "ujian". Contoh ringkas daripada [[Modul:Pisang/kes_ujian]] seperti di bawah.
Pengepala Wikipedia yang ditransklusi sering mengandungi kod tersorok seperti "UNIQ5ae8f2aa414ff233-h-3--QINU" yang mungkin perlu dibuang agar dapat dihurai dengan berkesan..
 
Pautan wiki jenis '''<nowiki>[[Wikipedia:Bantuan|]]</nowiki>''' tidak akan bekerjaberkesan jika dipulangkan sebagai output &ndash; pautan-pautan ini perlu ditulis secara tersurat seperti '''<nowiki>[[Wikipedia:Bantuan|Bantuan]]</nowiki>'''. Jelmaan prasimpanan lain, seperti Other pre-save transforms, such as replacingpenggantianpenggantian <code>~~<nowiki/>~~</code> dengan tandatangan, juga tidak akan diproses. Transklusi templat, panggilan fungsi penghurai, dan penggantian pemboleh ubah (yakni apa-apa yang memiliki <code><nowiki>{{...}}</nowiki></code>) tidak akan diproses, dan begitu juga tag seperti <nowiki><ref></nowiki> atau <nowiki><nowiki></nowiki>.
 
== Pelabelan templat yang diubah ==
Sila letakkan templat {{tl|Lua}} pada semua templat yang mengguna Lua. IniHal ini akan membantu menyampaianpenyampaian maklumat tentang penggunaan Lua dan pengubahan templat. Ia kelihatan seperti ini:
 
{{Lua|Pisang}}
6,980

suntingan