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 |
math.exp(1)
|
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}} |
mw.getContentLanguage():formatDate( 'Y' )
or
|
{{CURRENTMONTH}} |
mw.getContentLanguage():formatDate( 'm' )
or
|
{{CURRENTMONTH1}} |
mw.getContentLanguage():formatDate( 'n' )
|
{{CURRENTMONTHNAME}} |
mw.getContentLanguage():formatDate( 'F' )
|
{{CURRENTMONTHNAMEGEN}} |
mw.getContentLanguage():formatDate( 'xg' )
|
{{CURRENTMONTHABBREV}} |
mw.getContentLanguage():formatDate( 'M' )
|
{{CURRENTDAY}} |
mw.getContentLanguage():formatDate( 'j' )
|
{{CURRENTDAY2}} |
mw.getContentLanguage():formatDate( 'd' )
or
|
{{CURRENTDOW}} |
mw.getContentLanguage():formatDate( 'w' )
or
|
{{CURRENTDAYNAME}} |
mw.getContentLanguage():formatDate( 'l' )
|
{{CURRENTTIME}} |
mw.getContentLanguage():formatDate( 'H:i' )
or
|
{{CURRENTHOUR}} |
mw.getContentLanguage():formatDate( 'H' )
or
|
{{CURRENTWEEK}} |
mw.getContentLanguage():formatDate( 'W' )
|
{{CURRENTTIMESTAMP}} |
mw.getContentLanguage():formatDate( 'YmdHis' )
|
Wikicode |
Lua
|
|
|
|
|
|
|
|
mw.language.getContentLanguage():getDirMark()
|
|
|
|
|
|
|
|
mw.getContentLanguage():getCode()
|
|
mw.title.getCurrentTitle().id
|
|
mw.getContentLanguage():formatNum(mw.title.new(pagename):getContent():len())
mw.title.new(pagename):getContent():len()
|
[Expensive]{{PROTECTIONLEVEL:action|pagename}}
|
table.concat(mw.title.getCurrentTitle().protectionLevels["edit"])
[Expensive]table.concat(mw.title.new(pagename).protectionLevels[action])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'
} )
|