Wikipedia
suwiki
https://su.wikipedia.org/wiki/Tepas
MediaWiki 1.47.0-wmf.16
first-letter
Média
Husus
Obrolan
Pamaké
Obrolan pamaké
Wikipedia
Obrolan Wikipedia
Gambar
Obrolan gambar
MédiaWiki
Obrolan MédiaWiki
Citakan
Obrolan citakan
Pitulung
Obrolan pitulung
Kategori
Obrolan kategori
Portal
Obrolan portal
TimedText
TimedText talk
Modul
Pembicaraan Modul
Acara
Pembicaraan Acara
Jamrud (grup musik)
0
34995
712167
625372
2026-08-21T02:49:17Z
InternetArchiveBot
25926
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
712167
wikitext
text/x-wiki
'''Jamrud''' nyaéta grup musik ''rock'' nu ngadeg taun [[1989]] di [[Cimahi]], [[Jawa Kulon]]. Mimiti ngaran grup ieu miboga ngaran Jam Rock, saacan tuluy robah jadi Jamrud.<ref name="sumber1">http://selebriti.kapanlagi.com/indonesia/j/jamrud/ {{id}} (diakses ping 14 Nopember 2011)</ref>
Formasi mimiti Jamrud nyaéta [[Azis Mangasi Siagian]] ([[gitar]]), [[Ricky Teddy]] ([[bass]]), Agus ([[drum]]) jeung Oppi ([[vokal]]).<ref name="sumber1" /> Formasi nu ahir nyaéta [[Azis Mangasi Siagian]] ([[gitar]]), [[Krisyanto]] ([[vokal]]), [[Ricky Teddy]] ([[bass]]) jeung [[Suherman Husin]] ([[drum]]).<ref name="sumber1" />
Di tengah sababaraha kali ganti personil kaasup kaluar asupna [[Sandy Handoko]] jeung [[Fitrah Alamsyah]]. ku sabab alesanna bosen, [[Krisyanto]] ngundurkeun diri, dina taun [[2008]].<ref name="sumber1" />
Sanggeus ditinggalkeun [[Krisyanto]] Jamrud ngarekrut personil anyar nyaéta Donal (vokal), Irwan ([[gitar]]) jeung Dani ([[drum]]).<ref name="sumber1" /> Ku formasi anyar ieu, maranéhna ngaliris album ka sabelas kalawan titel ''NEW PERFORMANCE'' dina bulan maret [[2009]].<ref name="sumber1" />
Ngadeukeutan ahir taun [[2009]] perenahna [[Nopember]] [[2009]], Donal jeung saparakanca ngarilis album ''the best'', ku titel ''BEST OF THE BEST JAMRUD''.<ref name="sumber1" /> Album ka-12 ieu eusina 17 lagu nu pernah jadi hits di album-album saacanna ngan diaransemén deui nu anyar.<ref name="sumber1" />
Jamrud jadi grup band anu kasohor di ieu nagri sabab lagu ''Putri'', ''Nekad'', ''Kabari Aku'', ''Berakit-raki'', ''Pelangi di Matamu'', jeung ''Terima Kasih''. Band nu dibentuk taun [[1995]] ieu terus naék sanggeus album ''Terima Kasih'' ([[1999]]) sukses anu gedé kacida besar ku ngajual kaset kurang leuwih 900 ribu siki.<ref name="sumber2">http://www.tabloidbintang.com/extra/top-list/2585-10-band-retak-dan-pecah-paling-fenomenal.html {{Webarchive|url=https://web.archive.org/web/20110828154234/http://www.tabloidbintang.com/extra/top-list/2585-10-band-retak-dan-pecah-paling-fenomenal.html |date=2011-08-28 }} {{id}} (diakses ping 14 Nopember 2011)</ref> Sanggeus nyieun 6 album, dina [[2007]], ngadadak panyanyina, [[Krisyanto]] milih kaluar.<ref name="sumber2" /> Alasan resmina sarua jeung [[Candil]], [[Krisyanto]] ngarasa jenuh ku hirupna jadi budak band.<ref name="sumber2" /> Kris ngilu ngagedékeun Jamrud ku sora vokal nu serak.<ref name="sumber2" /> Sanggeus ditinggalkeun Kris, Jamrud ngawanohkeun vokalis anyarna nyaéta [[Donal]].<ref name="sumber2" />
==Album==
# NEKAD ([[1996]])
# PUTRI ([[1997]])
# TERIMA KASIH ([[1998]])
# NINGRAT ([[2000]])
# SYDNEY SYDNEY 090102 ([[2002]])
# BO 18+ ([[2004]])
# ALL ACCESS IN LOVE ([[2006]]) jeung sajumlahing kompilasi.<ref name="sumber1" />
==Sumber==
{{reflist}}
{{pondok}}
[[Kategori:Grup musik]]
0x5bycuakcomnwt204q2a2oz9ohnj1s
Jikustik (grup musik)
0
34997
712168
625855
2026-08-21T02:51:11Z
InternetArchiveBot
25926
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
712168
wikitext
text/x-wiki
'''Jikustik''' nyaéta ngaran grup musik anu ngadeg di [[Yogyakarta]], [[26 Februari 1996]], ku personilna Pongki ([[vokal]], [[gitar]]), Icha ([[bass]], [[vokal]]), Dadi ([[gitar]], [[vokal]]), Adhit ([[keyboard]]) jeung Carlo ([[drum]]).<ref name="sumber1">http://selebriti.kapanlagi.com/indonesia/j/jikustik/ {{id}} (diakses ping 14 Nopember 2011)</ref>
Jikustik, saacan boga ngaran G-Coustic.<ref name="sumber1" /> Maranéhna maénna di kafe-kafe, kitu ogé nalika rillis album independen, masih loba ngagunakeun huruf "G" anu asalna ngaran ''Geronimo'', hiji radio di Jogja anu jadi bibit buit Jikustik.<ref name="sumber1" /> Sedengkeun ''Coustic'' asalna tina kecap ''acoustic''.<ref name="sumber1" />
Dua personal, masing-masing [[Icha]] jeung [[Adhit]] pernah nyieun grup band bareng jeung [[Eross]] [[Sheila on 7]], Saméméh gabung jeung Jikustik.<ref name="sumber1" /> Grup nu ngaranna Dizzy ogé sok mangung diacara sakola jeung kampus ku maénkeun lagu [[rock n roll]] jeung Icha minangka panyanyina.<ref name="sumber1" />
Ku sabab keyeng Jikustik pernah ngaluarkeun album independent, nu judulna ''Bulan Di Djogja''.<ref name="sumber1" /> Anu eusi laguna di antarana waé:
# ''Bulan di Pangkuan'';
# ''Bersanding Denganmu'';
# ''Rie...'';
# ''Menunggumu Pulang'';
# ''Seribu Tahun Lamanya'';
# ''Separuh Hati'';
# ''Didera Hujan''jeung;
# Adinda''.<ref name="sumber1" />
Ayeuna salian ti personel Jikustik, Pongki atawa Icha, loba nyieun lagu pikeun para panyanyi, boh panyanyi senior boh pendatang anyar. Di antarana nyaéta [[Audy]], [[Iwan Fals]], [[Chrisye]], [[Siti Nurhaliza]] jeung [[Rossa]].<ref name="sumber1" /> Kitu ogé Icha nu nyiptakeun lagu pikeun panyanyi senior [[Malaysia]], [[Sheila Madjid]].<ref name="sumber1" />
Dua tahun eureun, ditahun [[2008]] Jikustik ngaluarkeun album nu panganyarna.<ref name="sumber1" /> Album kasalapan dibéré judul ''MALAM''.<ref name="sumber1" /> Anu saeutik beda nyaéta aya ''single Selamat Malam'' minangka ''single'' utama.<ref name="sumber1" /> ''Selamat Malam'' ngagunakeun irama ''béat'' anu téréh jiga lagu [[dance]].<ref name="sumber1" /> Hal éta ngabalukarkeun lagu ieu sukses jadi ''top chart'' di sawatara [[radio]].<ref name="sumber1" />
Jikustik acan sapinuhna bubar.<ref name="sumber2">http://www.tabloidbintang.com/extra/top-list/2585-10-band-retak-dan-pecah-paling-fenomenal.html {{Webarchive|url=https://web.archive.org/web/20110828154234/http://www.tabloidbintang.com/extra/top-list/2585-10-band-retak-dan-pecah-paling-fenomenal.html |date=2011-08-28 }} {{id}} (diakses ping 14 Nopember 2011)</ref> Band ieu ngan ukur eureun heula jeung personelna sibuk séwang-séwangan.<ref name="sumber2" /> Utamana mah vokalisna, [[Pongky Barata]] nu kaciri leuwih sibuk dina band anyarna [[the Dance Company]].<ref name="sumber2" /> Pongky dianggap mopohokeun band asal [[Yogyakarta]] anu digedékeun leuwih ti 13 taun.<ref name="sumber2" /> Personel Jikustik lainna nepi ka miharep sangkan Pongky balik deui fokus ka Jikustik.<ref name="sumber2" /> Namun, kasibukanna di [[The Dance Company]] jeung proyek-proyek turunanna (ngarilis album istrina, istri-istri personel lain, jeung anak-anakna).<ref name="sumber2" />
==Sumber==
{{reflist}}
{{pondok}}
[[Kategori:Grup musik]]
r38n9v2kedjd93sq12228kwbgektsuu
Wikipedia:Lua
4
41001
712156
712155
2026-08-20T18:50:32Z
Nimmzo
37272
/* Using arguments */ +pipe `|`. Module: → Modul:
712156
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
[[Lua (programming language)|Lua]] is a programming language that is now available, via the [[mw:Extension:Scribunto|Scribunto]] MediaWiki extension, on the English Wikipedia. Lua code can now be embedded into wiki templates by employing the "<nowiki>{{#invoke:}}</nowiki>" functionality of the Scribunto MediaWiki extension.
The Lua [[source code]] is stored in pages called modules (e.g., [[Module:Bananas]]). These individual modules are then invoked (by code <code><nowiki>{{#invoke:}}</nowiki></code>) on template pages (e.g., [[Module:Bananas/doc]] uses the code <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> to print the text "Hello, world!").
== Running a module ==
Modules are run on normal wiki pages using the #invoke parser function. The syntax of #invoke is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''. A function is a set of instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref> This is much like what a template does: you give it arguments, it processes them, and you get a result. However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name: we can't run a module by itself, and without specifying a function name, Lua will not know which function it is we want to run.
The simplest way to run a module from a wiki page is like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:ngaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, we can run [[Module:Bananas]] in this way, which has one function named "hello".
* <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> → {{#invoke:Bananas|hello}}
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, in [[Modul:BananasArgs]], the "hello" function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Example modules ==
* [[Module:Bananas]]: The simplest possible script, providing a single function with no arguments.
* [[Module:BananasArgs]]: Demonstrates how to access and use parameters.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
rz4y545u5uke0tgk0lcg87iwjxriite
712157
712156
2026-08-20T19:00:10Z
Nimmzo
37272
/* Running a module */ moved description from /* Example modules */
712157
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
[[Lua (programming language)|Lua]] is a programming language that is now available, via the [[mw:Extension:Scribunto|Scribunto]] MediaWiki extension, on the English Wikipedia. Lua code can now be embedded into wiki templates by employing the "<nowiki>{{#invoke:}}</nowiki>" functionality of the Scribunto MediaWiki extension.
The Lua [[source code]] is stored in pages called modules (e.g., [[Module:Bananas]]). These individual modules are then invoked (by code <code><nowiki>{{#invoke:}}</nowiki></code>) on template pages (e.g., [[Module:Bananas/doc]] uses the code <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> to print the text "Hello, world!").
== Running a module ==
Modules are run on normal wiki pages using the #invoke parser function. The syntax of #invoke is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''. A function is a set of instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref> This is much like what a template does: you give it arguments, it processes them, and you get a result. However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name: we can't run a module by itself, and without specifying a function name, Lua will not know which function it is we want to run.
The simplest way to run a module from a wiki page is like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:ngaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, [[Modul:Bananas]] is the simplest possible script, providing a single function with no arguments.<br />
We can run this module in this way, which has one function named <code>hello</code> in lowercase.
* <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> → {{#invoke:Bananas|hello}}
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, in [[Modul:BananasArgs]], the "hello" function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Example modules ==
* [[Module:BananasArgs]]: Demonstrates how to access and use parameters.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
1df3kbhacrjuse8yxjesokiti7in03d
712158
712157
2026-08-20T19:10:55Z
Nimmzo
37272
/* Using arguments */ Moved description from removed chapter "Example modules"
712158
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
[[Lua (programming language)|Lua]] is a programming language that is now available, via the [[mw:Extension:Scribunto|Scribunto]] MediaWiki extension, on the English Wikipedia. Lua code can now be embedded into wiki templates by employing the "<nowiki>{{#invoke:}}</nowiki>" functionality of the Scribunto MediaWiki extension.
The Lua [[source code]] is stored in pages called modules (e.g., [[Module:Bananas]]). These individual modules are then invoked (by code <code><nowiki>{{#invoke:}}</nowiki></code>) on template pages (e.g., [[Module:Bananas/doc]] uses the code <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> to print the text "Hello, world!").
== Running a module ==
Modules are run on normal wiki pages using the #invoke parser function. The syntax of #invoke is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''. A function is a set of instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref> This is much like what a template does: you give it arguments, it processes them, and you get a result. However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name: we can't run a module by itself, and without specifying a function name, Lua will not know which function it is we want to run.
The simplest way to run a module from a wiki page is like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:ngaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, [[Modul:Bananas]] is the simplest possible script, providing a single function with no arguments.<br />
We can run this module in this way, which has one function named <code>hello</code> in lowercase.
* <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> → {{#invoke:Bananas|hello}}
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, [[Modul:BananasArgs]] demonstrates how to access and use parameters.<br />
The <code>hello</code> function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
8ujsng0bdjj26ey9305ffld5oct9ozt
712159
712158
2026-08-20T19:21:02Z
Nimmzo
37272
/* lead section */ Moved any Banana to /* Halo, dunya! dina Lua */ <code><nowiki> → <syntaxhighlight lang="lua" inline>
712159
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
[[Lua (programming language)|Lua]] is a programming language that is now available, via the [[mw:Extension:Scribunto|Scribunto]] MediaWiki extension, on the English Wikipedia. Lua code can now be embedded into wiki templates by employing the "<nowiki>{{#invoke:}}</nowiki>" functionality of the Scribunto MediaWiki extension.
== Halo, dunya! dina Lua ==
The Lua source code is stored in a wiki page with the prefix <syntaxhighlight lang="lua" inline>Modul:</syntaxhighlight> (e.g., [[Modul:Bananas]]). These individual modules are then invoked (by code <syntaxhighlight lang="lua" inline>{{#invoke:}}</syntaxhighlight>) on another wiki page (e.g., [[Modul:Bananas/doc]] uses the code <syntaxhighlight lang="lua" inline>{{#invoke:Bananas|hello}}</syntaxhighlight> to print the text <syntaxhighlight lang="lua" inline>"Hello, world!"</syntaxhighlight>).
Modules are run on normal wiki pages using the #invoke parser function. The syntax of #invoke is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''. A function is a set of instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref> This is much like what a template does: you give it arguments, it processes them, and you get a result. However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name: we can't run a module by itself, and without specifying a function name, Lua will not know which function it is we want to run.
The simplest way to run a module from a wiki page is like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:ngaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, [[Modul:Bananas]] is the simplest possible script, providing a single function with no arguments.<br />
We can run this module in this way, which has one function named <code>hello</code> in lowercase.
* <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> → {{#invoke:Bananas|hello}}
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, [[Modul:BananasArgs]] demonstrates how to access and use parameters.<br />
The <code>hello</code> function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
m2bxleijid4u16ohh7pk7at4wd986zd
712160
712159
2026-08-20T19:30:17Z
Nimmzo
37272
/* Halo, dunya! dina Lua */ Shortened sentences
712160
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
[[Lua (programming language)|Lua]] is a programming language that is now available, via the [[mw:Extension:Scribunto|Scribunto]] MediaWiki extension, on the English Wikipedia. Lua code can now be embedded into wiki templates by employing the "<nowiki>{{#invoke:}}</nowiki>" functionality of the Scribunto MediaWiki extension.
== Halo, dunya! dina Lua ==
The Lua source code is stored in a wiki page with the prefix <syntaxhighlight lang="lua" inline>Modul:</syntaxhighlight> (e.g., [[Modul:Bananas]]). These individual modules are then invoked (by code <syntaxhighlight lang="lua" inline>{{#invoke:}}</syntaxhighlight>) on another wiki page (e.g., [[Modul:Bananas/doc]] uses the code <syntaxhighlight lang="lua" inline>{{#invoke:Bananas|hello}}</syntaxhighlight> to print the text <syntaxhighlight lang="lua" inline>"Hello, world!"</syntaxhighlight>).
Modules are run on normal wiki pages using the #invoke parser function. The syntax of #invoke is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''. A function is a set of instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref> This is much like what a template does: you give it arguments, it processes them, and you get a result. However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name:
# We can't run a module by itself.
# Without specifying a function name, Lua will not know which function it is we want to run.
Run a module from your user like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, [[Modul:Bananas]] is the simplest possible script, providing a single function with no arguments.<br />
The function is named <code>hello</code> in lowercase. We can run this module in this way.
* <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> → {{#invoke:Bananas|hello}}
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, [[Modul:BananasArgs]] demonstrates how to access and use parameters.<br />
The <code>hello</code> function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
ijr2qwrlqtwjeowsihqwciokr7rgv09
712161
712160
2026-08-20T19:40:08Z
Nimmzo
37272
/* Halo, dunya! dina Lua */ Starting a sentence in a column 1 is easier to read online.
712161
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
[[Lua (programming language)|Lua]] is a programming language that is now available, via the [[mw:Extension:Scribunto|Scribunto]] MediaWiki extension, on the English Wikipedia. Lua code can now be embedded into wiki templates by employing the "<nowiki>{{#invoke:}}</nowiki>" functionality of the Scribunto MediaWiki extension.
== Halo, dunya! dina Lua ==
The Lua source code is stored in a wiki page with the prefix <syntaxhighlight lang="lua" inline>Modul:</syntaxhighlight> (e.g., [[Modul:Bananas]]). These individual modules are then invoked (by code <syntaxhighlight lang="lua" inline>{{#invoke:}}</syntaxhighlight>) on another wiki page (e.g., [[Modul:Bananas/doc]] uses the code <syntaxhighlight lang="lua" inline>{{#invoke:Bananas|hello}}</syntaxhighlight> to print the text <syntaxhighlight lang="lua" inline>"Hello, world!"</syntaxhighlight>).
Modules are run on normal wiki pages using the <code>#invoke</code> parser function. The syntax of <code>#invoke</code> is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''.
A function is a set of Lua instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref>
This is much like what a template does: you give it arguments, it processes them, and you get a result.<br />
However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name:
# We can't run a module by itself.
# Without specifying a function name, Lua will not know which function it is we want to run.
Run a module from your user page like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, [[Modul:Bananas]] is the simplest possible script, providing a single function with no arguments.<br />
The function is named <code>hello</code> in lowercase. We can run this module in this way.
* <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> → {{#invoke:Bananas|hello}}
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, [[Modul:BananasArgs]] demonstrates how to access and use parameters.<br />
The <code>hello</code> function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
d9ldwwq1kp7v3klx5ishz3d4r55q00o
712162
712161
2026-08-20T19:50:15Z
Nimmzo
37272
/* lead section */ localized
712162
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
Lua mangrupakeun basa pamrograman nu ayeuna geus sadia di Wikipedia Sunda ngaliwatan ekstensi MediaWiki [[mw:Extension:Scribunto|Scribunto]].<br />
Kode Lua ayeuna bisa diasupkeun kana témplat wiki ku maké fungsi parser <syntaxhighlight lang="lua" inline>{{#invoke:}}</syntaxhighlight> dina kaca pamaké anjeun.
== Halo, dunya! dina Lua ==
The Lua source code is stored in a wiki page with the prefix <syntaxhighlight lang="lua" inline>Modul:</syntaxhighlight> (e.g., [[Modul:Bananas]]). These individual modules are then invoked (by code <syntaxhighlight lang="lua" inline>{{#invoke:}}</syntaxhighlight>) on another wiki page (e.g., [[Modul:Bananas/doc]] uses the code <syntaxhighlight lang="lua" inline>{{#invoke:Bananas|hello}}</syntaxhighlight> to print the text <syntaxhighlight lang="lua" inline>"Hello, world!"</syntaxhighlight>).
Modules are run on normal wiki pages using the <code>#invoke</code> parser function. The syntax of <code>#invoke</code> is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''.
A function is a set of Lua instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref>
This is much like what a template does: you give it arguments, it processes them, and you get a result.<br />
However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name:
# We can't run a module by itself.
# Without specifying a function name, Lua will not know which function it is we want to run.
Run a module from your user page like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, [[Modul:Bananas]] is the simplest possible script, providing a single function with no arguments.<br />
The function is named <code>hello</code> in lowercase. We can run this module in this way.
* <code><nowiki>{{#invoke:Bananas|hello}}</nowiki></code> → {{#invoke:Bananas|hello}}
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, [[Modul:BananasArgs]] demonstrates how to access and use parameters.<br />
The <code>hello</code> function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
gviym3es2mgyhgo0hoduqju7qre598u
712163
712162
2026-08-20T20:10:05Z
Nimmzo
37272
/* Halo, dunya! dina Lua */ The idea of "dina kaca pamaké anjeun" is that if it works on your user page, the reader can continue to read
712163
wikitext
text/x-wiki
{{tarjamahkeun|Inggris}}
{{WikiProject Lua/header}}
{{Information page|WP:Lua}}
{{Namespaces}}
Lua mangrupakeun basa pamrograman nu ayeuna geus sadia di Wikipedia Sunda ngaliwatan ekstensi MediaWiki [[mw:Extension:Scribunto|Scribunto]].<br />
Kode Lua ayeuna bisa diasupkeun kana témplat wiki ku maké fungsi parser <syntaxhighlight lang="lua" inline>{{#invoke:}}</syntaxhighlight> dina kaca pamaké anjeun.
== Halo, dunya! dina Lua ==
The Lua source code is stored in a wiki page with the prefix <syntaxhighlight lang="lua" inline>Modul:</syntaxhighlight> (e.g., [[Modul:Bananas]]). These individual modules are then invoked (by code <syntaxhighlight lang="lua" inline>{{#invoke:}}</syntaxhighlight>) on another wiki page (e.g., [[Modul:Bananas/doc]] uses the code <syntaxhighlight lang="lua" inline>{{#invoke:Bananas|hello}}</syntaxhighlight> to print the text <syntaxhighlight lang="lua" inline>"Hello, world!"</syntaxhighlight>).
Modules are run on normal wiki pages using the <code>#invoke</code> parser function. The syntax of <code>#invoke</code> is similar to template syntax, but with some differences. The most important difference is that you need to specify a ''function name''.
A function is a set of Lua instructions that takes input values, processes them, and returns an output value.<ref>You can also have multiple output values, but functions that do this are not normally meant to be accessed from wiki pages.</ref>
This is much like what a template does: you give it arguments, it processes them, and you get a result.<br />
However, you can define many functions in one Lua module, whereas you can only define one template on one page.
Furthermore, you can't just run a Lua module directly - you can only run one of the module's functions. The module is just a container for the functions, and doesn't do anything by itself. So there are two reasons that we need to input a function name:
# We can't run a module by itself.
# Without specifying a function name, Lua will not know which function it is we want to run.
Run a module from your user page like this:
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi}}
</syntaxhighlight></blockquote>
For example, [[Modul:Bananas]] is the simplest possible script, providing a single function with no arguments.<br />
The function is named <code>hello</code> in lowercase. We can run this module in this way.
Anjeun teu kudu masang atawa nyimpen nanaon.
# Édit kaca pamaké anjeun.
# Témpélkeun panggilan di handap ieu dina awal hiji baris anyar dina kaca pamaké anjeun:
<blockquote><syntaxhighlight lang="wikitext" line highlight=1 copy>
{{#invoke:Bananas|hello}}
</syntaxhighlight></blockquote>
<ol start="3">
<li>Klik <code>Témbongkeun sawangan</code>. Panggilan fungsi <syntaxhighlight lang="lua" inline>hello</syntaxhighlight> dina [[Modul:Bananas]] diganti ku ieu di handap: Halo, dunya!</li>
</ol>
<blockquote><syntaxhighlight lang="text" line>
Hello, world!
</syntaxhighlight></blockquote>
<ol start="4">
<li>Klik <code style="color:#bf3c2c;>Bolay</code>. Lamun dipenta, klik <code>Tinggalkeun</code>.</li>
<li>Kaca pamaké anjeun tetep '''teu''' dirobah.</li>
</ol>
=== Using arguments ===
Arguments are passed to modules in the same way that they are passed to templates. Note, however, that the text after the first pipe character <code>|</code> is always the function name; the first positional argument is the text after the ''second'' pipe.
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|arguménPosisional1}}
</syntaxhighlight></blockquote>
For example, [[Modul:BananasArgs]] demonstrates how to access and use parameters.<br />
The <code>hello</code> function greets different people depending on the first positional argument. It works like this:
* <code><nowiki>{{#invoke:BananasArgs|hello|Mariam}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mariam}}
* <code><nowiki>{{#invoke:BananasArgs|hello|Mohamed}}</nowiki></code> → {{#invoke:BananasArgs|hello|Mohamed}}
<blockquote><syntaxhighlight lang="lua" line>
{{#invoke:NgaranModul|ngaranFungsi|argNgaran1=nilai1|argNgaran2=nilai2}}
</syntaxhighlight></blockquote>
BananasArgs also has a function named "count_fruit" which uses the named arguments <code>bananas</code> and <code>apples</code> to count the number of bananas and apples we have. It can be run switching the order of the parameters:
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
* <code><nowiki>{{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}</nowiki></code> → {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
Most modules will have a documentation page explaining what arguments can be used and what their effects will be.
== Request a script ==
Visit [[:en:Wikipedia talk:Lua]] to request help in writing a Lua script to perform a specific task on Wikipedia or another Wikimedia Foundation project.
== History ==
[[mw:Manual:MediaWiki architecture#Magic words and templates|Sordid history]]. {{tl|qif}}, [[mw:Help:Extension:ParserFunctions|ParserFunctions]], [[mw:Extension:Lua|Lua extension]], wiki scripting language debated (JavaScript v. Lua), [[mw:Extension:WikiScripts]], Tim writes [[mw:Extension:Scribunto|Scribunto]] with initial support for Lua.
Discussed for years, Lua was installed in 2012 for testing on [[test2wiki:|test2.wikipedia.org]], with open invitation to all editors to experiment with developing Lua modules. Lua was installed on the English Wikipedia in February 2013, after testing on mediawiki.org and Wikimedia test wikis.
== About Lua ==
:''See also [[:File:WMF Tech Talk 2013-02-28 slides - Scribunto presentation.pdf|Brad Jorsch's short presentation for a basic example of how to convert a wikitext template into a Lua module.]]''
Lua is a [[scripting language]] which can be used to analyze data, calculate expressions, and format results using functions or [[object-oriented programming]]. Although some Lua scripts can be kept simple, for easy understanding, Lua allows complex structures including tables, dynamic functions, and [[associative array]]s where index [[subscript]]s can be words as well as index numbers. Lua also supports [[recursion]] of re-nested functions, so care should be taken to avoid excessive complexity where other users would not understand how to maintain a Lua module. The following is an example of Lua [[source code]] for a [[hello world]] function contained in [[Module:HelloWorld]]:
<syntaxhighlight lang="lua">
-- All Lua modules on Wikipedia must begin by defining a variable that will hold their
-- externally accessible functions. They can have any name and may also hold data.
my_object = {}
-- Add a function to the variable. These are callable in Wikipedia via the #invoke command.
-- "frame" will contain the data that Wikipedia sends this function when it is called.
my_object.hello = function( frame )
-- Declare a local variable and assign data to it.
local str = "Hello World!"
-- Quit this function and send the information in "str" back to Wikipedia.
-- The "print" function is not allowed, so all output is accomplished via
-- returning strings in this fashion.
return str
-- End the function.
end
-- All modules end by returning the variable containing its functions to Wikipedia.
return my_object
-- We can now use this module by calling {{#invoke: HelloWorld | hello }}.
-- The #invoke command begins with the module's name, in this case "HelloWorld",
-- then takes the name of one of its functions as an argument, in this case "hello".
</syntaxhighlight>
A sample of Lua is highlighted by tag "<source lang="lua">...</source>" placed around the Lua source code. To view some more complex examples of Lua, see article: "[[Lua (programming language)]]".
For instructions on how to use Lua within MediaWiki (and hence Wikipedia), see [[mw:Extension:Scribunto/Lua reference manual]].
== Unit testing ==
A unit testing framework for Lua scripts on Wikipedia is available at [[Module:UnitTests]]. It allows you to execute your script on a given set of inputs and verify that the expected outputs are produced. Unit tests are especially useful for rapidly detecting regressions, where modifications to a script introduce new problems.
By convention, unit tests for a module like [[Module:Bananas]] are placed in [[Module:Bananas/testcases]], and are executed on [[Module talk:Bananas/testcases]] with e.g. <code><nowiki>{{#invoke: Bananas/testcases | run_tests}}</nowiki></code>. Test methods must begin with "test". A simple example from [[Module:Bananas/testcases]] is below.
<syntaxhighlight lang="lua">
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
</syntaxhighlight>
For a list of all modules using unit tests, see [[Special:Whatlinkshere/Module:UnitTests]].
There's also an alternative unit testing framework [[Special:Whatlinkshere/Module:ScribuntoUnit|in use]] called [[Module:ScribuntoUnit]], that originates from Hungarian Wikipedia. Feature-wise it's very similar to [[Module:UnitTests]], but it has a different coding style, and throws real errors that are trapped using protected calls. It also has a method to compare floats within a given precision.
== Wikipedia-specific features ==
Overall: Lua can only get input as text strings passed to the <code><nowiki>{{#invoke:}}</nowiki></code> and what can be fetched via mw.title.new(...):getContent() and frame:expandTemplate(). Lua output will not be preprocessed unless frame:preprocess() is explicitly called, meaning that template calls, parser functions, etc. in the output will not work correctly. Also, all Lua in the page is limited to 10 seconds CPU time (you can look in the source code of a rendered page to see how long a template or module took to parse). And relative to standard Lua, Scribunto's Lua lacks all sorts of functions (see [[mw:Extension:Scribunto/Lua reference manual#Differences from standard Lua]]).
=== Lua input limitations ===
Lua code in Scribunto is only run when the page is being parsed. Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
=== Wikitext ===
Transcluded Wikipedia headers frequently contain a hidden code such as <syntaxhighlight lang="lua" inline>"UNIQ5ae8f2aa414ff233-h-3--QINU"</syntaxhighlight> which may need to be stripped out in order for them to be parsed effectively.
<blockquote><syntaxhighlight lang="lua" line highlight=1 copy>
print(string.reverse("UNIQ")) -- Urutan sabalikna tina "UNIQ" nyaéta "QINU"
</syntaxhighlight></blockquote>
<blockquote><syntaxhighlight lang="lua" line start=2>
QINU
</syntaxhighlight></blockquote>
Wikilinks of the type <code><nowiki>[[Wikipedia:Pitulung</nowiki></code>'''<code><nowiki>|</nowiki></code>'''<code><nowiki>]]</nowiki></code> won't work if returned as output - they need to be written explicitly as <syntaxhighlight lang="lua" inline>[[Wikipedia:Pitulung|</syntaxhighlight>'''<code><nowiki>Pitulung</nowiki></code>'''<syntaxhighlight lang="lua" inline>]]</syntaxhighlight>. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
== Labeling converted templates ==
{{lua|Module:Bananas}}
Please place the {{tl|lua}} template on the documentation subpage of all templates that use Lua. It will help to better communicate Lua usage and template conversions.
{{clear}}
== See also ==
* [[Husus:IndeksAwalan/Modul:]] daptar modul Lua
* [[:Kategori:Lua-based templates]] – l-groups ta templates based kan Lua
; English Wikipedia-specific resources
* [[:mw:Manual:Coding conventions/Lua]] – standards to improve the readability of code through consistency
* [[:en:Help:Lua debugging]] – a how-to guide about debugging Lua modules
* [[:en:Module:Sandbox]] provides a pseudo-namespace for experimenting with Lua modules
* [[:en:Wikipedia talk:Lua]] – requests for Lua-based templates or tasks
== Notes ==
{{reflist}}
{{WikiProject Lua/header}}
[[Category:Wikipedia modules]]
i6aslac6x8k86rjn127byeuk2op9smu
Siti Nurhaliza
0
99289
712171
712149
2026-08-21T10:21:07Z
~2026-38892-59
37068
/* */
712171
wikitext
text/x-wiki
{{Infobox person
| name = Dato' Sri<br/>Siti Nurhaliza<br/>SSAP DIMP JSM SAP PMP AAP
| image = Siti Nurhaliza - Khairul Fahmi's Wedding 2013.jpg
| image_size =
| caption =
| birth_name = Siti Nurhaliza binti Tarudin
| birth_date = {{birth date and age|1979|01|11}}
| birth_place = {{flagicon|Malaysia}} Kampung Awah, Temerloh, Pahang, [[Malaysia]]
| other_names = Siti Nurhaliza
| death_date =
| death_place =
| ethnicity = [[Urang Malayu|Malayu]]
| years_active = [[1995]]-ayeuna
| occupation = [[penyanyi|panyanyi]], [[aktor|aktris]], selebriti
| religion = [[Islam]]
| spouse = {{marriage|Khalid Mohamad Jiwa|21 August 2006}}
| partner =
| children = Siti Aafiyah binti Khalid<br/>Muhammad Afwa bin Khalid
| parents = Tarudin Ismail<br/>Siti Salmah Bachik
| module = {{Infobox musical artist
| embed = yes
| genre = [[Musik pop|Pop]], [[Musik rock|Rock]], Pop Melayu, Pop Rock, Soft Rock, Pop Tradisional, Nasyid, R&B
| label = Suria Records ([[1995]]-[[2005]])<br/>Siti Nurhaliza Productions ([[2006]]-ayeuna)<br/>Universal Music Malaysia ([[2011]]-ayeuna)<br/>GP Records ([[Indonésia]])
| instrument = [[vokal]]
| associated_acts = {{hlist|[[Krisdayanti]]|[[Syura Badron]]|[[Noraniza Idris]]}}
}}
| influences =
| influenced =
| website =
}}
Dato' Sri '''Siti Nurhaliza binti Tarudin''' langkung dikenal salaku '''Siti Nurhaliza''' SSAP DIMP JSM SAP PMP AAP ([[Abjad Jawi|Jawi]]: سيتي نورهاليزا بنت تارودين; {{lahirmati|Kampung Awah, Temerloh, Pahang, [[Malaysia]]|11|01|1979}}) nyaéta saurang [[panyanyi]], [[aktris]], panulis lagu, produser catetan sareng pangusaha anu asalna tina getih Melayu [[Malaysia]].
==Diskografi==
===Album studio===
* ''[[Siti Nurhaliza 1]]'' (1996)
* ''[[Siti Nurhaliza 2]]'' (1997)
* ''[[Cindai]]'' (1997)
* ''[[Adiwarna]]'' (1998)
* ''[[Pancawarna]]'' (1999)
* ''[[Sahmura]]'' (2000)
* ''[[Safa]]'' (2001)
* ''[[Sanggar Mustika]]'' (2002)
* ''[[E.M.A.S]]'' (2003)
* ''[[Anugerah Aidilfitri]]'' (2003)
* ''[[Prasasti Seni]]'' (2004)
* ''Transkripsi'' (2006)
* ''Hadiah Daripada Hati'' (2007)
* ''Lentera Timur'' (2008)
* ''Tahajjud Cinta'' (2009)
* ''All Your Love'' (2011)
* ''Fragmen'' (2014)
* ''SimetriSiti'' (2017)
* ''ManifestaSITI2020'' (2020)
* ''Legasi'' (2021)
* ''Sitism'' (2023)
* ''Gema Bumantara'' (2025)
=== Album duet ===
* ''[[Seri Balas]]'' (duet Noraniza Idris) (1999)
* ''CTKD'' (duet [[Krisdayanti]]) (2009)
=== Album-album séjénna ===
* ''Molek'' (1998)
* ''The Best of Siti Nurhaliza'' (2000)
* ''Cerita Cinta Siti Nurhaliza'' (2006)
* ''Klasik'' (2007)
* ''[[Permata Irama]]'' (2008)
* ''Siti & Friends'' (2010)
* ''Pewaris Lagu-lagu Tradisional'' (2012)
* ''Legasi'' (2021)
==Tumbu éksternal==
* {{IMDb name|6021573}}
* {{Instagram|ctdk}}
{{authority control}}
{{DEFAULTSORT:Nurhaliza, Siti}}
[[Kategori:Panyanyi]]
[[Kategori:Panyanyi Malaysia]]
[[Kategori:Aktris Malaysia]]
[[Kategori:Inohong Malayu]]
[[Kategori:Siti Nurhaliza| ]]
j823u0l0ir5rbt98vn01g18umavpbud
Seri Balas
0
99393
712172
711471
2026-08-21T10:22:38Z
~2026-38892-59
37068
712172
wikitext
text/x-wiki
{{Infobox Album |
Name = Seri Balas |
Type = Studio |
Artist = [[Siti Nurhaliza]] & [[Noraniza Idris]] |
Cover = |
Released = [[11 Januari]] [[1999]] |
Recorded = [[1998]]-[[1999]] |
Genre = [[Melayu]] |
Length = 48:40 |
Label = Suria Records |
Producer = [[Pak Ngah]] |
Last album = ''[[Adiwarna]]''<br>(1998) |
This album = '''''Seri Balas'''''<br>(1999) |
Next album = ''[[Pancawarna]]''<br>(1999)
}}
'''''Seri Balas''''' nyaéta album duet [[Siti Nurhaliza]] & [[Noraniza Idris]]. Albeum ieu dirilis dina taun [[1999]]. Albeum dibébaskeun tanggal [[11 Januari]] [[1999]], dina ulang taun ka-20 [[Siti Nurhaliza]].
==Daptar lagu==
# ''Hati Kama'' ([[Siti Nurhaliza]] & [[Noraniza Idris]])<br>Senilagu: [[Pak Ngah]]<br>Senikata: Hairul Anuar Harun
# ''Ya Allah Ya Saidi'' ([[Noraniza Idris]])<br>Senilagu: Fadzil Ahmad<br>Senikata: Megamutiara
# ''Ketawa Lagi'' ([[Siti Nurhaliza]] & [[Noraniza Idris]])<br>Senilagu & Senikata: Copyright Control
# ''Walinong Sari'' ([[Siti Nurhaliza]])<br>Senilagu & Senikata: Copyright Control
# ''Merak Disangkar'' ([[Noraniza Idris]])<br>Senilagu: Copyright Control<br>Senikata: Nur Afdhal
# ''Musalmah Manis'' ([[Siti Nurhaliza]])<br>Senilagu: Copyright Control<br>Senikata: Rahim Jantan
# ''Pasir Salak'' ([[Noraniza Idris]])<br>Senilagu: Ku Zahir Ku Ahmad<br>Senikata: Nur Afdhal / J. Jamal
# ''Lenggang Lenggok'' ([[Siti Nurhaliza]] & [[Noraniza Idris]])<br>Senilagu: Fadzil Ahmad<br>Senikata: Hairul Anuar Harun / [[Siti Nurhaliza]]
# ''Pulau Pisang'' ([[Siti Nurhaliza]])<br>Senilagu & Senikata: Copyright Control
# ''Dondang Dendang'' ([[Siti Nurhaliza]] & [[Noraniza Idris]])<br>Senilagu: Pak Ngah<br>Senikata: Hairul Anuar Harun
{{Authority control}}
[[Kategori:Album]]
[[Kategori:Siti Nurhaliza]]
cdbp98vf32hac8xwgt4prsxnj294cyd
Margareth Angelina
0
99903
712169
651292
2026-08-21T03:52:14Z
InternetArchiveBot
25926
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
712169
wikitext
text/x-wiki
{{Infobox person
|name = Margareth Angelina
|image =
|imagesize =
|caption =
|birthdate = {{birth date and age|1990|10|5}}
|birthplace = {{flagicon|Indonesia}} [[Jakarta]], [[Indonesia]]
|birthname =Margareth Angelina
|othername = Angel
|deathdate =
|deathplace =
|yearsactive = [[2011]]-ayeuna
|occupation = [[Aktris]],[[Penyanyi]], [[Penari]], [[Model|Model]]
| genre = [[Pop]], [[dance]]
| label =
|spouse = {{marriage|Rudy Ming|15 November 2015}}
|partner = [[Cherrybelle]]
|children = Mirabelle Tiffany Eleanor<br>Miguel Kai Reagan
|parents =
|influences =
|influenced =
|almamater = [[Universitas Tarumanegara]]
|twitter = Angel_Chibi
|instagram = margareth_angelina
|fansite = Angelous
|religion = [[Kristen]]
}}
'''Margareth Angelina, S.E.''' atau yang biasa disebut '''Angel''' ({{lahirmati|[[Jakarta]]|5|10|1990}}) mangrupikeun [[Model|modél]] ti [[Indonesia]] anu kasohor minangka salah sahiji anggota [[Cherrybelle]] anu parantos janten senior, langkung tepat.<ref>[http://www.tabloidbintang.com/articles/berita/gosip/29067-selamat-angel-cherrybelle-menikah-hari-ini Angel Cherrybelle Menikah Hari Ini] {{Webarchive|url=https://web.archive.org/web/20151119144436/http://www.tabloidbintang.com/articles/berita/gosip/29067-selamat-angel-cherrybelle-menikah-hari-ini |date=2015-11-19 }} - Tabloid Bintang. 15 November 2015.</ref><ref>[http://www.solopos.com/2015/11/15/kabar-artis-angel-chibi-menikah-fans-malah-kaget-661378 Kabar Artis Angel Chibi Menikah, Fans Malah Kaget] - Solo Pos. 15 November 2015.</ref><ref>[http://hot.detik.com/read/2015/11/16/083513/3071756/230/usai-menikah-angel-tetap-tergabung-dalam-cherrybelle Usai Menikah Angel Tetap Tergabung Dalam Cherrybelle] - Detik.com. 16 November 2015</ref>
== Rujukan ==
{{Reflist}}
== Tumbu luar ==
{{Commons category}}
* {{id}} [http://www.cherrybelle.info/profile/2/angel/ Profil di situs web resmi Cherrybelle] {{Webarchive|url=https://web.archive.org/web/20120804035558/http://www.cherrybelle.info/profile/2/angel |date=2012-08-04 }}
* {{twitter|angel_chibi}}
{{DEFAULTSORT:Margareth Angelina}}
[[Kategori:Panyanyi Indonésia]]
[[Kategori:Anggota Cherrybelle]]
{{Biografi-pondok}}
ffudyb2sqhzhf4m5ub46khmccm5hg0n
Hotél Savoy Homann
0
104791
712165
712143
2026-08-21T02:33:15Z
InternetArchiveBot
25926
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
712165
wikitext
text/x-wiki
[[Gambar:Hotel Savoy Homann (27166453832).jpg|jmpl|Hotél Savoy Homann]]
'''Hotél Savoy Homan''' mangrupakeun salah sahiji wangunan hotél anu ngabogaan unsur sajarah di Kota Bandung. Savoy Homann mangrupa Gedong Warisan Budaya diwangun dina taun 1880. Hotél ieu diwangun sarta dipiboga ku warga [[Jérman]] ngaranna [[A. Homann]]. Saméméhna dingaranan Savoy Homann, hotél ieu dingaranan Hotél Pos Road. Gaya wangunan Hotél Jalan Pos harita mah gaya [[Baroq]]. Dina 1883 gaya wangunan dirobah jadi gaya arsitéktur ''[[art nouveau]]''.
== Sajarah ==
[[Gambar:Savoy Homann Hotel - Oceanwave.jpg|jmpl|Gedong Hotél Savoy Homann]]
Dina taun 1910, hotél heubeul ieu dibongkar sarta hotél anyar diwangun ku gaya arsitéktur ''[[gothic revival]]''. Taun 1938 wangunan hotél ieu dibongkar deui jeung diganti ku hotél anyar kalawan gaya internasional modern ''(nieuw bouwen).'' Pangwangunan ieu dilaksanakeun ku arsiték [[A.F. Aalbers]]. Aalbers nyiptakeun wangunan anyar anu leuwih modéren luyu jeung kahayang [[DPRD Kota Bandung]] harita. Wangunan anyar Hotél Savoy Homann mangrupa puncak karya arsiték modérn A.F. Aalbers anu jadi ikon gerakan arsitéktur anu dipaké di [[Hindia-Walanda|Hindia Walanda]] saméméh [[Perang Dunya II]].<ref name="bandung-go2021">{{Cite web |url=https://www.bandung.go.id/features/detail/3/savoy-homann-hotel-bandung |title=Savoy Homann Hotél Bandung |location=Bandung |website=bandung.go |language=id |date=2021-10-18 |accessdate=2023-11-15 |archive-url=https://web.archive.org/web/20231115070711/https://www.bandung.go.id/features/detail/3/savoy-homann-hotel-bandung |archive-date=2023-11-15 }} {{Webarchive|url=https://web.archive.org/web/20231115070711/https://www.bandung.go.id/features/detail/3/savoy-homann-hotel-bandung |date=2023-11-15 }}</ref>
Hotél Savoy Homann ogé fungsina salaku wisma [[Jepang]] (1942-1945) jeung wisma PMI (1945-1948). Taun 1949 fungsina dibalikeun salaku hotél ka fungsi aslina. Dina waktu [[Konférénsi Asia Afrika]] taun 1955, Hotél Savoy Homann dijadikeun tempat pamondokan para kapala nagara saperti [[Gamal Abdul Nasser]], [[Chuo En Lai]], [[Jawaharlal Néhru|Jawaharlal Nehru]], [[Sukarno|Soekarno]], [[Sir John Kotelawala]] jeung sajabana. Dina waktu éta, Hotél Savoy Homann dikokolakeun ku [[Fr. J. van Es]] anu pernah ngokolakeun [[Hotél Des Indes]] di [[Jakarta]].<ref name="bandung-go2021" />
== Rujukan ==
{{Reflist}}
6feb64m360d1tsjkcp99qbrt7mwnh9x
James Peace
0
107668
712166
708351
2026-08-21T02:47:39Z
InternetArchiveBot
25926
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
712166
wikitext
text/x-wiki
[[Gambar:James Peace at home in Wiesbaden4.jpg|jmpl|396x396px|James Peace at home in Wiesbaden]]
'''Kenneth James Peace''' dibabarkeun di Paisley, [[28 Séptémber]] [[1963]]. Anjeunna mangrupikeun saurang komposer, pianis konsér, sareng seniman visual asal [[Skotlandia]].
== Biografi ==
'''James Peace''' dibabarkeun di Paisley, Skotlandia, dina tanggal 28 Séptémber 1963. Anjeunna nyéépkeun sabagian ageung waktos alitna di Helensburgh, hiji résor sisi laut di beulah kulon Skotlandia.<ref name=":0">[https://web.archive.org/web/20110527164145/http://www.wiesbadener-tagblatt.de/region/wiesbaden/meldungen/10206548.htm Birgitta Lamparth. "Keine ‘stacheligen’ Klänge", Wiesbadener Tagblatt (Koran German), 10 Pébrurari 2011]
</ref><ref name=":1">Julia Anderton. "Tango wie eine süß-saure Geschichte". Wiesbadener Kurier (Koran Jerman), 24 Maret 2012</ref><ref name=":2">[https://hojaderutadigital.mx/una-entrevista-al-compositor-james-peace/ Soledad Carrizo-Araya. "Una entrevista al compositor James Peace". Hoja de Ruta Digital. Désémber 2022]{{Dead link|date=March 2026 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Kulawargina ngawengku seueur seniman (contona John McGhie), sareng anjeunna ogé masih kénéh wargi Felix Burns, saurang komposer [[musik]] dansa anu kasohor dina paruh kahiji [[abad ka-20]].<ref name=":0" /><ref name=":3">Sabine Klein. "Meine Musik ist wie ich - sehr romantisch". Frankfurter Rundschau (Koran Jerman), 1992, édisi 254, kaca 2</ref>
Anjeunna nampi atikan [[piano]] ti yuswa dalapan dalapan taun sareng pidangan publik munggaranna lumangsung dina yuswa opat belas taun, mawakeun musik karya Scott Joplin.<ref name=":2" /> Dina yuswa genep belas taun, anjeunna katampi di Royal Scottish Academy of Music and Drama (ayeuna disebat Royal Conservatoire of Scotland) salaku mahasiswa ''full-time'' anu pangngorana.<ref name=":0" /><ref name=":1" /><ref name=":3" /><ref name=":4">G. Müller. "Die Seele des Klaviers tanzt Tango". Kulturspiegel Wetterau (Majalah Jerman). 17 Maret 2001, kaca 5</ref> Dina taun 1983, anjeunna lulus ti Universitas Glasgow kalayan gelar B.A. dina widang pangajaran piano. Taun salajengna, anjeunna nampi diploma dina widang pidangan musik (''music performance'') saatos maénkeun Piano Concerto No.1 karya Mendelssohn sareng orkéstra RSAMD.<ref name=":3" /><ref name=":4" /> Saatos ngaréngsékeun atikan formalna, anjeunna damél salaku pianis sareng linggih di Edinburgh ti taun 1988 dugi ka 1991.<ref name=":0" /><ref name=":5">"James Peace". ''FRIZZ'' (Majala Jerman). Januari 2001, kaca 5</ref>
[[Gambar:James Peace - Idylls Op.4b.webm|pus|jmpl|340x340px|James Peace - Idylls Op.4b]]
James Peace linggih di Bad Nauheim, [[Jérman]] ([[basa Jérman]]: Bundesrepublik Deutschland), ti taun 1991 dugi ka 2009.<ref>Manfred Merz. "Virtuose, gefühlsbetonte Welt der Romantik", Wetterauer Zeitung (Koran Jerman), 12 Décémber, 1992, kaca 19</ref><ref>"James Peace". The Tango Times (Majalah New York). Édisi 2002/2003 (39). Kaca 1 - 5</ref> Ti taun 1998, anjeunna neuleuman tango, ngahasilkeun CD Tango escocés (Tango Skotlandia) anu mangrupa komposisi piano nu kainspirasi ku tango karyana nyalira.<ref name=":6">[https://search.nls.uk/primo-explore/fulldisplay?docid=44NLS_ALMA21615957400004341&context=L&vid=44NLS_VU1&lang=en_US&search_scope=SCOPE1&adaptor=Local%20Search%20Engine&query=any,contains,Tango%20escoc%C3%A9s&mode=basic National Library of Scotland. ''Tango escocés'']</ref><ref name=":7">[https://pad.philharmoniedeparis.fr/pad/doc/ALOES/0795887/tango-escoces-scottish-tango-k-james-peace-comp-piano Philharmonie de Paris. ''Tango escocés''] {{Webarchive|url=https://web.archive.org/web/20250928140339/https://pad.philharmoniedeparis.fr/pad/doc/ALOES/0795887/tango-escoces-scottish-tango-k-james-peace-comp-piano |date=2025-09-28 }}</ref><ref name=":8">[https://www.muziekweb.nl/Link/KHX3103/Tango-escoc%C3%A9s de bibliotheek. ''Tango escocés'']
</ref> Dina taun 2002, anjeunna janten anggota kahormatan Victoria College of Music.<ref name=":3" /><ref name=":6" /><ref name=":7" /><ref name=":8" /><ref name=":9">"James Peace". La Cadena (Majalah Walanda). Séptémber 2002, kaca 26</ref> Dina taun anu sami, anjeunna ngalaksanakeun tur konsér solo di Jérman kalér dina bulan Séptémber/Oktober sareng ka Wétan Jauh dina bulan Nopémber, midangkeun Tango XVII karyana pikeun mimiti di [[Hong Kong]].<ref name=":6" /><ref name=":7" /><ref name=":8" /><ref name=":9" /><ref>''TangoTang'', Hong Kong (香港). Buletin, 8 Oktober 2002</ref><ref>[https://www.scmp.com/article/393890/james-peace "James Peace". 南華早報 (Koran Hong Kong). 9 Oktober 2002]</ref>
Dina taun-taun salajengna, pidanganana langkung dipuseurkeun di [[Éropa]]. Anjeunna parantos midangkeun tango karyana di sababaraha ibu kota, diantawisna: [[Amsterdam]], Athéna,<ref>Program konserna ''{Για σένα Αγγελική}''. Aténa, 27 April 2016</ref> [[Bérlin]],<ref>Tangodanza (Aleman a Magasina). Édisi nomer 1/2002 - 9</ref> Brussels, [[Hélsinki]],<ref>Poster konsér (tur konsér solo di Finlandia, 2014)</ref> Lisbon,<ref name=":2" /><ref>Poster konsér (tur konsér solo di Portugal, 2016)</ref> [[London]], [[Madrid]],<ref name=":2" /><ref>Poster konsér (tur konsér solo di Spaniul ''¡Feliz Cincuenta Cumpleaños - 2013!'')</ref> Oslo,<ref>[https://web.archive.org/web/20200608114526/https://listen.no/event/konsert-kl-13-00-james-peace-flygel-tangos-romanticos-musikk-av-peace-piazzolla-albeniz-utstillingssalene-er-stengt Listen.no. James Peace (flygel). Munch Museet. Oslo, 16 Oktober 2004]</ref> Réykjavík<ref>[https://www.mbl.is/greinasafn/grein/823608/ Ríkarður Ö. Pálsson. "Skozkir Slaghörputangoár". Morgunblaðið (Koran Islandia). 14 Oktober 2004]</ref> jeung Wina.<ref>Program konserna (Wina). 23 Januari 2005</ref>
Dina taun 2008, anjeunna janten anggota kahormatan London College of Music salaku pangakuan kana jasana kana musik tango.<ref name=":10">[https://search.nls.uk/primo-explore/fulldisplay?vid=44NLS_VU1&tab=default_tab&docid=44NLS_ALMA21438757900004341&lang=en_US&context=L&adaptor=Local%20Search%20Engine&query=any,contains,K.%20James%20Peace&mode=basic National Library of Scotland. ''K. James Peace in Wiesbaden'']</ref><ref name=":11">[https://portal.dnb.de/opac.htm?method=simpleSearch&cqlMode=true&query=idn%3D1022200380 Deutsche Nationalbibliothek. ''K. James Peace in Wiesbaden'']</ref><ref name=":12">[https://whittakerlive.blogspot.com/2012/05/new-dvd-interview-with-wiesbaden.html Whittaker Live. "Wiesbadener Highlander K. James Peace - New DVD"] </ref>
Saatos sakedap di Edinburgh, anjeunna mulih deui ka Jérman dina bulan [[Pébruari]] 2010 kanggo linggih di Wiesbaden.<ref name=":0" /><ref name=":1" /> Hal ieu nyababkeun impuls kréatif anyar, sareng anjeunna ngadamel pilem-pilem pondok tina sababaraha komposisi karyana nyalira. Pilem dokuméntér ''James Peace in Wiesbaden'' mangrupikeun salah sahiji karyana dina genre ieu.<ref name=":10" /><ref name=":11" /><ref name=":12" />
[[Gambar:Tango Milonga op. 26.wav|kiri|jmpl|212x212px|Tango Milonga op. 26 no. 3]]
[[Gambar:Tango XVIII by James Peace (James Peace, piano).wav|kiri|jmpl|212x212px|Tango XVIII ku James Peace (James Peace, piano)]]
== Pangajén sareng Penghargaan ==
[[Gambar:Cover page, Eternal Song Op.32 by James Peace (study score).png|jmpl|354x354px|Halaman hareup, Eternal Song Op.32 ku James Peace (skor ulikan)]]● Juara Kahiji, ''Kompetiti Agnes Millar''. Glasgow, 1983<ref name=":4" />
● Juara Kahiji, ''Kompetisi Dunbartonshire EIS''. Glasgow, 1984<ref name=":4" />
● Juara Kahiji, ''Kompetisi Sibelius Essay''. Glasgow, 1985<ref name=":4" />
● Diploma Kahormatan, ''Kompetisi TIM''. [[Roma]], 2000<ref name=":0" /><ref name=":1" /><ref name=":5" />
● Diploma Kahormatan, IBLA Foundation. [[New York (nagara bagéan)|New York]], 2000<ref name=":0" /><ref name=":1" /><ref name=":5" />
● Medali Pangéling-ngéling (Kelas Hiji), International Piano Duo Association. [[Tokyo]], 2002<ref>[http://ipda-pianoduo.com/composition-concour-list-english.html International Piano Duo Association (東京), Tokio. Daptar para juara, 2002] {{Webarchive|url=https://web.archive.org/web/20200527164059/http://www.ipda-pianoduo.com/composition-concour-list-english.html |date=2020-05-27 }}</ref>
● Medali emas, Académie Internationale de Lutèce. [[Paris]], 2008<ref name=":0" /><ref name=":1" />
== Karya Utama ==
● The Waterfall ''(Curug)''<ref>Hessisches Staatstheater. Brosur konsér 12/19 Séptémber 2021</ref>
● Idylls ''(Idilis)''
● Lento Lacrimoso ''(Cimata nu geus disingkahan)''
● Forgotten Leaves ''(Daun anu hilap)''
● Oboe Sonata ''(Sonata pikeun oboe sareng piano)''
● Ballade ''(Balada)''
● Ceremonial March No.1 ''(Pawai Upcara nomer 1)''
● Ceremonial March No.2 ''(Pawai Upcara nomer 2)''
● Autumn Gold ''(Warna emas usum gugur)''<ref>"Violine schwebt über das Orchester". Schwäbische Post (Koran Jerman). 4 Juni, 1994</ref>
● Eternal Song ''(Lagu kahirupan langgeng)''<ref name=":0" /><ref>[https://search.nls.uk/discovery/fulldisplay?docid=alma9935400923804341&context=L&vid=44NLS_INST:44NLS_VU1&lang=en&search_scope=MainCatalogue&adaptor=Local%20Search%20Engine&query=any,contains,James%20peace&mode=basic National Library of Scotland. ''Eternal Song Op.32, Peace, K. James'']</ref>
● "Kanggo Géorgia" (basa Géorgia: ''საქართველოსთვის'')
Lirik: Tamari Chikvaidze, Zurabi Chikvaidze James Peace
● 24 Tango (pikeun piano solo)<ref name=":0" /><ref name=":6" /><ref name=":7" /><ref name=":8" /><ref name=":10" /><ref name=":11" /><ref name=":12" /><ref>[https://web.archive.org/web/20240522135254/https://hojaderutadigital.mx/una-corta-historia-del-tango/ Hoja de Ruta Digital, México. "Una corta historia del tango", 22 Maret 2024]</ref><ref name=":13" /><ref>[https://search.nls.uk/discovery/fulldisplay?docid=alma9941547953804341&context=L&vid=44NLS_INST:44NLS_VU1&lang=en&search_scope=MainCatalogue&adaptor=Local%20Search%20Engine&query=any,contains,James%20peace&mode=basic National Library of Scotland. ''Tangos op.33, Peace, K. James'']</ref>
== Tumbu kaluar ==
[https://www.youtube.com/watch?v=sSX1c8EUukg&list=RDsSX1c8EUukg&start_radio=1 Souvenir de Buenos Aires - ''youtube''] <ref name=":13">[https://www.britishviolasociety.co.uk/wp-content/uploads/2024/01/Latest-news-from-the-British-Viola-Society.-August-2023-compressed.pdf British Viola Society Newsletter, Agustus 2023]
</ref>
[https://www.youtube.com/watch?v=ZcMRNnwNJhk&list=RDZcMRNnwNJhk&start_radio=1 Lento Lacrimoso - ''youtube'']
[https://www.youtube.com/watch?v=_VKxG2dmQn4&list=RD_VKxG2dmQn4&start_radio=1 Autumn Gold - ''youtube'']
== Rujukan ==
<references />
[[Kategori:Nu babar taun 1963]]
[[Kategori:Jalma hirup]]
[[Kategori:Musik]]
akx6r56r45evf6xc32zx2wolap8ytxf
Pak Ngah
0
108108
712175
709821
2026-08-21T10:24:38Z
~2026-38892-59
37068
/* */
712175
wikitext
text/x-wiki
{{Infobox person
| name = Pak Ngah
| image = Pakngah.jpg
| alt =
| caption =
| birth_name = Suhaimi Mohd Zain
| birth_date = {{Birth date|1958|09|26}}
| birth_place = Kampung Baru, [[Kuala Lumpur]], Federasi Malaya {{small|(ayeuna [[Malaysia]])}}
| death_date = {{Death date and age|2018|09|25|1958|09|26}}
| death_place = Kota Tanjungpinang, [[Kapuloan Riau]], [[Indonésia]]
| nationality = [[Malaysia]]
| other_names = Pak Ngah
| known_for =
| occupation = Komposer, [[Musisi]], Panulis lagu
}}
'''Suhaimi Mohd Zain''', langkung dikenal salaku '''Pak Ngah''' ({{lahirmati|Kampung Baru, [[Kuala Lumpur]]|26|09|1958|Kota Tanjung Pinang, [[Kapuloan Riau]]|25|09|2018}}<ref>{{Cite web|title=KapanLagi.com: Profil Pak Ngah|url=https://www.kapanlagi.com/pak-ngah/|website=KapanLagi.com|language=id|access-date=25 Maret 2026}}</ref>), nyaéta komposer, [[musisi]], pangarang lagu, sareng produser rékaman ti [[Malaysia]].<ref>{{Cite web|title=Kapanlagi.com: Musik - Trio Bidadari Bangga Dipegang 'Tangan Emas' Pak Ngah|url=https://musik.kapanlagi.com/berita/trio-bidadari-bangga-dipegang-tangan-emas-pak-ngah.html|website=KapanLagi.com|language=id|access-date=25 Maret 2026}}</ref> Sanggeus éta, karya-karyana dipintonkeun ku réa panyanyi kawéntar diantarana [[Noraniza Idris]], Datuk Jamal Abdillah, [[Siti Nurhaliza|Dato’ Sri Siti Nurhaliza]] jeung [[Syura Badron]].<ref>{{Cite web |url=http://www.utusan.com.my/hiburan/ketua-muzik-yang-tegas-1.166134 |title=salinan arkib |access-date=25 Maret 2026 |archive-date=12 Désémber 2015 |archive-url=https://web.archive.org/web/20151212082438/http://www.utusan.com.my/hiburan/ketua-muzik-yang-tegas-1.166134 |url-status=live }}</ref>
Anjeunna pupus di Tanjung Pinang, [[Indonésia]] dina tanggal 25 Séptémber 2018 kusabab serangan jantung, sapoé sateuacan ulang taunna anu ka-60.<ref name="Hasrat tak kesampaian">{{cite news|url=https://www.bharian.com.my/hiburan/selebriti/2018/09/478398/hasrat-sambut-hari-lahir-di-tanah-air-tak-kesampaian|title=Hasrat sambut hari lahir di tanah air tak kesampaian|author=|work=Berita Harian|date=26 Séptémber 2018|accessdate=25 Maret 2026}}</ref>
== Référensi ==
{{reflist}}
== Tautan éksternal ==
* {{IMDb name|10670010}}
{{Authority control}}
{{DEFAULTSORT:Ngah, Pak}}
[[Kategori:Inohong Malayu]]
fkdod7v76t5rfcezvxiii8ieu3t05wm
Anugerah Aidilfitri
0
108134
712174
711480
2026-08-21T10:23:37Z
~2026-38892-59
37068
/* VCD & DVD */
712174
wikitext
text/x-wiki
{{Infobox Album
| Name = Anugerah Aidilfitri
| Type = Studio
| Artist = [[Siti Nurhaliza]]
| Cover =
| Released = [[10 Désémber]] [[2003]]
| Recorded = [[1999]]-[[2003]]
| Genre = [[Musik pop|Pop]], Perayaan
| Length = 47:52
| Label = Suria Records
| Producer = [[Pak Ngah]], Azmeer, Khir Rahman & S. Atan
| Last album = ''[[E.M.A.S]]''<br/>''(2003)''
| This album = '''''Anugerah Aidilfitri'''''<br/>''(2003)''
| Next album = ''[[Prasasti Seni]]''<br/>''(2004)''
}}
'''''Anugerah Aidilfitri''''' nyaéta album studio kasapuluh [[Siti Nurhaliza]]. Album ieu dirilis dina taun [[2003]], pas poé [[Idulfitri|Idul Fitri]].
== Daptar lagu ==
# '''Anugerah Aidilfitri'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Ce'Kem
# '''Mekar Hari Raya'''<br>Senilagu: Azmeer<br>Senikata: Senibayan
# '''Meriah Suasana Hari Raya'''<br>Senilagu: Khir Rahman<br>Senikata: Hairul Anuar Harun
# '''Bila Hari Raya Menjelma'''<br>Senilagu: S. Atan<br>Senikata: Nurul Asyiqin
# '''Sesuci Lebaran'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Hairul Anuar Harun
# '''Suara Takbir'''<br>Senilagu & Senikata: Copyright Controlled
# '''Nazam Lebaran'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Nurul Asyiqin
# '''Air Mata Syawal'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Nurul Asyiqin
# '''Anugerah Aidilfitri (Instrumental)'''
# '''Sesuci Lebaran (Instrumental)'''
=== VCD & DVD ===
# '''Introduksi'''
# '''Anugerah Aidilfitri'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Ce'Kem
# '''Mekar Hari Raya'''<br>Senilagu: Azmeer<br>Senikata: Senibayan
# '''Meriah Suasana Hari Raya'''<br>Senilagu: Khir Rahman<br>Senikata: Hairul Anuar Harun
# '''Bila Hari Raya Menjelma'''<br>Senilagu: S. Atan<br>Senikata: Nurul Asyiqin
# '''Sesuci Lebaran'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Hairul Anuar Harun
# '''Suara Takbir'''<br>Senilagu & Senikata: Copyright Controlled
# '''Nazam Lebaran'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Nurul Asyiqin
# '''Air Mata Syawal'''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Nurul Asyiqin
# '''Nikmat Hari Raya''' (kalawan [[Noraniza Idris]], New Boyz & Aqasha)<br>Senilagu: Murad<br>Senikata: Razak / Yaakob / Zainal / September 5
# '''Aidilfitri di Alaf Baru''' (kalawan [[Noraniza Idris]], [[Liza Hanim]] & Anis Suraya)<br>Senilagu: Khalil Shariff<br>Senikata: Asmah Ismail
[[Kategori:Album]]
[[Kategori:Siti Nurhaliza]]
dczurkwiibbdiac7ye1rcbn05g2dgyx
Permata Irama
0
108819
712173
712148
2026-08-21T10:23:04Z
~2026-38892-59
37068
712173
wikitext
text/x-wiki
{{Infobox Album
| Name = Permata Irama
| Type = kompilasi
| Artist = [[Siti Nurhaliza]]
| Cover =
| Released = [[10 Désémber]] [[2007]]<ref>{{cite web|title=Anugerah Aidilfitri...|url=http://sitizone.com/main/index.php?option=com_content&task=view&id=42&Itemid=31|work=SitiZone.com - Siti Nurhaliza Official Website|accessdate=19 Agustus 2026}}</ref>
| Genre = [[Musik pop|Pop]], [[Musik Malayu|Malayu]]
| Length = N/A
| Label = Siti Nurhaliza Productions, Suria Records
| Producer = Dato' Siti Nurhaliza, [[Pak Ngah]], S. Atan, Yassin & Suflan Faidzal
}}
'''''Permata Irama''''' nyaéta album kompilasi ku [[penyanyi]] sareng [[aktris]] [[Malaysia]], [[Siti Nurhaliza]] anu dirilis sakitar taun [[2008]], sateuacan dirilisna album '''''Lentera Timur'''''.
== Daptar lagu ==
# ''Lagu Rindu''<br>Senilagu & Senikata: Yasin
# ''Pandang-Pandang, Jeling-Jeling'' (duet kalawan Tan Sri Dato' SM Salim)<br>Senilagu: S. Atan<br>Senikata: Tan Sri Dato' SM. Salim
# ''Cindai''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Hairul Anuar Harun
# ''Balqis''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Hairul Anuar Harun
# ''Badarsila''<br>Senilagu: Suflan Faidzal<br>Senikata: Lokgha
# ''Hati Kama'' (duet kalawan [[Noraniza Idris]])<br>Senilagu: [[Pak Ngah]]<br>Senikata: Hairul Anuar Harun
# ''Bergending Dang Gong'' (duet kalawan Tan Sri Dato' SM Salim)<br>Senilagu: [[Pak Ngah]]<br>Senikata: Siso Kopratasa
# ''Ya Maulai''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Hairul Anuar Harun
# ''Nirmala''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Ce'Kem
# ''Joget Berhibur''<br>Senilagu: Rahim Jantan<br>Senikata: Siso Kopratasa
# ''Kurik Kundi''<br>Senilagu: [[Pak Ngah]]<br>Senikata: Nurul Asyiqin
# ''Sakti''<br>Senilagu: Mohar<br>Senikata: Loloq
== Réferénsi ==
{{reflist}}
[[Kategori:Album]]
[[Kategori:Siti Nurhaliza]]
h7htilzos7mhczk3ktqpg5ht3upgjvv
Modul:Bananas/doc
828
108820
712164
2026-08-20T20:20:21Z
Nimmzo
37272
Running the example [[Modul:Bananas]]. See [[Wikipedia:Lua#Halo,_dunya!_dina_Lua]]
712164
wikitext
text/x-wiki
{{#invoke:Bananas|hello}}
9kvzh4ypz1ikhv5dx7rewzdz09z4kp9
Noraniza Idris
0
108821
712170
2026-08-21T10:18:57Z
~2026-38892-59
37068
/* */
712170
wikitext
text/x-wiki
{{Infobox person
|name = Noraniza Idris
|native_name = {{font color|green|نورانيزا إدريس}}
|image = Ratu Irama Pop Melayu Tradisional Malaysia.jpg
|caption = Ratu Irama Pop Malayu Tradisional Malaysia
|image_size =
|birth_name = Nor Aniza binti Idris
|nationality=[[Malaysia]]
|other_names = Kak Ani
|birth_date = {{birth date and age|1968|8|27}}
|birth_place = {{flagicon|Malaysia}} Kampung Melayu, Kluang, Johor, [[Malaysia]]
|occupation = {{hlist|[[Penyanyi]]|panulis lagu|panulis lirik|[[aktris]]|pangusaha}}
|years_active = 1985–ayeuna
|spouse={{marriage|Fareez Tajuddin|1988|2006|reason=divorced}}
{{Marriage|Datuk Muhamad Mustafa Idrus|2008|2008|reason=divorced}}
{{Marriage|Jeffri Iman|2011}}
|children=2
|awards=
|module = {{Infobox musical artist
|embed = yes
|genre = {{hlist|[[Musik pop|Pop]]|irama Malayu|rakyat|ghazal|joget|zapin|dikir barat|hadrah|ngajat|[[Musik Malayu|Malayu]]}}
|associated_acts = [[Siti Nurhaliza]]
|label = {{hlist|Life Records|Sony Music Entertainment|Suria Records|Universal Music Malaysia|Luncai Emas|Gerak Budaya Records|Erama Records|Noraniza Idris Production Ventures Sdn Bhd}}
|instrument = [[Vokal]]
}}
}}
'''Nor Aniza binti Idris''' ({{lahirmati|Kluang, Johor, [[Malaysia]]|27|08|1968}}), katelah '''Noraniza Idris''', nyaéta saurang [[penyanyi]], [[aktris]], panulis lagu, panulis lirik, produser rekaman, sareng pangusaha [[Malaysia]].
== Diskografi ==
*''Kaparinyo'' (1986)
*''Nostalgia Malindo'' (1987)
*''Mengemis Rindu'' (1987)
*''Inginku Sandarkan Harapan'' (1988)
*''Masihkah Dirimu Menyayangiku'' (1990)
*''Noraniza Idris'' (1992)
*''Ala Dondang'' (1997)
*''Masyhur'' (1998)
*''Bekaba'' (1999)
*''Iktiraf'' (2000)
*''Aura'' (2002)
*''Sawo' Matang'' (2004)
*''Cintaku Satu'' (2010)
== Tumbu éksternal ==
* {{Instagram|noraniza_idris}}
{{Authority control}}
{{DEFAULTSORT:Idris, Noraniza}}
[[Kategori:Panyanyi Malaysia]]
[[Kategori:Aktris Malaysia]]
[[Kategori:Inohong Malayu]]
ak1fxza0qwcgstle3glw5759lax8bh3
712176
712170
2026-08-21T10:30:09Z
~2026-38892-59
37068
/* */
712176
wikitext
text/x-wiki
{{Infobox person
|name = Noraniza Idris
|native_name = {{font color|green|نورانيزا إدريس}}
|image = Ratu Irama Pop Melayu Tradisional Malaysia.jpg
|caption = Ratu Irama Pop Malayu Tradisional Malaysia
|image_size =
|birth_name = Nor Aniza binti Idris
|nationality=[[Malaysia]]
|other_names = Kak Ani
|birth_date = {{birth date and age|1968|8|27}}
|birth_place = {{flagicon|Malaysia}} Kampung Melayu, Kluang, Johor, [[Malaysia]]
|religion = [[Islam]]
|ethnicity = [[Urang Malayu|Malayu]]
|occupation = {{hlist|[[Penyanyi]]|panulis lagu|panulis lirik|[[aktris]]|pangusaha}}
|years_active = 1985–ayeuna
|spouse={{marriage|Fareez Tajuddin|1988|2006|reason=divorced}}
{{Marriage|Datuk Muhamad Mustafa Idrus|2008|2008|reason=divorced}}
{{Marriage|Jeffri Iman|2011}}
|children=2
|awards=
|module = {{Infobox musical artist
|embed = yes
|genre = {{hlist|[[Musik pop|Pop]]|irama Malayu|rakyat|ghazal|joget|zapin|dikir barat|hadrah|ngajat|[[Musik Malayu|Malayu]]}}
|associated_acts = [[Siti Nurhaliza]]
|label = {{hlist|Life Records|Sony Music Entertainment|Suria Records|Universal Music Malaysia|Luncai Emas|Gerak Budaya Records|Erama Records|Noraniza Idris Production Ventures Sdn Bhd}}
|instrument = [[Vokal]]
}}
}}
'''Nor Aniza binti Idris''' ({{lahirmati|Kluang, Johor, [[Malaysia]]|27|08|1968}}), katelah '''Noraniza Idris''', nyaéta saurang [[penyanyi]], [[aktris]], panulis lagu, panulis lirik, produser rekaman, sareng pangusaha [[Malaysia]].
== Diskografi ==
*''Kaparinyo'' (1986)
*''Nostalgia Malindo'' (1987)
*''Mengemis Rindu'' (1987)
*''Inginku Sandarkan Harapan'' (1988)
*''Masihkah Dirimu Menyayangiku'' (1990)
*''Noraniza Idris'' (1992)
*''Ala Dondang'' (1997)
*''Masyhur'' (1998)
*''Bekaba'' (1999)
*''Iktiraf'' (2000)
*''Aura'' (2002)
*''Sawo' Matang'' (2004)
*''Cintaku Satu'' (2010)
== Tumbu éksternal ==
* {{Instagram|noraniza_idris}}
{{Authority control}}
{{DEFAULTSORT:Idris, Noraniza}}
[[Kategori:Panyanyi Malaysia]]
[[Kategori:Aktris Malaysia]]
[[Kategori:Inohong Malayu]]
q9i1p123xw2wsxf6l8pgca6k3yavzjs