Difference between revisions of "Module:Italic title"

From blackwiki
Jump to navigation Jump to search
blackwiki>Mr. Stradivarius
(add support for all=yes)
blackwiki>Mr. Stradivarius
(Undid revision 560274954 by Mr. Stradivarius (talk) ok, something went wrong there)
Line 3: Line 3:
 
local p = {}
 
local p = {}
  
function p.main(frame)
+
function p.main()
    -- 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.
Line 21: Line 10:
 
     -- italicise the whole title.
 
     -- italicise the whole title.
 
     local result
 
     local result
     if prefix and brackets and args.all ~= 'yes' then
+
     if prefix and brackets then
 
         result = "''" .. prefix .. "'' " .. brackets
 
         result = "''" .. prefix .. "'' " .. brackets
 
     else
 
     else
Line 32: Line 21:
 
     -- 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

Revision as of 10:02, 17 June 2013

This module implements {{italic title}} and {{italic dab}}. Please see the template pages for documentation.


-- This module implements {{italic title}}.

local p = {}

function p.main()
    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 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