Modul:Italic title: Unterschied zwischen den Versionen

allow this to be called from Lua, and make it more compact
(allow the ability to specify the "noerror" parameter)
(allow this to be called from Lua, and make it more compact)
Zeile 3: Zeile 3:
local p = {}
local p = {}


function p.main(frame)
function p._main(args, frame, title)
local args = require('Module:Arguments').getArgs(frame, {
args = args or {}
wrappers = 'Template:Italic title'
frame = frame or mw.getCurrentFrame()
})
title = title or mw.title.getCurrentTitle()
local title = mw.title.getCurrentTitle()
 
-- Find the parts before and after the disambiguation parentheses, if any.
local prefix, parentheses = mw.ustring.match(title.text, '^(.+) (%([^%(%)]+%))$')
local prefix, parentheses = mw.ustring.match(title.text, '^(.+) (%([^%(%)]+%))$')
-- If parentheses were found, italicise only the part before them. Otherwise
-- italicise the whole title.
local result
local result
if prefix and parentheses and args.all ~= 'yes' then
if prefix and parentheses and args.all ~= 'yes' then
result = "''" .. prefix .. "'' " .. parentheses
result = string.format("''%s'' %s", prefix, parentheses)
else
else
result = "''" .. title.text .. "''"
result = string.format("''%s''", title.text)
end
end
-- Add the namespace if we're not in mainspace.
if title.namespace ~= 0 then
if title.namespace ~= 0 then
result = mw.site.namespaces[title.namespace].name .. ':' .. result
result = title.nsText .. ':' .. result
end
end
return frame:callParserFunction('DISPLAYTITLE', result, args[1])
end


-- Call displaytitle with the text we generated.
function p.main(frame)
return mw.getCurrentFrame():callParserFunction(
local args = require('Module:Arguments').getArgs(frame, {
'DISPLAYTITLE',
wrappers = 'Template:Italic title'
result,
})
args[1]
return p._main(args, frame)
)
end
end  


return p
return p
Anonymer Benutzer