Marvel Database
Register
Advertisement

Documentation for this module may be created at Module:Appearances/doc

local p = {}
local getArgs = require('Dev:Arguments').getArgs
local h = require("Module:HF")
local text_bts = 'Behind the scenes'
local text_corpse = 'Corpse, skeleton or other remains'
local text_drawing = 'Drawing'
local text_dream = 'Dream'
local text_illusion = 'Illusion or holographic simulation'
local text_photo = 'Photo'
local text_poster = 'Poster'
local text_statue = 'Statue'
local text_toy = 'Toy'
local text_vision = 'Vision or hallucination'
local text_voice = 'Voice only'

-- ****************************************************************************************************************
-- *** LOCAL FUNCTIONS ***
-- ****************************************************************************************************************
--------------------------------------------------------------------------------
local function first_parameter_is_not_link(value)
	local output = ''
	if ( not h.isempty(value) and not h.is_link(value) )
		then output = h.Category('Outdated Fields/Tags')
	end
	return output
end


--------------------------------------------------------------------------------
local function outdated_field(args)
	local output = ''
	if not h.isempty(args[2]) or not h.isempty(args[3])
		then output = h.Category('Outdated Fields/Tags')
	end
	return output
end


--------------------------------------------------------------------------------
local function build(arg, category)
	local link = ""
	local text = ""
	local output = ''

	if not h.isempty(arg) 
		then
			link = string.match(arg, "([^%[%|%]]+)")
			text = string.match(arg, "%|([^%]%|]+)")

			if string.find(link, "w:c:") == nil and string.find(link, "Glossary:") == nil and string.find(link, "#") == nil 
				then
					if not h.isempty(link)
						then output = h.Link(link, text)..h.Category(link..category)
						else output = arg
					end
				else
					output = arg
			end
	end
  
	return output
end


--------------------------------------------------------------------------------
local function minor_first(frame, text)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('First appearance; '..string.lower(text))..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
function p.lua_add_tag(value, no_space)
    local output = ''
    local no_space2 = no_space or false
    
    if not h.isempty(value)
    	then 
    		output = tostring( mw.html.create('span'):addClass('green_text'):wikitext('('..value..')'):done() )
    		if no_space2 == false 
    			then output = ' '..output
    		end
    end
    return output
end

--------------------------------------------------------------------------------
-- used in "Template:Green"
function p.green(frame)
	local args = getArgs(frame, {parentOnly = true})
	local arg1 = args[1]
	local arg2 = args[2]
	local output = ''
	
	if not h.isempty(arg1)
		then
			if not h.isempty(arg2)
				then
					output = build(arg1, '/Appearances')..p.lua_add_tag(arg2)
					--[[
					if h.is_link(arg1)
						then output = h.Category('Outdated Fields/Tags')..build(arg1, '/Appearances')..p.lua_add_tag(arg2)
						else output = build(arg1, '/Appearances')..p.lua_add_tag(arg2)
						end
					]]--
				else
					output = p.lua_add_tag(arg1, true)
			end
	end

	return output
end


-- ****************************************************************************************************************
-- *** APPEARANCES ***
-- ****************************************************************************************************************
--------------------------------------------------------------------------------
-- used in "Template:A" and "Template:Handbook Appearance"
function p.appearances(frame)
	local args = getArgs(frame)
	local appearance_type = '/Appearances';
	if args.type == 'Handbook' 
		then appearance_type = '/Handbook Appearances'
	end

	return build(args[1], appearance_type)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Apn"
function p.apn(frame)
	local standard = require("Module:StandardizedName")
	local function get_link(value, pagename, is_next)
		local info = {}
		local issue_number
		local output = ''

		if not h.isempty(value)
			then
				if value ~= '-'
					then output = value
				end
			elseif string.find(pagename, ' Vol ') ~= nil or string.find(pagename, ' Season ') ~= nil
				then
					if string.find(pagename, ' Vol ') ~= nil
						then info = standard.lua_get_title_volume_issue(pagename, 'Vol')
						else info = standard.lua_get_title_volume_issue(pagename, 'Season')
					end
					issue_number = tonumber(info.issue)
					if issue_number ~= nil
						then
							if is_next
								then output = info.noissue..' '..(issue_number + 1)
								elseif issue_number > 1
									then output = info.noissue..' '..(issue_number - 1)
							end
					end
		end
			
		if output ~= ''
			then 
				if is_next
					then output = ' '..h.Link(output, '⏵')
					else output = h.Link(output, '⏴')..' '
				end
		end
		
		return output
	end
	local pagename = mw.title.getCurrentTitle().text
	local args = getArgs(frame)
	local output = build(args[1], '/Appearances')

	return get_link(args[2], pagename, false)..output..get_link(args[3], pagename, true)
