Editing Module:Infobox
Appearance
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
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 function fixChildBoxes(sval, tt) | local function fixChildBoxes(sval, tt) | ||
Line 51: | Line 13: | ||
local marker = '<span class=special_infobox_marker>' | local marker = '<span class=special_infobox_marker>' | ||
local s = sval | local s = sval | ||
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1') | s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1') | ||
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker) | s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker) | ||
Line 150: | Line 104: | ||
if rowArgs.header and rowArgs.header ~= '_BLANK_' then | if rowArgs.header and rowArgs.header ~= '_BLANK_' then | ||
has_rows = true | has_rows = true | ||
root | root | ||
:tag('tr') | :tag('tr') | ||
Line 167: | Line 119: | ||
if rowArgs.data then | if rowArgs.data then | ||
root:wikitext( | root:wikitext( | ||
'[[Category:Pages | '[[Category:Pages which use infobox templates with ignored data cells]]' | ||
) | ) | ||
end | end | ||
elseif rowArgs.data and rowArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then | elseif rowArgs.data and rowArgs.data:gsub( | ||
category_in_empty_row_pattern, '' | |||
):match('^%S') then | |||
has_rows = true | has_rows = true | ||
local row = root:tag('tr') | local row = root:tag('tr') | ||
row:addClass(rowArgs.rowclass) | row:addClass(rowArgs.rowclass) | ||
Line 207: | Line 159: | ||
has_rows = true | has_rows = true | ||
root | root | ||
:tag('caption') | :tag('caption') | ||
Line 216: | Line 166: | ||
:cssText(args.titlestyle) | :cssText(args.titlestyle) | ||
:wikitext(args.title) | :wikitext(args.title) | ||
end | end | ||
Line 223: | Line 172: | ||
has_rows = true | has_rows = true | ||
root | root | ||
:tag('tr') | :tag('tr') | ||
Line 240: | Line 187: | ||
has_rows = true | has_rows = true | ||
root | root | ||
:tag('tr') | :tag('tr') | ||
Line 257: | Line 202: | ||
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 | ||
local row = root:tag('tr') | local row = root:tag('tr') | ||
row:addClass(subheaderArgs.rowclass) | row:addClass(subheaderArgs.rowclass) | ||
Line 301: | Line 244: | ||
has_rows = true | has_rows = true | ||
local row = root:tag('tr') | local row = root:tag('tr') | ||
row:addClass(imageArgs.rowclass) | row:addClass(imageArgs.rowclass) | ||
Line 414: | Line 355: | ||
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(mw.getCurrentFrame():expandTemplate({title = 'italic title'})) | ||
end | end | ||
end | end | ||
Line 434: | Line 375: | ||
if args.title then | if args.title then | ||
root:wikitext( | root:wikitext( | ||
'[[Category:Pages | '[[Category:Pages which use embedded infobox templates with the title parameter]]' | ||
) | ) | ||
end | end | ||
elseif #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then | elseif #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then | ||
root:wikitext('[[Category:Articles | root:wikitext('[[Category:Articles which use infobox templates with no data rows]]') | ||
end | end | ||
end | end | ||
Line 445: | Line 386: | ||
Loads the templatestyles for the infobox. | Loads the templatestyles for the infobox. | ||
TODO: | TODO: load base templatestyles here rather than in MediaWiki:Common.css | ||
MediaWiki:Common.css | We aren't doing it here yet because there are 4-5000 pages with 'raw' infobox | ||
See [[Mediawiki_talk:Common.css/to_do#Infobox]] and/or come help :). | tables. See [[Mediawiki_talk:Common.css/to_do#Infobox]] and/or come help :). | ||
When we do this we should clean up the inline CSS below too. | When we do this we should clean up the inline CSS below too. | ||
Will have to do some bizarre conversion category like with sidebar. | Will have to do some bizarre conversion category like with sidebar. | ||
]=] | ]=] | ||
local function loadTemplateStyles() | local function loadTemplateStyles() | ||
local frame = mw.getCurrentFrame() | local frame = mw.getCurrentFrame() | ||
-- See function description | |||
-- local base_templatestyles = frame:extensionTag{ | |||
-- name = 'templatestyles', args = { src = cfg.i18n.templatestyles } | |||
-- } | |||
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 482: | Line 408: | ||
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 489: | Line 414: | ||
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({ | ||
-- base_templatestyles, -- see function description | |||
templatestyles, | templatestyles, | ||
child_templatestyles, | child_templatestyles, | ||
grandchild_templatestyles | grandchild_templatestyles | ||
} | }) | ||
end | end | ||
Line 533: | Line 439: | ||
-- @deprecated next; target .infobox-<name> | -- @deprecated next; target .infobox-<name> | ||
:cssText(args.bodystyle) | :cssText(args.bodystyle) | ||
renderTitle() | renderTitle() | ||
Line 544: | Line 448: | ||
:wikitext(args.title) | :wikitext(args.title) | ||
end | end | ||
renderSubheaders() | |||
renderImages() | |||
preprocessRows() | |||
renderRows() | |||
renderBelowRow() | |||
renderNavBar() | |||
renderItalicTitle() | |||
renderEmptyRowCategories() | |||
renderTrackingCategories() | |||
cleanInfobox() | |||
return loadTemplateStyles() .. root | return loadTemplateStyles() .. root | ||
end | end |