Modul:Sports series: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan
Tidak ada ringkasan suntingan
Baris 6:
end
 
-- Function to check the existence of flagTemplate
local function templateExists(templateName)
local title = mw.title.new('TemplatTemplate:' .. templateName)
return title and title.exists
end
Baris 29 ⟶ 30:
local last_digit = n % 10
local last_two_digits = n % 100
if last_digit == 1 orand last_two_digits ~= 11 then
return n .. 'st'
elseif last_digit == 2 and last_two_digits ~= 12 then
return n .. 'nd'
elseif last_digit == 3 and last_two_digits ~= 13 then
return n .. 'rd'
else
return n .. 'th'
end
end
 
-- Function to replace wiki links with their display text or link text
local function replaceLink(match)
local pipePos = match:find("|")
if pipePos then
return match:sub(pipePos + 1, -3) -- Return text after the '|'
else
return match:sub(3, -3) -- Return text without the brackets
end
end
Baris 41 ⟶ 56:
if not score or score:match("^%s*$") then
return ''
end
 
-- Function to replace wiki links with their display text or link text
local function replaceLink(match)
local pipePos = match:find("|")
if pipePos then
return match:sub(pipePos + 1, -3) -- Return text after the '|'
else
return match:sub(3, -3) -- Return text without the brackets
end
end
 
Baris 57 ⟶ 62:
 
-- Remove MediaWiki's unique placeholder sequences for references
score = score:gsub('\127%\'"`UNIQ.-QINU`"%\'\127', '')
 
-- Remove superscript tags and their contents
Baris 63 ⟶ 68:
 
-- Convert dashes to a standard format
score = score:gsub('[–—―‒−]+', '-')
 
-- Strip all characters except numbers, dashes and parentheses
Baris 70 ⟶ 75:
 
-- Function to determine the winner based on scores within parentheses (first) or regular format (second)
local function determineWinner(cleanScorecleanAggregate, matchType, team1, team2, boldWinner, colorWinner, aggregate, isFBRStyle, legs, leg1Score, leg2Score, disableAwayGoals)
local team1Winner, team2Winner = false, false
local score1, score2
local manualBold = false
local manualColor = false
local isDraw = false
 
-- Handling for manual bolding
Baris 95 ⟶ 101:
end
 
-- Handling for manual coloring of team or aggregate cells
if team1 and type(team1) == 'string' then
manualColor1 = team1:find("''") and not (team1:gsub("''", ""):match("^%s*$"))
Baris 103 ⟶ 109:
manualColor2 = team2:find("''") and not (team2:gsub("''", ""):match("^%s*$"))
team2 = team2:gsub("''", "")
end
if aggregate then
if aggregate:find("'''") then
aggregate = aggregate:gsub("'''", "")
aggregate = "<strong>" .. aggregate .. "</strong>"
end
manualColorDraw = aggregate:find("''") and not (aggregate:gsub("''", ""):match("^%s*$"))
aggregate = aggregate:gsub("''", "")
end
 
Baris 117 ⟶ 131:
manualColor = true
end
if manualColorDraw then
 
isDraw = true
-- Additional check for empty team names in NT matches
manualColor = true
if matchType == 'NT' and ((not team1 or team1:match("^%s*$")) or (not team2 or team2:match("^%s*$"))) then
-- Skip further processing if either team name is effectively empty
return team1, team2, team1Winner, team2Winner, manualBold, manualColor
end
 
-- Regular winner determination logic if manual bolding or coloring is not conclusive
if not team1Winner and not team2Winner and not isDraw and (boldWinner or colorWinner or isFBRStyle) then
local parenthetical = cleanScorecleanAggregate:match('%((%d+%-+%d+)%)')
local outsideParenthetical = cleanScorecleanAggregate:match('^(%d+%-+%d+)')
if parenthetical then -- Prioritize checking score inside parenthetical
score1, score2 = parenthetical:match('(%d+)%-+(%d+)')
elseif outsideParenthetical then
Baris 135 ⟶ 147:
 
