local getArgs = require('Module:Arguments').getArgslocal 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') :attr('cellspacing', '0') :css('text-align', 'center') :tag('tr') :tag('th'):cssText('width: 25%; border: solid #aaa; border-width: 1px 1px 1px 1px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.name or 'Name'):done :tag('th'):cssText('width: 10%; border: solid #aaa; border-width: 1px 1px 1px 0px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.lifespan or 'Lifespan'):done :tag('th'):cssText('width: 10%; border: solid #aaa; border-width: 1px 1px 1px 0px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.reignStart or 'Reign start'):done :tag('th'):cssText('width: 10%; border: solid #aaa; border-width: 1px 1px 1px 0px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.reignEnd or 'Reign end'):done :tag('th'):cssText('width: 25%; border: solid #aaa; border-width: 1px 1px 1px 0px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.notes or 'Notes'):done :tag('th'):cssText('width: 10%; border: solid #aaa; border-width: 1px 1px 1px 0px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.family or 'Family'):done :tag('th'):cssText('width: 10%; border: solid #aaa; border-width: 1px 1px 1px 0px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.image or 'Image'):done :tag('th'):cssText('width: 5%; border: solid #aaa; border-width: 1px 1px 1px 0px; background: #B9D1FF; font-size: 105%;'):wikitext(messages.ref or 'Ref(s)'):done :done for _,eachElement in ipairs(argElements) do if eachElement.name then local namePlainList = if eachElement.nickname or eachElement.native then namePlainList = mw.getCurrentFrame:expandTemplate end local rowTr = mainTag:tag('tr') rowTr:tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 1px; background: #F0F8FF; vertical-align: middle;') :wikitext(eachElement.name .. namePlainList) :done :tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 0px; background: white;') :wikitext(eachElement.life) :tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 0px; background: white;') :wikitext(eachElement.reignstart) :tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 0px; background: white;') :wikitext(eachElement.reignend) :tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 0px; background: white;') :wikitext(eachElement.notes) :tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 0px; background: white;') :wikitext(eachElement.family) local imageTd = rowTr :tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 0px; background: white;') if eachElement.image then imageTd:tag('span') :addClass('photo') :wikitext('') :tag('td') :cssText('border: solid #aaa; border-width: 0px 1px 1px 0px; background: white;') :wikitext(eachElement.ref)
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