Module:Infobox election/sandbox: Difference between revisions
Appearance
Content deleted Content added
skeleton |
WIP |
||
Line 2: | Line 2: | ||
local args = {} |
local args = {} |
||
local origArgs = {} |
local origArgs = {} |
||
local function notblank(v) |
|||
return (mw.text.trim(v or "") ~= "") |
|||
end |
|||
function p.infobox(frame) |
function p.infobox(frame) |
||
for k,v in frame:getParent().args do |
|||
if notblank(v) then origArgs[k] = mw.text.trim(v) end |
|||
end |
|||
for k,v in frame.args do |
|||
if notblank(v) then origArgs[k] = mw.text.trim(v) end |
|||
end |
|||
local width = math.max( |
|||
--debug |
|||
(origArgs.map_image or origArgs.map) and (mw.ustring.match((origArgs.map_size or 300),"(%d*)")) or 0, |
|||
⚫ | |||
(origArgs.map2_image or origArgs.map2) and (mw.ustring.match((origArgs.map2_size or 300),"(%d*)")) or 0, |
|||
(origArgs.map3_image or origArgs.map3) and (mw.ustring.match((origArgs.map3_size or 300),"(%d*)")) or 0, |
|||
(origArgs.map4_image or origArgs.map4) and (mw.ustring.match((origArgs.map4_size or 300),"(%d*)")) or 0 |
|||
) |
|||
local pagetitle = frame:getParent() and frame:getParent():getTitle() or frame:getTitle() |
|||
⚫ | |||
child = origArgs.child or origArgs.embed, |
|||
bodyclass = origArgs.election_date and origArgs.vevent or nil, |
|||
bodystyle = "line-height:1.5em;" .. ((width > 0) and ("width:"..width.."px;") or ""), |
|||
titleclass = "summary", |
|||
titlestyle = "font-size:125%;", |
|||
title = ((origArgs.child or origArgs.embed) == yes) |
|||
and (origArgs.election_name and '<div style="background-color:#ddd; font-size:120%; font-weight:bold">'..origArgs.election_name..'</div>') |
|||
or (origArgs.election_name or (frame:getParent() and frame:getParent():getTitle() or frame:getTitle())), |
|||
datastyle = "text-align:center;", |
|||
labelstyle = "width:5em;white-space:nowrap;", |
|||
subheaderstyle = "line-height:130%;", |
|||
subheader1 = origArgs.flag_image |
|||
and (require('Module:InfoboxImage').InfoboxImage( |
|||
⚫ | |||
image = origArgs.flag_image, |
|||
size = "50px", |
|||
alt = "", |
|||
link = "" |
|||
} } |
|||
) .. "<hr />") |
|||
or (require('Module:CountryData').gettable(mw.getCurrentFrame(),origArgs.country).alias and (require('Module:flag').deco( |
|||
frame:newChild{ title = frame:getTitle(), args = { |
|||
[1] = origArgs.country, |
|||
variant = origArgs.flag_year, |
|||
size = "50px" |
|||
} } |
|||
) .. "<hr />") ), |
|||
} |
|||
⚫ | |||
⚫ | |||
frame:newChild{ title = frame:getTitle(), args = args } |
|||
⚫ | |||
) |
|||
end |
end |
Latest revision as of 15:04, 14 March 2024
![]() | This is the module sandbox page for Module:Infobox election. |
local p = {}
local args = {}
local origArgs = {}
local function notblank(v)
return (mw.text.trim(v or "") ~= "")
end
function p.infobox(frame)
for k,v in frame:getParent().args do
if notblank(v) then origArgs[k] = mw.text.trim(v) end
end
for k,v in frame.args do
if notblank(v) then origArgs[k] = mw.text.trim(v) end
end
local width = math.max(
(origArgs.map_image or origArgs.map) and (mw.ustring.match((origArgs.map_size or 300),"(%d*)")) or 0,
(origArgs.map2_image or origArgs.map2) and (mw.ustring.match((origArgs.map2_size or 300),"(%d*)")) or 0,
(origArgs.map3_image or origArgs.map3) and (mw.ustring.match((origArgs.map3_size or 300),"(%d*)")) or 0,
(origArgs.map4_image or origArgs.map4) and (mw.ustring.match((origArgs.map4_size or 300),"(%d*)")) or 0
)
local pagetitle = frame:getParent() and frame:getParent():getTitle() or frame:getTitle()
args = {
child = origArgs.child or origArgs.embed,
bodyclass = origArgs.election_date and origArgs.vevent or nil,
bodystyle = "line-height:1.5em;" .. ((width > 0) and ("width:"..width.."px;") or ""),
titleclass = "summary",
titlestyle = "font-size:125%;",
title = ((origArgs.child or origArgs.embed) == yes)
and (origArgs.election_name and '<div style="background-color:#ddd; font-size:120%; font-weight:bold">'..origArgs.election_name..'</div>')
or (origArgs.election_name or (frame:getParent() and frame:getParent():getTitle() or frame:getTitle())),
datastyle = "text-align:center;",
labelstyle = "width:5em;white-space:nowrap;",
subheaderstyle = "line-height:130%;",
subheader1 = origArgs.flag_image
and (require('Module:InfoboxImage').InfoboxImage(
frame:newChild{ title = frame:getTitle(), args = {
image = origArgs.flag_image,
size = "50px",
alt = "",
link = ""
} }
) .. "<hr />")
or (require('Module:CountryData').gettable(mw.getCurrentFrame(),origArgs.country).alias and (require('Module:flag').deco(
frame:newChild{ title = frame:getTitle(), args = {
[1] = origArgs.country,
variant = origArgs.flag_year,
size = "50px"
} }
) .. "<hr />") ),
}
return require('Module:Infobox').infoboxTemplate(
frame:newChild{ title = frame:getTitle(), args = args }
)
end