Module:Infobox: Difference between revisions

m
fixes for child infoboxes so HTML Tidy is not required
(rowcellstyle per talk page)
m (fixes for child infoboxes so HTML Tidy is not required)
Line 10:
local origArgs
local root
 
local orphancat = 'Category:Orphan infoboxes'
 
local function notempty( s ) return s and s:match( '%S' ) end
 
local function union(t1, t2)
Line 43 ⟶ 47:
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
local s = {}
local ttype = 'td'
if rowArgs.header then
rowArgs.data = nil
s = mw.text.split(rowArgs.header, '%[%[' .. orphancat .. '%]%]')
if notempty(s[1]) then
rowArgs.header = s[1]
else
rowArgs.header = nil
end
ttype = 'th'
elseif rowArgs.data then
s = mw.text.split(rowArgs.data, '%[%[' .. orphancat .. '%]%]')
if notempty(s[1]) then
rowArgs.data = s[1]
else
rowArgs.data = nil
end
ttype = 'td'
end
if rowArgs.header then
root
:tag('tr')
:addClass(rowArgs.rowclass)
Line 73 ⟶ 98:
:done()
end
local s = mw.text.split(rowArgs.data, '%[%[' .. orphancat .. '%]%]')
rowArgs.data = s[1]
local dataCell = row:tag('td')
if not rowArgs.label then
Line 88 ⟶ 114:
:wikitext(rowArgs.data)
end
for i = 2, #s do
if notempty(s[i]) then
if (i % 2) == 0 then
root
:wikitext(s[i])
else
local dataCell = root:tag('tr'):tag(ttype)
dataCell
:attr('colspan', 2)
:wikitext(s[i])
end
end
end
end
 
Line 102 ⟶ 142:
local function renderAboveRow()
if not args.above then return end
root
:tag('tr')
Line 231 ⟶ 270:
-- Specify the overall layout of the infobox, with special settings
-- if the infobox is used as a 'child' inside another infobox.
local marker = ''
if args.child ~= 'yes' then
root = mw.html.create('table')
Line 260 ⟶ 300:
else
root = mw.html.create()
marker = '[[' .. orphancat .. ']]'
root
:wikitext(args.title)
Line 273 ⟶ 313:
renderTrackingCategories()
return marker .. tostring(root) .. marker
end
 
Anonymous user