Module:Succession table monarch

local getArgs = require('Module:Arguments').getArgs local TableTools = require('Module:TableTools') local messages = mw.loadData('Module:Succession table monarch/messages')

local p = {}

p.fromArgs = function(argElements) local mainTag = mw.html.create('table') :addClass('succession-table-monarch wikitable') :css('text-align', 'center') :tag('tr') :tag('th'):wikitext(messages.name):done :tag('th'):wikitext(messages.lifespan):done :tag('th'):wikitext(messages.reignStart):done :tag('th'):wikitext(messages.reignEnd):done :tag('th'):wikitext(messages.notes):done :tag('th'):wikitext(messages.family):done :tag('th'):wikitext(messages.image):done :done local ubl = require('Module:List').unbulleted for _,eachElement in ipairs(argElements) do		if eachElement.name then local list_args = { list_style = 'text-align: center' }			if eachElement.nickname then table.insert(list_args, tostring(mw.html.create('small'):tag('i'):wikitext(eachElement.nickname))) end if eachElement.native then table.insert(list_args, eachElement.native) end local rowTr = mainTag:tag('tr') rowTr:tag('td') :css('vertical-align: middle;') :wikitext(eachElement.name .. ubl(list_args)) :done :tag('td') :wikitext(eachElement.life) :tag('td') :wikitext(eachElement.reignstart) :tag('td') :wikitext(eachElement.reignend) :tag('td') :wikitext(eachElement.notes) :tag('td') :wikitext(eachElement.family) local imageTd = rowTr :tag('td') if eachElement.image then imageTd:tag('span') :addClass('photo') :wikitext('') end end end return tostring(mainTag) end

p.fromArray = function(args) local argElements = TableTools.numData(args, true) return p.fromArgs(argElements) end

p.fromFrame = function(frame) local args = getArgs(frame) return p.fromArray(args) end

return p