Module:Appearances

local A = { }

local HF = require("Module:HF") local parent = nil

local build = function(arg, arg2, category) local built = ""

local link = "" local text = ""

if not HF.isempty(arg) then link = arg if not HF.isempty(arg2) then text = arg2 else link = string.match(arg, "([^%[%|%]]+)") text = string.match(arg, "%|([^%]%|]+)") end if string.find(link, "w:c:") == nil and string.find(link, "Glossary:") == nil and string.find(link, "#") == nil then if not HF.isempty(link) and not HF.isempty(text) then built = string.format("%s", link, text, link, category) elseif not HF.isempty(link) and HF.isempty(text) then built = string.format("%s", link, link, category) else built = arg end else built = arg end end return built

end

local suffixTag = function(text) local tag = mw.html.create( 'span' ) :css( 'color', 'darkgreen' ) :css( 'font-weight', 'bold' ) :css( 'font-style', 'italic' ) :css( 'font-size', 'smaller' ) :wikitext('('..text..')') :done return tostring(tag) end

function A.appearances(frame) parent = frame:getParent local arg = parent.args[1] local arg2 = parent.args[2] local arg3 = parent.args[3] local category = '/Appearances' local output = '' if HF.isempty(arg3) then output = build(arg, arg2, category) else output = build(arg, arg2, category) .. ' ' .. suffixTag(arg3) end

return output end

function A.apn(frame) parent = frame:getParent local arg = parent.args[1] local arg2 = nil local category = '/Appearances' local output = '' output = build(arg, arg2, category) return output end

function A.mentions(frame) parent = frame:getParent local arg = parent.args[1] local arg2 = parent.args[2] local arg3 = parent.args[3] local category = '/Mentions' local output = '' if HF.isempty(arg3) then output = string.format('%s %s', build(arg, arg2, category), suffixTag('Mentioned')) else output = string.format('%s %s', build(arg, arg2, category), suffixTag(arg3)) end return output end

function A.minor(frame) parent = frame:getParent local arg = parent.args[1] local arg2 = parent.args[2] local arg3 = parent.args[3] local category = '/Minor_Appearances' local output = '' if HF.isempty(arg3) then output = build(arg, arg2, category) else output = string.format('%s %s', build(arg, arg2, category), suffixTag(arg3)) end

return output end

function A.invocations(frame) parent = frame:getParent local arg = parent.args[1] local arg2 = parent.args[2] local arg3 = parent.args[3] local category = '/Invocations' local output = '' if HF.isempty(arg3) then output = string.format('%s %s', build(arg, arg2, category), suffixTag('Invoked')) else output = string.format('%s %s', build(arg, arg2, category), suffixTag(arg3)) end return output end

return A