Module:Italic title

From Wikipedia of the Dark Jedi Brotherhood, an online Star Wars Club

This is a Lua implementation of {{italic title}}. Please see the template page for documentation.


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

local p = {}

function p._main(args, frame, title)
    args = args or {}
    frame = frame or mw.getCurrentFrame()
    title = title or mw.title.getCurrentTitle()
    local prefix, parentheses = mw.ustring.match(title.text, '^(.+) %(([^%(%)]+)%)$')
    local result
    if prefix and parentheses and args.all ~= 'yes' then
        local className = string.match(parentheses, '(.*)%-class')
        if className then
            result = string.format("<i class='italic-title'>%s</i> <span class='parenthetical-title'>(<i>%s</i>-class)</span>", prefix, className)
        else
            result = string.format("<i class='italic-title'>%s</i> <span class='parenthetical-title'>(%s)</span>", prefix, parentheses)
        end
    else
        result = string.format("<i>%s</i>", title.text)
    end
    if title.namespace ~= 0 then
        result = title.nsText:gsub('_', ' ') .. ':' .. result
    end
    return frame:callParserFunction('DISPLAYTITLE', result, args[1])
end

function p.main(frame)
    local args = require('Module:Arguments').getArgs(frame, {
        wrappers = 'Template:Italic title'
    })
    return p._main(args, frame)
end

return p