end


--------------------------------------------------------------------------------
-- used in "Template:1st"
function p.first_appearance(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First appearance')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1stas"
function p.first_as(frame)
	local args = getArgs(frame)
	local arg1 = args[1]
	local arg2 = args[2]
	local output = ''
	
	if not h.isempty(arg1)
		then 
			if not h.isempty(arg2)
				then output = build(arg1, '/Appearances')..p.lua_add_tag('First appearance as '..arg2)
				elseif h.is_link(arg1)
					then output = build(arg1, '/Appearances')..p.lua_add_tag('First appearance as '..arg1)
				else output = p.lua_add_tag('First appearance as '..arg1)
			end
	end
	
	return output 
end


--------------------------------------------------------------------------------
-- used in "Template:1stChron"
function p.first_chronologically(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First appearance chronologically')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Destruction"
function p.first_destruction(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First appearance; destruction')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Dies"
function p.first_dies(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First appearance; dies')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1stFull"
function p.first_full(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First full appearance')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1stHist"
function p.first_historically(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First appearance historically')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Real Name"
function p.first_real_name(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Name revealed')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Unnamed"
function p.first_unnamed(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First appearance; unnamed')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:ApDeath"
function p.apparent_death(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Apparent death')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Cameo"
function p.cameo(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Cameo')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:ChronoFB"
function p.chronological_flashback(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag( h.Link('#Chronology Notes', 'Appears in flashback') )..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Chronology"
function p.chronology(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag( h.Link('#Chronology Notes', 'See chronology') )..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Death"
function p.death(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Death')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Deceased"
function p.deceased(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Deceased')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Defunct"
function p.defunct(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Defunct')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Destroyed"
function p.destroyed(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Destroyed')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Destruction"
function p.destruction(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Destruction')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Disbands"
function p.disbands(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Disbands')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Final"
function p.final(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Final appearance')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Final Dies"
function p.final_dies(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Final appearance; dies')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Flashback"
function p.flashback(frame)
	local args = getArgs(frame)
	local arg1 = args[1]
	local arg2 = args[2]
	local output = 'Main story'
	
	if not h.isempty(arg2)
		then output = output..' and as '..arg2..' in flashback'
		else output = output..' and flashback'
	end

	return build(arg1, '/Appearances')..p.lua_add_tag(output)..first_parameter_is_not_link(arg1)
end


--------------------------------------------------------------------------------
-- used in "Template:Flashback and Flashforward"
function p.flashback_flashforward(frame)
	local args = getArgs(frame)
	local arg1 = args[1]
	local arg2 = args[2]
	local arg3 = args[3]
	local output = 'Main story'
	
	if not h.isempty(arg2)
		then output = output..', as '..arg2..' in flashback'
		else output = output..', flashback'
	end
	if not h.isempty(arg3)
		then output = output..', as '..arg3..' in flashforward'
		else output = output..', flashforward'
	end
	
	return build(arg1, '/Appearances')..p.lua_add_tag(output)..first_parameter_is_not_link(arg1)
end


--------------------------------------------------------------------------------
-- used in "Template:Flashforward"
function p.flashforward(frame)
	local args = getArgs(frame)
	local arg1 = args[1]
	local arg2 = args[2]
	local output = 'Main story'
	
	if not h.isempty(arg2)
		then output = output..' and as '..arg2..' in flashforward'
		else output = output..' and flashforward'
	end

	return build(arg1, '/Appearances')..p.lua_add_tag(output)..first_parameter_is_not_link(arg1)
end


--------------------------------------------------------------------------------
-- used in "Template:FlashOnly"
function p.flashback_only(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Only in flashback')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:FlashforwardOnly"
function p.flashforward_only(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Only in flashforward')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Ghost"
function p.ghost_soul_spirit(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Ghost, soul or spirit')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Hologram"
function p.hologram(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('As hologram')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Joins"
function p.joins(frame)
	local args = getArgs(frame)
	local arg2 = args[2]

	if not h.isempty(arg2)
		then return build(args[1], '/Appearances')..p.lua_add_tag('Joins '..arg2)..first_parameter_is_not_link(args[1])
		else return build(args[1], '/Appearances')..p.lua_add_tag('Joins')..first_parameter_is_not_link(args[1])
	end
end


--------------------------------------------------------------------------------
-- used in "Template:Last"
function p.last(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Last appearance')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Leaves"
function p.leaves(frame)
	local args = getArgs(frame)
	local arg2 = args[2]

	if not h.isempty(arg2)
		then return build(args[1], '/Appearances')..p.lua_add_tag('Leaves '..arg2)..first_parameter_is_not_link(args[1])
		else return build(args[1], '/Appearances')..p.lua_add_tag('Leaves')..first_parameter_is_not_link(args[1])
	end
end


--------------------------------------------------------------------------------
-- used in "Template:Only"
function p.only(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('First appearance')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:OnScreen"
function p.on_screen(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Appears on screen')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Origin"
function p.origin(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Origin revealed')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:PossessedBy" and "Template:Minor PossessedBy"
function p.possessed_by(frame)
	local args = getArgs(frame)
	local value1 = args[1]
	local value2 = args[2]
	local appearance_type = '/Appearances';
	local output_categories = {}
	local output = ''
	
	if args.type == 'Minor' 
		then appearance_type = '/Minor Appearances'
	end
	
	if not h.isempty(value1)
		then
			if h.is_link(value1)
				then table.insert(output_categories, h.break_link(value1)..appearance_type)
			end
			if not h.isempty(value2)
				then
					if h.is_link(value2)
						then table.insert(output_categories, h.break_link(value2)..appearance_type)
					end
					output = value1..p.lua_add_tag('Possessed by '..value2)
				else
					output = p.lua_add_tag('Possessed by '..value1, true)
			end
	end

	return output..h.add_categories(output_categories)
end


--------------------------------------------------------------------------------
-- used in "Template:Possesses"
function p.possesses(frame)
	local args = getArgs(frame)
	local value1 = args[1]
	local value2 = args[2]
	local output_categories = {}
	local output = ''
	
	if not h.isempty(value1)
		then
			if h.is_link(value1)
				then table.insert(output_categories, h.break_link(value1)..'/Appearances')
			end
			if not h.isempty(value2)
				then
					if h.is_link(value2)
						then table.insert(output_categories, h.break_link(value2)..'/Appearances')
					end
					output = value1..p.lua_add_tag('Possesses '..value2)
				else
					output = p.lua_add_tag('Possesses '..value1, true)
			end
	end

	return output..h.add_categories(output_categories)
end


--------------------------------------------------------------------------------
-- used in "Template:Recap"
function p.recap(frame)
	local args = getArgs(frame)
	local arg1 = args[1]
	local arg2 = args[2]
	local output = 'Main story'
	
	if not h.isempty(arg2)
		then output = output..' and as '..arg2..' in recap'
		else output = output..' and recap'
	end

	return build(arg1, '/Appearances')..p.lua_add_tag(output)..first_parameter_is_not_link(arg1)
end


--------------------------------------------------------------------------------
-- used in "Template:Rejoins"
function p.rejoins(frame)
	local args = getArgs(frame)
	local arg2 = args[2]

	if not h.isempty(arg2)
		then return build(args[1], '/Appearances')..p.lua_add_tag('Rejoins '..arg2)..first_parameter_is_not_link(args[1])
		else return build(args[1], '/Appearances')..p.lua_add_tag('Rejoins')..first_parameter_is_not_link(args[1])
	end
end


--------------------------------------------------------------------------------
-- used in "Template:Repaired"
function p.repaired(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Repaired')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Resurrection"
function p.resurrection(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Resurrection')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Revealed Alive"
function p.revealed_alive(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Revealed to be alive')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Shadow"
function p.shadow(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Shadow only')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Topical Reference"
function p.topical_reference(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag( h.Link('Glossary:Topical Reference', 'Topical Reference') )..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Unnamed"
function p.unnamed(frame)
	local args = getArgs(frame)
	return build(args[1], '/Appearances')..p.lua_add_tag('Unnamed')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


-- ****************************************************************************************************************
--------------------------------------------------------------------------------
function p.minor(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:1st BTS"
function p.first_behind_the_scenes(frame)
	return minor_first(frame, text_bts)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Corpse"
function p.first_corpse(frame)
	return minor_first(frame, text_corpse)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Drawing"
function p.first_drawing(frame)
	return minor_first(frame, text_drawing)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Dream"
function p.first_dream(frame)
	return minor_first(frame, text_dream)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Illusion"
function p.first_illusion(frame)
	return minor_first(frame, text_illusion)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Photo"
function p.first_photo(frame)
	return minor_first(frame, text_photo)
end

--------------------------------------------------------------------------------
-- used in "Template:1st Poster"
function p.first_poster(frame)
	return minor_first(frame, text_poster)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Statue"
function p.first_statue(frame)
	return minor_first(frame, text_statue)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Toy"
function p.first_toy(frame)
	return minor_first(frame, text_toy)
end


--------------------------------------------------------------------------------
-- used in "Template:1st Vision"
function p.first_vision(frame)
	return minor_first(frame, text_vision)
end

--------------------------------------------------------------------------------
-- used in "Template:1st Voice"
function p.first_voice(frame)
	return minor_first(frame, text_voice)
end


--------------------------------------------------------------------------------
-- used in "Template:Airspace"
function p.airspace(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('Airspace')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:BTS"
function p.behind_the_scenes(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_bts)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Carving"
function p.carving(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('Carving')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Comatose or Unconscious"
function p.comatose(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('Comatose or unconscious')..first_parameter_is_not_link(args[1])..outdated_field(args)
end

--------------------------------------------------------------------------------
-- used in "Template:Corpse"
function p.corpse(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_corpse)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Drawing"
function p.drawing(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_drawing)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Dream"
function p.dream(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_dream)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Illusion"
function p.illusion_or_hologram(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_illusion)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Imagination"
function p.imagination(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('Imagination')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:OnScreenOnly"
function p.on_screen_only(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('Only on screen as a static image or video record')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Photo"
function p.photo(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_photo)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Poster"
function p.poster(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_poster)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:RecapOnly"
function p.recap_only(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('Only in recap')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Wreckage"
function p.wreckage(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag('Wreckage, ruins, debris, fragments')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Statue"
function p.statue(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_statue)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Toy"
function p.toy(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_toy)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Vision"
function p.vision(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_vision)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Voice"
function p.voice(frame)
	local args = getArgs(frame)
	return build(args[1], '/Minor Appearances')..p.lua_add_tag(text_voice)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


-- ****************************************************************************************************************
--------------------------------------------------------------------------------
-- used in "Template:Mentioned" and "Template:Handbook Mention"
function p.mentioned(frame)
	local args = getArgs(frame)
	local appearance_type = '/Mentions';
	local tag = 'Mentioned'
	if args.type == 'Handbook'
		then 
			appearance_type = '/Handbook Mentions'
			tag = 'Referenced'
	end
	
	return build(args[1], appearance_type)..p.lua_add_tag(tag)..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Map"
function p.map(frame)
	local args = getArgs(frame)
	return build(args[1], '/Mentions')..p.lua_add_tag('Map')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Named"
function p.named(frame)
	local args = getArgs(frame)
	return build(args[1], '/Mentions')..p.lua_add_tag('Name only')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Referenced"
function p.referenced(frame)
	local args = getArgs(frame)
	return build(args[1], '/Mentions')..p.lua_add_tag('Referenced')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


--------------------------------------------------------------------------------
-- used in "Template:Tombstone"
function p.tombstone(frame)
	local args = getArgs(frame)
	return build(args[1], '/Mentions')..p.lua_add_tag('Tombstone')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


-- ****************************************************************************************************************
--------------------------------------------------------------------------------
-- used in "Template:Invoked"
function p.invoked(frame)
	local args = getArgs(frame)
	return build(args[1], '/Invocations')..p.lua_add_tag('Invoked')..first_parameter_is_not_link(args[1])..outdated_field(args)
end


-- ****************************************************************************************************************
--------------------------------------------------------------------------------
-- used in "Template:Impersonates"
function p.impersonates(frame)
	local args = getArgs(frame)
	return p.lua_add_tag('Impersonates '..args[1])
end


--------------------------------------------------------------------------------
-- used in "Template:Killed"
function p.killed(frame)
	local args = getArgs(frame)
	local output = 'Killed'
	if not h.isempty(args[1])
		then output = 'Killed by '..args[1]
	end
	
	return p.lua_add_tag(output)
end


--------------------------------------------------------------------------------
-- used in "Template:RevealedAs"
function p.revealed_as(frame)
	local args = getArgs(frame)
	return p.lua_add_tag('Revealed as '..args[1])
end


return p
Advertisement