if score1 and score2 then
team1Winnerscore1 = tonumber(score1)
> score2 = tonumber(score2)
team2Winner = tonumber(score1) < tonumber(score2)
if score1 > score2 then
team1Winner = true
elseif score1 < score2 then
team2Winner = true
elseif score1 == score2 and legs == 2 and not disableAwayGoals then
-- Apply away goals rule
local cleanLeg1 = cleanScore(leg1Score):gsub('[()]', '')
local cleanLeg2 = cleanScore(leg2Score):gsub('[()]', '')
local _, team2AwayGoals = cleanLeg1:match('(%d+)%-+(%d+)')
local team1AwayGoals = cleanLeg2:match('(%d+)%-+(%d+)')
 
if team1AwayGoals and team2AwayGoals then
team1AwayGoals, team2AwayGoals = tonumber(team1AwayGoals), tonumber(team2AwayGoals)
if team1AwayGoals > team2AwayGoals then
team1Winner = true
elseif team2AwayGoals > team1AwayGoals then
team2Winner = true
end
end
end
if (colorWinner or isFBRStyle) and legs == 0 then
isDraw = not team1Winner and not team2Winner
end
end
end
 
return team1, team2, team1Winner, team2Winner, manualBold, manualColor, isDraw, aggregate
end
 
Baris 151 ⟶ 189:
end
return false
end
 
-- Function to add a legend to below the table when isFBRStyle is true
local function createFBRLegend()
return mw.html.create('div')
:css('font-size', '90%')
:css('margin-bottom', '0.5em')
:wikitext("Legend: Blue = home team win; Yellow = draw; Red = away team win.")
end
 
-- Function to check whether to reduce font size for upcoming matches
local function checkSmallText(str)
-- Check for font size or small/big HTML tags
if str:match("font%s?%-?size") or str:match("<small>") or str:match("<big>") then
return false
end
 
-- Remove MediaWiki's unique placeholder sequences for references
str = str:gsub('\127%\'"`UNIQ.-QINU`"%\'\127', '')
 
-- Remove superscript tags and their contents
str = str:gsub('<sup.->.-</sup>', '')
 
-- Check for walkover-related strings (never shown in small text)
if str:lower():match("walkover") or str:lower():match("w%.o%.") or str:lower():match("w/o") then
return false
end
 
-- Replace wiki links with their display text or link text
str = str:gsub("%[%[.-%]%]", replaceLink)
 
-- Remove all text inside parentheses
str = str:gsub("%b()", "")
 
-- Exit if string contains only en/em dash
if str == "—" or str == "–" then
return false
end
 
-- Convert dashes to a standard format
str = str:gsub('[–—―‒−]+', '-')
 
-- Remove opening and closing HTML tags
str = str:gsub("</?%w+[^>]*>", "")
 
-- Remove all whitespace
str = str:gsub("%s+", "")
 
-- Check if the string matches only a scoreline
if str:match("^%d+-%d+$") then
return false
else
return true
end
end
 
-- Function to format the dashes and winning notes for aggregate/leg score parameters
local function format_score(s, noWrap)
if not s then return '' end -- Return empty string if input is nil
 
local function format_dash(pattern)
s = mw.ustring.gsub(s, '^' .. pattern, '%1–%2')
s = mw.ustring.gsub(s, '%(' .. pattern, '(%1–%2')
end
 
-- Format dashes
format_dash('%s*([%d%.]+)%s*[–—―‒−%-]%s*([%d%.]+)')
format_dash('%s*([%d%.]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d%.]+)')
format_dash('%s*(%[%[[^%[%]]*%|[%d%.]+)%s*[–—―‒−%-]%s*([%d%.]+)')
format_dash('%s*(%[[^%[%]%s]*%s+[%d%.]+)%s*[–—―‒−%-]%s*([%d%.]+)')
format_dash('%s*(%[%[[^%[%]]*%|[%d%.]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d%.]+)')
format_dash('%s*(%[[^%[%]%s]*%s+[%d%.]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d%.]+)')
 
