From Wikipedia, the free encyclopedia
This is a list over comparible lua functions to wikitext parser functions and magic words.
Parser functions
Wikitext
Lua
{{#if: x | not empty | empty}}
if x then
'not empty'
else
'empty'
end
{{#ifeq: x | y | indentical | different}}
if 1 == 3 then
'indentical'
else
'different'
end
iferror
{{#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
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
Boolean
or
Integer
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' ): text ()
{{int:editsectionhint|MediaWiki}}
mw . message . new ( 'editsectionhint' , 'MediaWiki' ): text ()
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'
} }