Module:Infobox: Difference between revisions
Content deleted Content added
Johnrdorazio (talk | contribs) m 1 revision imported |
merge hlist here |
||
Line 6: | Line 6: | ||
local category_in_empty_row_pattern = '%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]' |
local category_in_empty_row_pattern = '%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]' |
||
local has_rows = false |
local has_rows = false |
||
local lists = { |
|||
plainlist_t = { |
|||
patterns = { |
|||
'^plainlist$', |
|||
'%splainlist$', |
|||
'^plainlist%s', |
|||
'%splainlist%s' |
|||
}, |
|||
found = false, |
|||
styles = 'Plainlist/styles.css' |
|||
}, |
|||
hlist_t = { |
|||
patterns = { |
|||
'^hlist$', |
|||
'%shlist$', |
|||
'^hlist%s', |
|||
'%shlist%s' |
|||
}, |
|||
found = false, |
|||
styles = 'Hlist/styles.css' |
|||
} |
|||
} |
|||
local function has_list_class(args_to_check) |
|||
for _, list in pairs(lists) do |
|||
if not list.found then |
|||
for _, arg in pairs(args_to_check) do |
|||
for _, pattern in ipairs(list.patterns) do |
|||
if mw.ustring.find(arg or '', pattern) then |
|||
list.found = true |
|||
break |
|||
end |
|||
end |
|||
if list.found then break end |
|||
end |
|||
end |
|||
end |
|||
end |
|||
local function fixChildBoxes(sval, tt) |
local function fixChildBoxes(sval, tt) |
||
Line 112: | Line 150: | ||
if rowArgs.header and rowArgs.header ~= '_BLANK_' then |
if rowArgs.header and rowArgs.header ~= '_BLANK_' then |
||
has_rows = true |
has_rows = true |
||
has_list_class({ rowArgs.rowclass, rowArgs.class, args.headerclass }) |
|||
root |
root |
||
:tag('tr') |
:tag('tr') |
||
Line 130: | Line 170: | ||
) |
) |
||
end |
end |
||
elseif rowArgs.data and rowArgs.data:gsub( |
elseif rowArgs.data and rowArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then |
||
category_in_empty_row_pattern, '' |
|||
):match('^%S') then |
|||
has_rows = true |
has_rows = true |
||
has_list_class({ rowArgs.rowclass, rowArgs.class }) |
|||
local row = root:tag('tr') |
local row = root:tag('tr') |
||
row:addClass(rowArgs.rowclass) |
row:addClass(rowArgs.rowclass) |
||
Line 167: | Line 207: | ||
has_rows = true |
has_rows = true |
||
has_list_class({args.titleclass}) |
|||
root |
root |
||
:tag('caption') |
:tag('caption') |
||
Line 174: | Line 216: | ||
:cssText(args.titlestyle) |
:cssText(args.titlestyle) |
||
:wikitext(args.title) |
:wikitext(args.title) |
||
end |
end |
||
Line 180: | Line 223: | ||
has_rows = true |
has_rows = true |
||
has_list_class({ args.aboveclass }) |
|||
root |
root |
||
:tag('tr') |
:tag('tr') |
||
Line 195: | Line 240: | ||
has_rows = true |
has_rows = true |
||
has_list_class({ args.belowclass }) |
|||
root |
root |
||
:tag('tr') |
:tag('tr') |
||
Line 210: | Line 257: | ||
subheaderArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then |
subheaderArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then |
||
has_rows = true |
has_rows = true |
||
has_list_class({ subheaderArgs.rowclass, subheaderArgs.class }) |
|||
local row = root:tag('tr') |
local row = root:tag('tr') |
||
row:addClass(subheaderArgs.rowclass) |
row:addClass(subheaderArgs.rowclass) |
||
Line 252: | Line 301: | ||
has_rows = true |
has_rows = true |
||
has_list_class({ imageArgs.rowclass, imageArgs.class }) |
|||
local row = root:tag('tr') |
local row = root:tag('tr') |
||
row:addClass(imageArgs.rowclass) |
row:addClass(imageArgs.rowclass) |
||
Line 363: | Line 414: | ||
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title']) |
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title']) |
||
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then |
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then |
||
root:wikitext( |
root:wikitext(require('Module:Italic title')._main({})) |
||
end |
end |
||
end |
end |
||
Line 403: | Line 454: | ||
local function loadTemplateStyles() |
local function loadTemplateStyles() |
||
local frame = mw.getCurrentFrame() |
local frame = mw.getCurrentFrame() |
||
local hlist_templatestyles = '' |
|||
if lists.hlist_t.found then |
|||
hlist_templatestyles = frame:extensionTag{ |
|||
name = 'templatestyles', args = { src = lists.hlist_t.styles } |
|||
} |
|||
end |
|||
local plainlist_templatestyles = '' |
|||
if lists.plainlist_t.found then |
|||
plainlist_templatestyles = frame:extensionTag{ |
|||
name = 'templatestyles', args = { src = lists.plainlist_t.styles } |
|||
} |
|||
end |
|||
-- See function description |
-- See function description |
||
Line 410: | Line 475: | ||
local templatestyles = '' |
local templatestyles = '' |
||
if args['templatestyles'] then |
if args['templatestyles'] then |
||
templatestyles = frame:extensionTag{ |
|||
name = 'templatestyles', args = { src = args['templatestyles'] } |
name = 'templatestyles', args = { src = args['templatestyles'] } |
||
} |
} |
||
Line 416: | Line 482: | ||
local child_templatestyles = '' |
local child_templatestyles = '' |
||
if args['child templatestyles'] then |
if args['child templatestyles'] then |
||
child_templatestyles = frame:extensionTag{ |
|||
name = 'templatestyles', args = { src = args['child templatestyles'] } |
name = 'templatestyles', args = { src = args['child templatestyles'] } |
||
} |
} |
||
Line 422: | Line 489: | ||
local grandchild_templatestyles = '' |
local grandchild_templatestyles = '' |
||
if args['grandchild templatestyles'] then |
if args['grandchild templatestyles'] then |
||
grandchild_templatestyles = frame:extensionTag{ |
|||
name = 'templatestyles', args = { src = args['grandchild templatestyles'] } |
name = 'templatestyles', args = { src = args['grandchild templatestyles'] } |
||
} |
} |
||
end |
end |
||
return table.concat({ |
return table.concat({ |
||
-- hlist -> plainlist -> base is best-effort to preserve old Common.css ordering. |
|||
⚫ | |||
-- this ordering is not a guarantee because the rows of interest invoking |
|||
-- each class may not be on a specific page |
|||
hlist_templatestyles, |
|||
plainlist_templatestyles, |
|||
⚫ | |||
templatestyles, |
templatestyles, |
||
child_templatestyles, |
child_templatestyles, |
||
Line 460: | Line 533: | ||
-- @deprecated next; target .infobox-<name> |
-- @deprecated next; target .infobox-<name> |
||
:cssText(args.bodystyle) |
:cssText(args.bodystyle) |
||
has_list_class({ args.bodyclass }) |
|||
renderTitle() |
renderTitle() |