-- Format winning notes in brackets
if noWrap then
s = mw.ustring.gsub(s, '(%(%d+%s*–%s*%d+)%s+[Pp]%.?[EeSs]?%.?[NnOo]?%.?%)', '%1 [[Penalty shoot-out (association football)|p]])')
s = mw.ustring.gsub(s, '%([Aa]%.?[Ee]%.?[Tt]%.?%)', '([[Overtime (sports)#Association football|a.e.t.]])')
else
s = mw.ustring.gsub(s, '(%(%d+%s*–%s*%d+)%s+[Pp]%.?[EeSs]?%.?[NnOo]?%.?%)', '<span class="nowrap">%1 [[Penalty shoot-out (association football)|p]])</span>')
s = mw.ustring.gsub(s, '%([Aa]%.?[Ee]%.?[Tt]%.?%)', '<span class="nowrap">([[Overtime (sports)#Association football|a.e.t.]])</span>')
end
s = mw.ustring.gsub(s, '%([Aa]%.?[Gg]?%.?[Rr]?%.?%)', '([[Away goals rule|a]])')
 
return s
end
 
-- Function to rewrite anchor links of match scores
local function rewriteAnchorLinks(text, baselink)
if not text then
return text
end
return text:gsub('(%[%[)(#[^%[%]]*%|)', '%1' .. baselink .. '%2')
end
 
Baris 156 ⟶ 286:
function p.main(frame)
local args = require'Modul:Arguments'.getArgs(frame, {trim = true})
 
-- Check for section transclusion
local tsection = frame:getParent().args['transcludesection'] or frame:getParent().args['section'] or ''
local bsection = args['section'] or ''
if tsection ~= '' and bsection ~= '' then
if tsection ~= bsection then
return '' -- Return an empty string if sections don't match
end
end
 
local root = mw.html.create()
local matchType = (args.type == 'WNT' or args.type == 'MNT') and 'NT' or (args.type or 'club') -- Set default match type to 'club'
Baris 162 ⟶ 302:
local noFlagIcons = false
local fillBlanks = args.fill_blanks and (args.fill_blanks == 'y' or args.fill_blanks == 'yes' or args.fill_blanks == '1' or args.fill_blanks == 'true')
local solidCell = args.solid_cell and (args.solid_cell == 'y' or args.solid_cell == 'yes' or args.solid_cell == '1' or args.solid_cell == 'true' or args.solid_cell == 'grey' or args.solid_cell == 'gray')
local baselink = frame:getParent():getTitle()
if mw.title.getCurrentTitle().text == baselink then baselink = '' end
 
-- Process the font size parameter
local fontSize
if args.font_size then
-- Remove trailing '%' if present and convert to number
fontSize = tonumber((args.font_size:gsub('%s*%%$', '')))
if fontSize then
fontSize = math.max(fontSize, 85) -- Ensure font size is at least 85
end
end
-- Calculate the font size for small text
local smallFontSize
if fontSize then
smallFontSize = math.floor(((fontSize / 100) * 0.85) * 100)
else
smallFontSize = 85
end
 
-- Process flag parameter to determine flag template and variant
Baris 198 ⟶ 358:
 
