Module:Soldier: Difference between revisions
Military sidebar: years/battles/ribbons + branch emblems |
Awards rack: no TOC steal; full awards list under ribbons |
||
| Line 1,253: | Line 1,253: | ||
return '' | return '' | ||
end | end | ||
-- Split semicolon / <br> lists into bullets | -- Split semicolon / <br> lists into bullets | ||
local parts = {} | local parts = {} | ||
raw = mw.ustring.gsub(raw, '<br%s*/?>', ';') | raw = mw.ustring.gsub(raw, '<br%s*/?>', ';') | ||
for part in mw.text.gsplit(raw, ';', true) do | for part in mw.text.gsplit(raw, ';', true) do | ||
part = trim(part) | part = trim(part) | ||
part = mw.ustring.gsub(part, '^%*%s*', '') | |||
if part ~= '' then | if part ~= '' then | ||
table.insert(parts, '* ' .. part) | table.insert(parts, '* ' .. part) | ||
end | end | ||
end | end | ||
if #parts | if #parts == 0 then | ||
return | return '' | ||
end | end | ||
return table.concat(parts, '\n') | return table.concat(parts, '\n') | ||
| Line 1,495: | Line 1,496: | ||
local knownFor = prettyProse(parentArg(frame, 'known_for')) | local knownFor = prettyProse(parentArg(frame, 'known_for')) | ||
local awards = prettyProse(parentArg(frame, 'awards')) | local awards = prettyProse(parentArg(frame, 'awards')) | ||
local ribbonsRaw = parentArg(frame, 'awards_ribbons') | |||
-- Full medal list belongs under the body ribbon rack; keep infobox short | |||
if ribbonsRaw ~= '' and mw.ustring.len(awards) > 90 then | |||
local first = mw.ustring.match(awards, '^([^;]+)') | |||
awards = trim(first or awards) | |||
end | |||
local state = prettyPlace(parentArg(frame, 'state')) | local state = prettyPlace(parentArg(frame, 'state')) | ||
| Line 1,590: | Line 1,597: | ||
local ribbons = formatAwardsRibbons(parentArg(frame, 'awards_ribbons')) | local ribbons = formatAwardsRibbons(parentArg(frame, 'awards_ribbons')) | ||
local awardsText = formatAwardsLegend(parentArg(frame, 'awards')) | local awardsText = formatAwardsLegend(parentArg(frame, 'awards')) | ||
if ribbons == '' and awardsText == '' then | |||
if ribbons == '' then | |||
return '' | return '' | ||
end | end | ||
-- Use a styled div heading (not == wiki heading) so MediaWiki does not place | |||
-- the Contents box inside this block — JS moves the block after Biography. | |||
local parts = { | local parts = { | ||
'<div class="soldier-awards-section">', | '<div class="soldier-awards-section">', | ||
'= | '<div class="soldier-awards-heading">Awards and honors</div>', | ||
} | } | ||
if ribbons ~= '' then | |||
table.insert(parts, ribbons) | |||
end | |||
if awardsText ~= '' then | if awardsText ~= '' then | ||
table.insert(parts, '<div class="soldier-awards-list">') | |||
table.insert(parts, awardsText) | table.insert(parts, awardsText) | ||
table.insert(parts, '</div>') | |||
end | end | ||
table.insert(parts, '</div>') | table.insert(parts, '</div>') | ||