Module:Infobox: Difference between revisions
From Body Communication
ocd triggered
SadanYagci (talk | contribs) m (1 revision imported) |
en>Izno (ocd triggered) |
||
Line 13: | Line 13: | ||
local marker = '<span class=special_infobox_marker>' | local marker = '<span class=special_infobox_marker>' | ||
local s = sval | local s = sval | ||
-- start moving templatestyles and categories inside of table rows | |||
local slast = '' | |||
while slast ~= s do | |||
slast = s | |||
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*%]%])', '%2%1') | |||
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)', '%2%1') | |||
end | |||
-- end moving templatestyles and categories inside of table rows | |||
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 123: | Line 131: | ||
end | end | ||
elseif rowArgs.data and rowArgs.data:gsub( | elseif rowArgs.data and rowArgs.data:gsub( | ||
category_in_empty_row_pattern, '' | |||
):match('^%S') then | ):match('^%S') then | ||
has_rows = true | has_rows = true | ||
Line 386: | Line 394: | ||
Loads the templatestyles for the infobox. | Loads the templatestyles for the infobox. | ||
TODO: | TODO: FINISH loading base templatestyles here rather than in | ||
MediaWiki:Common.css. There are 4-5000 pages with 'raw' infobox tables. | |||
tables. See [[Mediawiki_talk:Common.css/to_do#Infobox]] and/or come help :). | 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 | -- See function description | ||
local base_templatestyles = frame:extensionTag{ | |||
name = 'templatestyles', args = { src = 'Module:Infobox/styles.css' } | |||
} | |||
local templatestyles = '' | local templatestyles = '' | ||
if args['templatestyles'] then templatestyles = frame:extensionTag{ | if args['templatestyles'] then templatestyles = frame:extensionTag{ | ||
Line 420: | Line 428: | ||
return table.concat({ | return table.concat({ | ||
base_templatestyles, -- see function description | |||
templatestyles, | templatestyles, | ||
child_templatestyles, | child_templatestyles, | ||
grandchild_templatestyles | grandchild_templatestyles | ||
}) | }) | ||
end | |||
-- common functions between the child and non child cases | |||
local function structure_infobox_common() | |||
renderSubheaders() | |||
renderImages() | |||
preprocessRows() | |||
renderRows() | |||
renderBelowRow() | |||
renderNavBar() | |||
renderItalicTitle() | |||
renderEmptyRowCategories() | |||
renderTrackingCategories() | |||
cleanInfobox() | |||
end | end | ||
Line 448: | Line 469: | ||
:wikitext(args.title) | :wikitext(args.title) | ||
end | end | ||
structure_infobox_common() | |||
return loadTemplateStyles() .. root | return loadTemplateStyles() .. root | ||
end | end |