local legs = (args.legs == '1' or args.legs == 'n' or args.legs == 'no' or args.legs == 'false' or args.legs == 'null' or args.legs == 'none' or args.legs == 'single' or args.legs == 'one') and 0 or tonumber(args.legs) or 2
if legs and legs < 0 then
legs = 2
end
local teamWidth = (tonumber(args['team_width']) and args['team_width'] .. 'px') or '250px'
local scoreWidth = (tonumber(args['score_width']) and args['score_width'] .. 'px') or '80px'
local boldWinner = not (args.bold_winner and== 'n' or (args.bold_winner == 'yno' or args.bold_winner == 'yes0' or args.bold_winner == '1false' or args.bold_winner == 'truenull')
local colorWinner = args.color_winner and (args.color_winner == 'y' or args.color_winner == 'yes' or args.color_winner == '1' or args.color_winner == 'true')
local matchesStyle = args.matches_style
local isFBRStyle = matchesStyle and matchesStyle:upper() == "FBR"
local isHA = args.h_a == 'y' or args.h_a == 'yes' or args.h_a == '1' or args.h_a == 'true'
local disableAwayGoals = args.away_goals == 'n' or args.away_goals == 'no' or args.away_goals == '0' or args.away_goals == 'false' or args.away_goals == 'null'
local disableSmallText = args.small_text == 'n' or args.small_text == 'no' or args.small_text == '0' or args.small_text == 'false' or args.small_text == 'null'
local noWrap = args.nowrap and (args.nowrap == 'y' or args.nowrap == 'yes' or args.nowrap == '1' or args.nowrap == 'true')
 
local tableClass = 'wikitable'
Baris 207 ⟶ 376:
if args.collapsed and (args.collapsed == 'y' or args.collapsed == 'yes' or args.collapsed == '1' or args.collapsed == 'true') then
tableClass = 'wikitable mw-collapsible mw-collapsed'
tableStyle = tableStyle .. ' width: 100%; text-align: center;'
end
if noWrap then
if args.nowrap and (args.nowrap == 'y' or args.nowrap == 'yes' or args.nowrap == '1' or args.nowrap == 'true') then
tableStyle = tableStyle .. ' white-space: nowrap;'
end
if fontSize then
tableStyle = tableStyle .. ' font-size: ' .. fontSize .. '%;'
end
 
Baris 219 ⟶ 391:
if args.id then
table:attr('id', args.id) -- Optional id parameter to allow anchor to table
end
 
-- Add FBR legend if isFBRStyle is true
if isFBRStyle and legs == 0 then
root:node(createFBRLegend())
isHA = true
end
 
Baris 234 ⟶ 412:
titleRow:tag('th')
:attr('colspan', colCount)
:cssattr('text-alignscope', 'centercolgroup')
:wikitext(args.title)
end
Baris 240 ⟶ 418:
-- Create the header row with team and score columns
local header = table:tag('tr')
local defaultTeam1 = (args.h_a == 'y' or args.h_a == 'yes' or args.h_a == '1' or args.h_a == 'true')isHA and 'Tim kandangHome' or 'TimTeam 1'
local defaultTeam2 = (args.h_a == 'y' or args.h_a == 'yes' or args.h_a == '1' or args.h_a == 'true')isHA and 'Tim tandangAway' or 'TimTeam 2'
header:tag('th')
:attr('scope', 'col')
:css('text-align', 'right')
:css('width', teamWidth)
:wikitext(args['team1'] or defaultTeam1)
header:tag('th')
header:tag('th'):css('width', scoreWidth):wikitext(args['aggregate'] or legs == 0 and 'Hasil' or 'Agregat')
:attr('scope', 'col')
header:tag('th'):css('text-align', 'left'):css('width', teamWidth):wikitext(args['team2'] or defaultTeam2)
:css('width', scoreWidth)
:wikitext(args['aggregate'] or legs == 0 and 'Score' or '[[Aggregate score|<abbr title="Aggregate score">Agg.</abbr>]]<span class="sr-only" style="border: 0; clip: rect(0, 0, 0, 0); clip-path: polygon(0px 0px, 0px 0px, 0px 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; white-space: nowrap;">Tooltip Aggregate score</span>')
header:tag('th')
:attr('scope', 'col')
:css('text-align', 'left')
:css('width', teamWidth)
:wikitext(args['team2'] or defaultTeam2)
 
-- Add columns for each leg if applicable
Baris 259 ⟶ 448:
-- Check if leg_prefix is y, yes, 1, or true
if args.leg_prefix == 'y' or args.leg_prefix == 'yes' or args.leg_prefix == '1' or args.leg_prefix == 'true' then
legHeading = 'LagaLeg ' .. leg
else
legHeading = args.leg_prefix .. ' ' .. leg
Baris 265 ⟶ 454:
-- Check if "leg_suffix" parameter is present and does not equal y, yes, 1, or true
elseif args.leg_suffix and args.leg_suffix ~= 'y' and args.leg_suffix ~= 'yes' and args.leg_suffix ~= '1' and args.leg_suffix ~= 'true' then
legHeading = args.leg_suffixordinal(leg) .. ' ' .. ordinal(leg)args.leg_suffix
else
legHeading = 'Laga 'ordinal(leg) .. ordinal(' leg)'
end
end
 
header:tag('th'):css('width', scoreWidth):wikitext(legHeading)
:attr('scope', 'col')
:css('width', scoreWidth)
:wikitext(legHeading)
end
end
Baris 285 ⟶ 477:
headingRow:tag('td')
:attr('colspan', colCount)
:css('text-align', 'center')
:css('background', 'whitesmoke')
:wikitext('<strong>' .. headingParam .. '</strong>')
Baris 291 ⟶ 482:
 
local row = table:tag('tr')
local team1, team2, aggregateScore, team2team1Icon, team2Icon, team1Variant, team2Variant
local team1Winner, team2Winner, manualBold, manualColor, isDraw = false, false, false, false, false
local leg1Score, leg2Score = false, false
local team1Asterick, team2Asterick = false, false
 
-- Process rows for both national team and club matches
if matchType == 'NT' then
-- Check if team parameter beings with an asterick instead of a country code, indicating a string will be displayed instead of national team flag
team1 = args[i]
if team1 and team1:match("^%s*%*") then
Baris 313 ⟶ 504:
team2, team2Variant = processIcon(args[i+2])
end
 
-- Clean the aggregate score
local cleanAggregate = cleanScore(aggregateScore)
-- Determine the winning team on aggregate
team1, team2, team1Winner, team2Winner, manualBold, manualColor = determineWinner(cleanAggregate, matchType, team1, team2, boldWinner, colorWinner)
-- Add background-color for winning team if set by user
local team1Style = team1Winner and ((colorWinner or manualColor) and 'background-color: #CCFFCC;' or '') .. 'text-align: right;' or 'text-align: right;'
local team2Style = team2Winner and ((colorWinner or manualColor) and 'background-color: #CCFFCC;' or '') .. 'text-align: left;' or 'text-align: left;'
-- Generate text to display for each team
local team1Text, team2Text
if flagParam1 then -- Check whether youth team flag template with age level is used
team1Text = (not team1Asterick and team1 ~= "" and team1 ~= nil) and (expandTemplate(frame, flagTemplate .. '-rt', {flagParam1, team1, variant = team1Variant})) or team1
team2Text = (not team2Asterick and team2 ~= "" and team2 ~= nil) and (expandTemplate(frame, flagTemplate, {flagParam1, team2, variant = team2Variant})) or team2
else -- Use standard national team flag template without age level
team1Text = (not team1Asterick and team1 ~= "" and team1 ~= nil) and (expandTemplate(frame, flagTemplate .. '-rt', {team1, variant = team1Variant})) or team1
team2Text = (not team2Asterick and team2 ~= "" and team2 ~= nil) and (expandTemplate(frame, flagTemplate, {team2, variant = team2Variant})) or team2
end
-- When set by user, adds blank flags when string is used for a team instead of national team flag template
if fillBlanks then
if team1Asterick then
team1Text = team1Text .. ' <span class="flagicon">[[Berkas:Flag placeholder.svg|25x17px|link=]]</span>'
end
if team2Asterick then
team2Text = '<span class="flagicon">[[Berkas:Flag placeholder.svg|25x17px|link=]]</span> ' .. team2Text
end
end
-- Create rows for aggregate score and team names, bolded if set by user
row:tag('td'):cssText(team1Style):wikitext((team1Winner and (boldWinner or manualBold)) and '<strong>' .. team1Text .. '</strong>' or team1Text)
row:tag('td'):css('text-align', 'center'):css('width', scoreWidth):wikitext(aggregateScore)
row:tag('td'):cssText(team2Style):wikitext((team2Winner and (boldWinner or manualBold)) and '<strong>' .. team2Text .. '</strong>' or team2Text)
else
-- Process rows for club matches
team1 = args[i]
if noFlagIcons then -- Remove use of flag icons if set by user
aggregateScore = args[i+1]
team2 = args[i+2]
Baris 355 ⟶ 515:
team2Icon, team2Variant = processIcon(args[i+4])
end
end
-- Clean the aggregate score
 
local cleanAggregate = cleanScore(aggregateScore)
-- DetermineName the winning1st/2nd teamleg onscores for two-legged aggregateties
if legs == 2 then
team1, team2, team1Winner, team2Winner, manualBold, manualColor = determineWinner(cleanAggregate, matchType, team1, team2, boldWinner, colorWinner)
--if AddmatchType background-color== for winning team if'NT' setor bynoFlagIcons userthen
leg1Score = args[i+3]
local team1Style = team1Winner and ((colorWinner or manualColor) and 'background-color: #CCFFCC;' or '') .. 'text-align: right;' or 'text-align: right;'
leg2Score = args[i+4]
local team2Style = team2Winner and ((colorWinner or manualColor) and 'background-color: #CCFFCC;' or '') .. 'text-align: left;' or 'text-align: left;'
else
-- Generate text, and flags (if not disabled), to display for each team
leg1Score = args[i+5]
local team1Text = noFlagIcons and team1 or (team1Icon ~= "" and team1Icon ~= nil) and (team1 .. ' ' .. expandTemplate(frame, flagTemplate, {team1Icon, variant = team1Variant})) or team1
leg2Score = args[i+6]
local team2Text = noFlagIcons and team2 or (team2Icon ~= "" and team2Icon ~= nil) and (expandTemplate(frame, flagTemplate, {team2Icon, variant = team2Variant}) .. ' ' .. team2) or team2
end
-- When set by user, adds blank flags when country code parameter is left blank
if fillBlanks thenend
 
if not noFlagIcons then
-- Clean the aggregate score
if not team1Icon or team1Icon == "" then
local cleanAggregate = cleanScore(aggregateScore)
team1Text = team1Text .. ' <span class="flagicon">[[Berkas:Flag placeholder.svg|25x17px|link=]]</span>'
-- Format and rewrite anchor links for aggregate endscore
aggregateScore = format_score(aggregateScore, noWrap)
if not team2Icon or team2Icon == "" then
if baselink ~= '' then
team2Text = '<span class="flagicon">[[Berkas:Flag placeholder.svg|25x17px|link=]]</span> ' .. team2Text
aggregateScore = rewriteAnchorLinks(aggregateScore, endbaselink)
end
 
-- Determine the winning team on aggregate
team1, team2, team1Winner, team2Winner, manualBold, manualColor, isDraw, aggregateScore = determineWinner(cleanAggregate, matchType, team1, team2, boldWinner, colorWinner, aggregateScore, isFBRStyle, legs, leg1Score, leg2Score, disableAwayGoals)
 
-- Add background-color for winning team if set by user
local team1Style = 'text-align: right;'
local team2Style = 'text-align: left;'
if team1Winner and (colorWinner or manualColor) then
team1Style = team1Style .. ' background-color: #CCFFCC;'
end
if team2Winner and (colorWinner or manualColor) then
team2Style = team2Style .. ' background-color: #CCFFCC;'
end
 
-- Generate text to display for each team
local team1Text, team2Text
if matchType == 'NT' then
if flagParam1 then -- Check whether youth team flag template with age level is used
team1Text = (not team1Asterick and team1 ~= "" and team1 ~= nil) and (expandTemplate(frame, flagTemplate .. '-rt', {flagParam1, team1, variant = team1Variant})) or (team1 ~= nil and team1 or "")
team2Text = (not team2Asterick and team2 ~= "" and team2 ~= nil) and (expandTemplate(frame, flagTemplate, {flagParam1, team2, variant = team2Variant})) or (team2 ~= nil and team2 or "")
else -- Use standard national team flag template without age level
team1Text = (not team1Asterick and team1 ~= "" and team1 ~= nil) and (expandTemplate(frame, flagTemplate .. '-rt', {team1, variant = team1Variant})) or (team1 ~= nil and team1 or "")
team2Text = (not team2Asterick and team2 ~= "" and team2 ~= nil) and (expandTemplate(frame, flagTemplate, {team2, variant = team2Variant})) or (team2 ~= nil and team2 or "")
end
else
team1Text = noFlagIcons and (team1 or '') or ((team1Icon ~= "" and team1Icon ~= nil) and ((team1 or '') .. ' ' .. expandTemplate(frame, flagTemplate, {team1Icon, variant = team1Variant})) or (team1 or ''))
team2Text = noFlagIcons and (team2 or '') or ((team2Icon ~= "" and team2Icon ~= nil) and (expandTemplate(frame, flagTemplate, {team2Icon, variant = team2Variant}) .. ' ' .. (team2 or '')) or (team2 or ''))
end
 
-- When set by user, adds blank flags when string is used for a team instead of national team flag template
if fillBlanks then
if matchType == 'NT' then
if team1Asterick then
team1Text = team1Text .. ' <span class="flagicon">[[File:Flag placeholder.svg|25x17px|link=]]</span>'
end
if team2Asterick then
team2Text = '<span class="flagicon">[[File:Flag placeholder.svg|25x17px|link=]]</span> ' .. team2Text
end
elseif not noFlagIcons then
if not team1Icon or team1Icon == "" then
team1Text = team1Text .. ' <span class="flagicon">[[File:Flag placeholder.svg|25x17px|link=]]</span>'
end
if not team2Icon or team2Icon == "" then
team2Text = '<span class="flagicon">[[File:Flag placeholder.svg|25x17px|link=]]</span> ' .. team2Text
end
end
-- Create rows for aggregate score and team names, bolded if set by user
row:tag('td'):cssText(team1Style):wikitext((team1Winner and (boldWinner or manualBold)) and '<strong>' .. team1Text .. '</strong>' or team1Text)
row:tag('td'):css('text-align', 'center'):css('width', scoreWidth):wikitext(aggregateScore)
row:tag('td'):cssText(team2Style):wikitext((team2Winner and (boldWinner or manualBold)) and '<strong>' .. team2Text .. '</strong>' or team2Text)
end
 
-- Create aggregate score cell with conditional styling
local aggregateStyle = ''
if legs == 0 and not disableSmallText and aggregateScore ~= '' and checkSmallText(aggregateScore) then
aggregateStyle = 'font-size: ' .. smallFontSize .. '%;'
end
if isFBRStyle and legs == 0 then
if team1Winner then
aggregateStyle = aggregateStyle .. 'background-color: #BBF3FF;'
elseif team2Winner then
aggregateStyle = aggregateStyle .. 'background-color: #FFBBBB;'
elseif isDraw then
aggregateStyle = aggregateStyle .. 'background-color: #FFFFBB;'
end
elseif isDraw then
aggregateStyle = aggregateStyle .. 'background-color: #FFFFBB;'
end
 
-- Create rows for aggregate score and team names, bolded if set by user
row:tag('td'):cssText(team1Style):wikitext((team1Winner and (boldWinner or manualBold) and team1Text ~= '') and ('<strong>' .. team1Text .. '</strong>') or team1Text)
row:tag('td'):cssText(aggregateStyle ~= '' and aggregateStyle or nil):wikitext(aggregateScore)
row:tag('td'):cssText(team2Style):wikitext((team2Winner and (boldWinner or manualBold) and team2Text ~= '') and ('<strong>' .. team2Text .. '</strong>') or team2Text)
 
-- Add columns for each leg score if applicable
Baris 387 ⟶ 610:
local legIndex = i + 4 + leg + (matchType == 'NT' and -2 or (noFlagIcons and -2 or 0))
local legScore = args[legIndex]
if legScore ~= "nullnil" then
row:tag('td'):css('text-align',if 'center'):css('width', scoreWidth):wikitext(legScore) == "null" then
if solidCell then
row:tag('td'):css('background', '#BBBBBB')
else
row:tag('td'):wikitext('—')
end
else
-- Format and rewrite anchor links for leg scores
legScore = format_score(legScore, noWrap)
if baselink ~= '' then
legScore = rewriteAnchorLinks(legScore, baselink)
end
local legStyle = ''
if not disableSmallText and legScore ~= '' and checkSmallText(legScore) then
legStyle = 'font-size: ' .. smallFontSize .. '%;'
end
-- Write cells for legs
row:tag('td'):cssText(legStyle ~= '' and legStyle or nil):wikitext(legScore)
end
end
end