From Wikipedia, the free encyclopedia
This is a list of Lua functions and the wikitext parser functions and magic words that they are comparable to.
It is slightly out of date for what wikitext parser functions can do.
Parser functions
Wikitext
Lua
{{#if: x | not empty | empty}}
if x then
'not empty'
else
'empty'
end
{{#ifeq: x | y | identical | different}}
if x == y then
'identical'
else
'different'
end
{{#iferror: function | bad | good }}
if tostring ( mw . getCurrentFrame (): preprocess ( 'function' )): find ( '<strong class="error"' ) then
'bad'
else
'good'
end
{{#ifexpr: 1+2=3 |true|false}}
if 1 + 2 == 3 then
'true'
else
'false'
end
[Expensive] {{#ifexist: namespace:title | exists | doesn't exist }}
[Expensive]
if mw . title . new ( 'title' , 'namespace' ). exists == true then
"exists"
else
"doesn't exist"
end
rel2abs
{{#switch: {{{1}}} | foo = Foo | Bar }}
local cases = {
default = "Bar" ,
foo = "Foo" ,
}
local pframe = frame : getParent ()
local arg = pframe . args [ 1 ]
cases [ arg ] or cases [ "default" ]
{{#time: format | timestamp }}
mw . getContentLanguage (): formatDate ( 'format' , 'timestamp' )
{{#timel: format | timestamp }}
mw . getContentLanguage (): formatDate ( 'format' , 'timestamp' , 1 )
titleparts
Math
Unlike in wikicode, lua does not use functions like ifexpr and expr. Add the lua operators and functions straight into your module.
Grouping
Numbers
Wikicode
Lua
1234.5
1234.5
2e3
2e3
pi
math.pi
e
2+2
2+2
2-1
2-1
Unary
Wikicode
Lua
not
not
ceil1.2
math.ceil(1.2)
trunc
floor1.2
math.floor(1.2)
abs-2
math.abs(-2)
exp43
math.exp(43)
ln2
math.log(2)
cos0.1
math.cos(0.1)
tan0.1
math.tan(0.1)
acos0.1
math.acos(0.1)
asin0.1
math.asin(0.1)
atan0.1
math.atan(0.1)
Binary
Wikicode
Lua
2^3
2^3
2*3
2*3
2/3 2div3
2/3
30mod7
30%7
+2
2
-2
-2
Logic
Wikicode
Data type
Lua
Data type
3.0=3
Integer (0 or 1)
3.0==3
Boolean (true or false)
3!=4 3<>4
Integer
3~=4
Boolean
4>3
Integer
4>3
Boolean
4>=3
Integer
4>=3
Boolean
3<=4
Integer
3<=4
Boolean
3<=4
Integer
3<=4
Boolean
and
Integer
and
Boolean
or
Integer
or
Boolean
Magic words
Date and time
Wikicode
Lua
{{CURRENTYEAR}}
{{CURRENTMONTH}}
{{CURRENTMONTHNAME}}
mw . getContentLanguage (): formatDate ( 'F' )
{{CURRENTMONTHNAMEGEN}}
mw . getContentLanguage (): formatDate ( 'xg' )
{{CURRENTMONTHABBREV}}
mw . getContentLanguage (): formatDate ( 'M' )
{{CURRENTDAY}}
{{CURRENTDAY2}}
{{CURRENTDOW}}
{{CURRENTDAYNAME}}
mw . getContentLanguage (): formatDate ( 'l' )
{{CURRENTTIME}}
{{CURRENTHOUR}}
{{CURRENTWEEK}}
mw . getContentLanguage (): formatDate ( 'W' )
{{CURRENTTIMESTAMP}}
Wikicode
Lua
{{SITENAME}}
{{SERVER}}
{{SERVERNAME}}
{{DIRMARK}}
mw . language . getContentLanguage (): getDirMark ()
{{SCRIPTPATH}}
{{STYLEPATH}}
{{CURRENTVERSION}}
{{CONTENTLANGUAGE}}
mw . getContentLanguage (): getCode ()
{{PAGEID}}
mw . title . getCurrentTitle (). id
{{PAGESIZE:page name}}
{{PROTECTIONLEVEL:edit}}
[Expensive] local protection = mw . title . getCurrentTitle (). protectionLevels [ "edit" ]
table.concat ( protection )
{{REVISIONID}}
{{REVISIONDAY}}
{{REVISIONDAY}}
{{REVISIONMONTH}}
{{REVISIONMONTH1}}
{{REVISIONYEAR}}
{{REVISIONTIMESTAMP}}
{{REVISIONUSER}}
{{DISPLAYTITLE:title}}
{{DEFAULTSORT:sortkey}}
Statistics
Wikicode
Lua
{{NUMBEROFPAGES}}
{{NUMBEROFARTICLES}}
{{NUMBEROFFILES}}
{{NUMBEROFEDITS}}
{{NUMBEROFVIEWS}}
{{NUMBEROFUSERS}}
{{NUMBEROFADMINS}}
{{NUMBEROFACTIVEUSERS}}
mw . site . stats . activeUsers
[Expensive] {{PAGESINCATEGORY:categoryname}}
[Expensive]
mw . site . stats . pagesInCategory ( 'categoryname' )
{{NUMBERINGROUP:groupname}}
mw . site . stats . usersInGroup ( 'groupname' )
Page names
Wikicode
Lua
{{FULLPAGENAME}}
mw . title . getCurrentTitle (). prefixedText
{{PAGENAME}}
mw . title . getCurrentTitle (). text
{{BASEPAGENAME}}
mw . title . getCurrentTitle (). baseText
{{SUBPAGENAME}}
mw . title . getCurrentTitle (). subpageText
{{SUBJECTPAGENAME}}
[Expensive] mw . title . getCurrentTitle (). subjectPageTitle
or an non expensive alternative:
mw . title . getCurrentTitle (). subjectNsText .. ":" .. mw . title . getCurrentTitle (). text
{{TALKPAGENAME}}
[Expensive] mw . title . getCurrentTitle (). talkPageTitle
Namespaces
Wikicode
Lua
{{NAMESPACE}}
mw . title . getCurrentTitle (). nsText
{{NAMESPACENUMBER}}
mw . title . getCurrentTitle (). namespace
{{SUBJECTSPACE}}
mw . title . getCurrentTitle (). subjectNsText
{{TALKSPACE}}
URL data
Wikicode
Lua
{{localurl:page|query}}
mw . uri . localUrl ( 'page' , 'query' )
{{fullurl:page|query}}
mw . uri . fullUrl ( 'page' , 'query' )
{{canonicalurl:page|query}}
mw . uri . canonicalUrl ( 'page' , 'query' )
{{filepath:file name}}
{{urlencode:string|QUERY}}
mw . uri . encode ( 'string' , QUERY )
{{anchorencode:string}}
mw . uri . anchorEncode ( 'string' )
Namespaces
Wikicode
Lua
{{ns:0}}
mw . site . namespaces [ 0 ]. name
{{ns:Project}}
mw . site . namespaces . Project . name
Wikicode
Lua
{{formatnum:number}}
mw . getContentLanguage (): formatNum ( number )
#dateformat
{{lc:string}}
mw . ustring . lower ( 'string' )
{{lcfirst:string}}
mw . getContentLanguage (): lcfirst ( 'string' )
{{uc:string}}
mw . ustring . upper ( 'string' )
{{ucfirst:string}}
mw . getContentLanguage (): ucfirst ( 'string' )
{{padleft:xyz|stringlength}}
{{padright:xyz|stringlength}}
Localisation
Wikicode
Lua
{{plural:2|is|are}}
mw . getContentLanguage (): plural ( 2 , 'is' , 'are' )
{{grammar:N|noun}}
mw . getContentLanguage (): grammar ( 'N' , 'noun' )
{{gender:username|male|female|neutral }}
mw . getContentLanguage (): gender ( 'username' , { 'male' , 'female' , 'neutral' } )
{{int:message}}
mw . message . new ( 'message' ): plain ()
{{int:editsectionhint|MediaWiki}}
mw . message . new ( 'editsectionhint' , 'MediaWiki' ): plain ()
Miscellaneous
Wikicode
Lua
{{#language:code|inlanguage}}
mw . language . fetchLanguageName ( 'code' , 'inLanguage' )
{{#special:special page name}}
{{#speciale:special page name}}
{{#tag:tagname
|some text
|attribute1=value1
|attribute2=value2
}}
frame : extensionTag ( 'tagname' , 'some text' , {
attribute1 = 'value1' , attribute2 = 'value2'
} )