Changes

Jump to navigation Jump to search
1,961 bytes added ,  16:12, 25 October 2017
m
1 revision imported
Line 10: Line 10:  
local origArgs
 
local origArgs
 
local root
 
local root
 +
 +
local function notempty( s ) return s and s:match( '%S' ) end
 +
 +
local function fixChildBoxes(sval, tt)
 +
if notempty(sval) then
 +
local marker = '<span class=special_infobox_marker>'
 +
local s = sval
 +
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
 +
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
 +
if s:match(marker) then
 +
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
 +
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
 +
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
 +
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
 +
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
 +
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
 +
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
 +
s = mw.ustring.gsub(s,  marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
 +
s = mw.ustring.gsub(s,  marker .. '(%s*\n|%})', '%1')
 +
end
 +
if s:match(marker) then
 +
local subcells = mw.text.split(s, marker)
 +
s = ''
 +
for k = 1, #subcells do
 +
if k == 1 then
 +
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
 +
elseif k == #subcells then
 +
local rowstyle = ' style="display:none"'
 +
if notempty(subcells[k]) then rowstyle = '' end
 +
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k]
 +
elseif notempty(subcells[k]) then
 +
if (k % 2) == 0 then
 +
s = s .. subcells[k]
 +
else
 +
s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>'
 +
end
 +
end
 +
end
 +
end
 +
return s
 +
else
 +
return sval
 +
end
 +
end
    
local function union(t1, t2)
 
local function union(t1, t2)
Line 56: Line 100:  
                     :css('text-align', 'center')
 
                     :css('text-align', 'center')
 
                     :cssText(args.headerstyle)
 
                     :cssText(args.headerstyle)
                     :wikitext(rowArgs.header)
+
                    :cssText(rowArgs.rowcellstyle)
 +
                     :wikitext(fixChildBoxes(rowArgs.header, 'th'))
 
     elseif rowArgs.data then
 
     elseif rowArgs.data then
 
         local row = root:tag('tr')
 
         local row = root:tag('tr')
Line 68: Line 113:  
                     :attr('id', rowArgs.labelid)
 
                     :attr('id', rowArgs.labelid)
 
                     :cssText(args.labelstyle)
 
                     :cssText(args.labelstyle)
 +
                    :cssText(rowArgs.rowcellstyle)
 
                     :wikitext(rowArgs.label)
 
                     :wikitext(rowArgs.label)
 
                     :done()
 
                     :done()
Line 82: Line 128:  
             :addClass(rowArgs.class)
 
             :addClass(rowArgs.class)
 
             :cssText(rowArgs.datastyle)
 
             :cssText(rowArgs.datastyle)
 +
            :cssText(rowArgs.rowcellstyle)
 
             :newline()
 
             :newline()
             :wikitext(rowArgs.data)
+
             :wikitext(fixChildBoxes(rowArgs.data, 'td'))
 
     end
 
     end
 
end
 
end
Line 109: Line 156:  
                 :css('font-weight', 'bold')
 
                 :css('font-weight', 'bold')
 
                 :cssText(args.abovestyle)
 
                 :cssText(args.abovestyle)
                 :wikitext(args.above)
+
                 :wikitext(fixChildBoxes(args.above,'th'))
 
end
 
end
   Line 123: Line 170:  
                 :cssText(args.belowstyle)
 
                 :cssText(args.belowstyle)
 
                 :newline()
 
                 :newline()
                 :wikitext(args.below)
+
                 :wikitext(fixChildBoxes(args.below,'td'))
 
end
 
end
   Line 184: Line 231:  
             rowclass = args['rowclass' .. tostring(num)],
 
             rowclass = args['rowclass' .. tostring(num)],
 
             rowstyle = args['rowstyle' .. tostring(num)],
 
             rowstyle = args['rowstyle' .. tostring(num)],
 +
            rowcellstyle = args['rowcellstyle' .. tostring(num)],
 
             dataid = args['dataid' .. tostring(num)],
 
             dataid = args['dataid' .. tostring(num)],
 
             labelid = args['labelid' .. tostring(num)],
 
             labelid = args['labelid' .. tostring(num)],
Line 377: Line 425:  
         {prefix = 'rowclass'},
 
         {prefix = 'rowclass'},
 
         {prefix = 'rowstyle'},
 
         {prefix = 'rowstyle'},
 +
        {prefix = 'rowcellstyle'},
 
         {prefix = 'class'},
 
         {prefix = 'class'},
 
         {prefix = 'dataid'},
 
         {prefix = 'dataid'},
Bureaucrats, private-view, public-view, Administrators
97,692

edits

Navigation menu