Module:Infobox : Kalainan tali sa mga rebisyon
Content deleted Content added
imported from en:Module:Infobox |
No edit summary |
||
Linya 4:
local p = {}
local
local args = {}
local origArgs
local root
local function union(t1, t2)
-- Returns the union of the values of two tables, as a sequence.
local vals = {}
Linya 26:
return ret
end
local function getArgNums(prefix)
-- Returns a table containing the numbers of the arguments that exist
Linya 39:
return nums
end
local function addRow(rowArgs)
-- Adds a row to the infobox, with either a header cell
Linya 45:
if rowArgs.header then
root
:wikitext(rowArgs.header)
elseif rowArgs.data then
local row = root
row
row:cssText(rowArgs.rowstyle)
row:attr('id', rowArgs.rowid)
if rowArgs.label then
row
end
local dataCell = row
if not rowArgs.label then
dataCell
end
dataCell
:wikitext(rowArgs.data)
end
end
local function renderTitle()
if not args.title then return end
root
end
local function renderAboveRow()
if not args.above then return end
root
end
local function renderBelowRow()
if not args.below then return end
root
end
local function renderSubheaders()
if args.subheader then
Line 136 ⟶ 143:
end
end
local function renderImages()
if args.image then
Line 147 ⟶ 154:
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data =
if caption then
data
▲ .cssText(args.captionstyle)
▲ .wikitext(caption)
end
addRow({
Line 164 ⟶ 169:
end
end
local function renderRows()
-- Gets the union of the header and data argument numbers,
Line 177 ⟶ 182:
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
rowstyle = args['rowstyle' .. tostring(num)],
dataid = args['dataid' .. tostring(num)],
labelid = args['labelid' .. tostring(num)],
headerid = args['headerid' .. tostring(num)],
rowid = args['rowid' .. tostring(num)]
})
end
end
local function renderNavBar()
if not args.name then return end
root
}
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root
end
end
local function renderTrackingCategories()
if args.decat ~= 'yes' then
if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
root
end
if args.child == 'yes' and args.title then
root
end
end
end
local function _infobox()
-- Specify the overall layout of the infobox, with special settings
-- if the infobox is used as a 'child' inside another infobox.
if args.child ~= 'yes' then
root =
root
▲ .css('border-spacing', '3px')
if args.subbox == 'yes' then
root
else
root
end
root
renderTitle()
renderAboveRow()
else
root =
root
end
renderSubheaders()
renderImages()
Line 260 ⟶ 268:
renderItalicTitle()
renderTrackingCategories()
return tostring(root)
end
local function preprocessSingleArg(argName)
-- If the argument exists and isn't blank, add it to the argument table.
Line 271 ⟶ 279:
end
end
local function preprocessArgs(prefixTable, step)
-- Assign the parameters with the given prefixes to the args table, in order, in batches
Line 285 ⟶ 293:
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
Line 302 ⟶ 310:
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
Line 338 ⟶ 346:
origArgs = frame
end
-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- references etc. will display in the expected places. Parameters that depend on
Line 368 ⟶ 376:
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = '
{prefix = 'class'},
{prefix = 'dataid'},
{prefix = 'labelid'},
{prefix = 'headerid'},
{prefix = 'rowid'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
|