(Created page with "local p = {} local getArgs = require('Module:Arguments').getArgs local m = require('Module:Main') local infobox = require('Module:Infobox') local printf = require('Module:Pri...") Â |
No edit summary |
||
Line 31: | Line 31: | ||
output = table.concat(output) |
output = table.concat(output) |
||
+ | return output_categories..frame:preprocess(output_infobox..output) |
||
− | return output_infobox..output..output_categories |
||
end |
end |
||
Revision as of 10:11, 2 August 2020
Documentation for this module may be created at Module:Lineage/doc
local p = {}
local getArgs = require('Module:Arguments').getArgs
local m = require('Module:Main')
local infobox = require('Module:Infobox')
local printf = require('Module:Printf')
local era = require('Module:Era')
function p.main(frame)
local args = getArgs(frame)
local pagename = mw.title.getCurrentTitle().text
local value
local categories = {}
local group = {}
local output_categories = {}
local output_infobox = {}
local output = {}
table.insert(output_categories, 'Lineages')
value, categories = p.group_designations(args)
table.insert(output_infobox, value)
output_categories = m.join_tables(output_categories, categories)
value, categories = p.group_origin(args)
table.insert(output_infobox, value)
output_categories = m.join_tables(output_categories, categories)
output_infobox = infobox.create_infobox( table.concat(output_infobox) )
output_categories = m.add_categories(output_categories)
output = table.concat(output)
return output_categories..frame:preprocess(output_infobox..output)
end
-----------------------------------------------------------------------------------------------
-- status of lineage (exist/destroyed)
function p.status(args)
local status = args.status
local last_appearance = args.last_appearance
local destroyed = {}
local unconfirmed = 'Lineages with unconfirmed status'
local unknown = 'Lineages with unknown status'
local category = ''
local i
local s
local cause_of_destruction = ''
local categories = {}
local output = ''
for i = 1,10 do
s = args['destroyed_by'..i]
if not m.empty(s)
then
s = printf.get_text_comment_ref(s)
table.insert(categories, 'Destroyed by '..m.break_link(s.text,1) )
table.insert(destroyed, s.all)
end
end
if not m.empty(destroyed)
then cause_of_destruction = 'Destroyed by '..mw.text.listToText(destroyed)
end
--if not m.empty(args.destruction_cause)
-- then cause_of_destruction = args.destruction_cause
--end
if not m.empty(status)
then
if status == 'Exists'
then
category = 'Existing Lineages'
output = m.category_link(category, status)
table.insert(categories, category)
if not m.empty(last_appearance) or not m.empty(cause_of_destruction)
then table.insert(categories, unconfirmed)
end
elseif status == 'Destroyed'
then
category = 'Destroyed Lineages'
output = m.category_link(category, status)
table.insert(categories, category)
if m.empty(last_appearance)
then table.insert(categories, unconfirmed)
end
--if m.empty(cause_of_destruction)
-- then table.insert(categories, 'Cause of Destruction Needed')
--end
else
output = status
table.insert(categories, unknown)
end
elseif not m.empty(cause_of_destruction) or not m.empty(last_appearance)
then
category = 'Destroyed Lineages'
output = m.category_link(category, 'Destroyed')
table.insert(categories, category)
table.insert(categories, unconfirmed)
else
table.insert(categories, unknown)
end
return output, cause_of_destruction, categories
end
-- ********************* GROUPS *********************
-----------------------------------------------------------------------------------------------
-- Name and other designations
function p.group_designations(args)
local value = ''
local output_categories = {}
local output = {}
value, output_categories = infobox.add_title(args)
table.insert(output, value)
table.insert(output, infobox.add_row('Aliases', args.aliases) )
return table.concat(output), output_categories
end
-----------------------------------------------------------------------------------------------
-- Origin
function p.group_origin(args)
local header = 'Origin'
local categories = {}
local value = ''
local cause_of_destruction = ''
local output_categories = {}
local output = {}
value, cause_of_destruction, categories = p.status(args)
table.insert(output, infobox.add_row('Current status', value))
table.insert(output, infobox.add_row('Cause of destruction', cause_of_destruction) )
output_categories = m.join_tables(output_categories, categories)
value = era.lua_eras(args.era, '/Lineages')
table.insert(output, infobox.add_row('Era(s)', value) )
return infobox.add_group(output, header), output_categories
end
return p