Module:Infobox: Difference between revisions

952 bytes removed ,  7 years ago
Undid revision 782833995 by Jc86035 (talk) looks like this caused some serious problems, will require more testing (see, e.g, my talk page)
m>Jc86035
m (fixes for child infoboxes so HTML Tidy is not required)
m>Frietjes
(Undid revision 782833995 by Jc86035 (talk) looks like this caused some serious problems, will require more testing (see, e.g, my talk page))
Line 10: Line 10:
local origArgs
local origArgs
local root
local root
local orphancat = 'Category:Orphan infoboxes'
local function notempty( s ) return s and s:match( '%S' ) end


local function union(t1, t2)
local function union(t1, t2)
Line 47: Line 43:
     -- Adds a row to the infobox, with either a header cell
     -- Adds a row to the infobox, with either a header cell
     -- or a label/data cell combination.
     -- 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
     if rowArgs.header then
    root
        root
             :tag('tr')
             :tag('tr')
                 :addClass(rowArgs.rowclass)
                 :addClass(rowArgs.rowclass)
Line 98: Line 73:
                     :done()
                     :done()
         end
         end
         local s = mw.text.split(rowArgs.data, '%[%[' .. orphancat .. '%]%]')
          
rowArgs.data = s[1]
         local dataCell = row:tag('td')
         local dataCell = row:tag('td')
         if not rowArgs.label then  
         if not rowArgs.label then  
Line 114: Line 88:
             :wikitext(rowArgs.data)
             :wikitext(rowArgs.data)
     end
     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
end


Line 142: Line 102:
local function renderAboveRow()
local function renderAboveRow()
     if not args.above then return end
     if not args.above then return end
   
     root
     root
         :tag('tr')
         :tag('tr')
Line 270: Line 231:
     -- Specify the overall layout of the infobox, with special settings
     -- Specify the overall layout of the infobox, with special settings
     -- if the infobox is used as a 'child' inside another infobox.
     -- if the infobox is used as a 'child' inside another infobox.
    local marker = ''
     if args.child ~= 'yes' then
     if args.child ~= 'yes' then
         root = mw.html.create('table')
         root = mw.html.create('table')
Line 300: Line 260:
     else
     else
         root = mw.html.create()
         root = mw.html.create()
         marker = '[[' .. orphancat .. ']]'
          
         root
         root
             :wikitext(args.title)
             :wikitext(args.title)
Line 313: Line 273:
     renderTrackingCategories()
     renderTrackingCategories()
      
      
     return marker .. tostring(root) .. marker
     return tostring(root)
end
end


Anonymous user