Module:Navbox: Difference between revisions
undo clear |
switch over to wikitable for readability and to mimic infobox; address spacing issues on mobile; fix up comments |
||
Line 4: | Line 4: | ||
local yesno = require("Module:Yesno") | local yesno = require("Module:Yesno") | ||
local p = {} | local p = {} | ||
-- Header/footer row | -- Header/footer row | ||
function p.navbox_header_footer(row_content) | function p.navbox_header_footer(row_content) | ||
local row = | local row = "|-\n" | ||
.. ' | .. '| colspan="2" style="font-size: 0.8em; text-align: center; background-color: #eaecf0; padding: 0em; border: 1px solid white;" | ' .. row_content .. "\n" | ||
return row | return row | ||
Line 26: | Line 19: | ||
local is_row_navbox = row_content["Is Navbox"] | local is_row_navbox = row_content["Is Navbox"] | ||
local row = | local row = "|-\n" | ||
if row_header == nil then | if row_header == nil then | ||
-- Headerless row | -- Headerless row; takes up two cells | ||
if is_row_navbox then | if is_row_navbox then | ||
-- Row data is a child navbox | -- Row data is a child navbox; data cell has no padding | ||
row = row .. ' | row = row | ||
.. '| style="padding: 0;" colspan="2" | \n' | |||
.. row_data .. "\n" | |||
else | else | ||
-- Row data is normal data | -- Row data is normal data | ||
row = row .. ' | row = row .. '| style="font-size: 0.9em; padding: 0.25em 0.5em;" colspan="2" | ' .. row_data .. "\n" | ||
end | end | ||
else | else | ||
-- | -- Row with header and data | ||
if is_row_navbox then | if is_row_navbox then | ||
-- Row data is a child navbox | -- Row data is a child navbox; data cell has no padding | ||
row = row | row = row | ||
.. '! style="white-space: nowrap; font-size: 0.9em; width: 5%; text-align: right; background-color: #eaecf0; padding: 0.25em 0.5em; border: 1px solid white;" |' .. row_header .. "\n" | |||
.. '| style="padding: 0;" |\n' | |||
.. ' | .. row_data .. "\n" | ||
else | else | ||
-- Row data is normal data | -- Row data is normal data | ||
row = row | row = row | ||
.. ' | .. '! style="white-space: nowrap; font-size: 0.9em; width: 5%; text-align: right; background-color: #eaecf0; padding: 0.25em 0.5em; border: 1px solid white;" |' .. row_header .. "\n" | ||
.. ' | .. '| style="font-size: 0.9em; padding: 0.25em 0.5em;" | ' .. row_data .. "\n" | ||
end | end | ||
end | end | ||
return row | return row | ||
Line 62: | Line 56: | ||
local navbox_title = '' | local navbox_title = '' | ||
if title ~= nil then | if title ~= nil then | ||
navbox_title = | navbox_title = "|-\n" | ||
.. ' | .. '! style="' .. (is_root_navbox and '' or 'font-size: 0.9em; ') .. 'text-align: center; background-color: #eaecf0; white-space: nowrap; padding: 0.25em 0.5em; border: 1px solid white;" colspan="2" | ' .. navbox_title .. "\n" | ||
end | end | ||
return navbox_title | return navbox_title | ||
Line 82: | Line 75: | ||
local navbox = '' | local navbox = '' | ||
if navbox_type == "Nested" then | if navbox_type == "Nested" then | ||
-- Navbox has a title | -- Navbox has a title, wikitable border, collapse options, and extra | ||
-- | -- margin. | ||
-- This navbox is meant to be a sub-navbox, placed on a headerless row. | -- This navbox is meant to be a sub-navbox, placed on a headerless row. | ||
navbox = '<div class="wikitable" style="margin: 2px;">\n' | navbox = '<div class="wikitable" style="overflow-x: auto; padding: 0; margin: 2px;">\n' | ||
.. ' | .. '{| width="100%" style="mw-border-collapse: collapse; border-spacing: 0; margin: 0"' .. (is_collapsible and ('class="mw-collapsed"' .. (is_collapsed and 'mw-collapsed' or '')) or '') .. '\n' | ||
.. p.navbox_title(title, false) | .. p.navbox_title(title, false) | ||
Line 106: | Line 99: | ||
-- End of table | -- End of table | ||
navbox = navbox | navbox = navbox | ||
.. ' | .. '|}\n' | ||
.. '</div>' | .. '</div>' | ||
Line 124: | Line 117: | ||
-- Navbox has a title, wikitable border, and collapse options. | -- Navbox has a title, wikitable border, and collapse options. | ||
-- This navbox is a normal navbox or a nested navbox. | -- This navbox is a normal navbox or a nested navbox. | ||
navbox = '<div class="wikitable" style="overflow-x: auto;">\n' | navbox = '<div class="wikitable" style="overflow-x: auto; padding: 0">\n' | ||
.. ' | .. '{| width="100%" style="mw-border-collapse: collapse; border-spacing: 0; margin: 0"' .. (is_collapsible and ('class="mw-collapsed"' .. (is_collapsed and 'mw-collapsed' or '')) or '') .. '\n' | ||
.. p.navbox_title(title, | .. p.navbox_title(title, false) | ||
-- Add header | -- Add header | ||
Line 145: | Line 138: | ||
-- End of table | -- End of table | ||
navbox = navbox | navbox = navbox | ||
.. ' | .. '|}\n' | ||
.. '</div>' | .. '</div>' | ||
end | end |