Modul:Italic title: Unterschied zwischen den Versionen
(match the start of the string as well) |
(add support for all=yes) |
||
Zeile 3: | Zeile 3: | ||
local p = {} | local p = {} | ||
function p.main() | function p.main(frame) | ||
-- Process the arguments. | |||
if frame == mw.getCurrentFrame() then | |||
local args = frame:getParent().args | |||
for k, v in pairs(frame.args) do | |||
args = frame.args | |||
break | |||
end | |||
else | |||
args = frame | |||
end | |||
local title = mw.title.getCurrentTitle() -- Get the current page object. | local title = mw.title.getCurrentTitle() -- Get the current page object. | ||
-- Find the parts before and after the disambiguation brackets, if any. | -- Find the parts before and after the disambiguation brackets, if any. | ||
Zeile 10: | Zeile 21: | ||
-- italicise the whole title. | -- italicise the whole title. | ||
local result | local result | ||
if prefix and brackets then | if prefix and brackets and args.all ~= 'yes' then | ||
result = "''" .. prefix .. "'' " .. brackets | result = "''" .. prefix .. "'' " .. brackets | ||
else | else | ||
Zeile 21: | Zeile 32: | ||
-- Call displaytitle with the text we generated. | -- Call displaytitle with the text we generated. | ||
return mw.getCurrentFrame():callParserFunction( 'DISPLAYTITLE', result ) | return mw.getCurrentFrame():callParserFunction( 'DISPLAYTITLE', result ) | ||
end | end | ||
return p | return p |
Version vom 17. Juni 2013, 11:01 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Italic title/doc erstellt werden
-- This module implements {{italic title}}. local p = {} function p.main(frame) -- Process the arguments. if frame == mw.getCurrentFrame() then local args = frame:getParent().args for k, v in pairs(frame.args) do args = frame.args break end else args = frame end local title = mw.title.getCurrentTitle() -- Get the current page object. -- Find the parts before and after the disambiguation brackets, if any. local prefix, brackets = mw.ustring.match(title.text, '^(.+) (%([^%(%)]+%))$') -- If brackets were found, italicise only the part before them. Otherwise -- italicise the whole title. local result if prefix and brackets and args.all ~= 'yes' then result = "''" .. prefix .. "'' " .. brackets else result = "''" .. title.text .. "''" end -- Add the namespace if it exists. if title.nsText and title.nsText ~= "" then result = title.nsText .. ':' .. result end -- Call displaytitle with the text we generated. return mw.getCurrentFrame():callParserFunction( 'DISPLAYTITLE', result ) end return p