This Lua module is used on approximately 7,700 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes at Wikipedia talk:High-risk templates before implementing them. |
This module is intended to be used to create and edit intricate sports brackets that cannot be made by Module:RoundN or Module:Team bracket. For example, additional headers (for double-elimination brackets; 3rd-, 5th-, 7th-place matches; etc), singular omitted matches (i.e., having a horizonal line instead of a match), and N-way brackets (N teams per match). The syntax is slightly more complicated than the aforementioned brackets, but simpler than using the standard wikitable code.
Usage
edit{{#invoke:Build bracket|main | rounds = | col1-headers = | col1-matches = | col2-headers = | col2-matches = ... | col1-col2-paths = | col2-col3-paths = ... }}
Parameters
editParameter | Description | Default |
---|---|---|
rounds |
number of rounds (columns). | 1
|
autocol |
set to yes to automatically set set maximum round to display based on entries. |
no
|
rows |
manually set the number of rows. | Automatic |
teams-per-match |
enter the number of teams in each match. Use colm-teams-per-match to set individual columns |
2
|
colm-headers |
(optional) enter the row numbers where headers are desired in column m. Separate entries with , . Half integer values are allowed. |
Automatic |
colm-matches |
enter the row numbers where a match is desired in column m. Matches take up two rows by default. Separate entries with , . Half integer values are allowed. |
|
RDmh-hide |
set to yes to hide the (alpha) hth header and all matches beneath it in column m unless any of those entries are non empty. Useful for consolation matches. |
|
colm-colm+1-paths |
enter the starting and ending row numbers, separated by - , from columns m and m+1 where a path is desired. Separate entries with , . Half integer values are allowed. |
|
colm-colm+1-cross |
enter the row number where paths intersect from column m to m+1. | |
RDm-altname |
Alternate name for RDm (e.g., if |RD1-altname=first , then first-team1 can be used instead of RD1-team1 ). Use RDmh-altname for cells under header mh. |
|
text-altname |
Alternate name for RDm-textk (e.g., if |text-altname=details , then RDm-details1 can be used instead of RDm-text1 ). |
|
maxround |
final round to display. This parameter should be omitted unless it is less than the default value set by rounds . |
|
minround |
first round to display. | 1
|
height |
the amount of vertical visibility desired for the bracket. Creates a vertical scroll bar. Enter a number with units (e.g., 30em or 480px ). |
|
col-spacing |
the amount of horizontal space between rounds. Enter as a plain number (e.g., 10 for 10px). |
5
|
seed-width |
the width of the cells for seeds. Plain numbers are assumed to be in px units (e.g., 25 for 25px 2em for 2em) |
25
|
team-width |
the width of the cells for team names. Plain numbers are assumed to be in px units (e.g., 200 for 200px or 15em for 15em) |
150
|
score-width |
the width of the cells for scores. Plain numbers are assumed to be in px units (e.g., 25 or 25px 2em for 2em) |
25
|
agg-width |
the width of the cells for aggregate scores. score-width will change aggregate score widths unless this parameter is used. Plain numbers are assumed to be in px units (e.g., 25 or 25px 2em for 2em) |
25
|
seeds |
set to no to omit seeds in in all matches. set to yes to show seed cells to show for all matches. |
|
legs |
the number of legs for all rounds. Use RDm-legs to individually set columns. Use RDm-legsk to individually set teams. |
1
|
autolegs |
set to yes to automatically generate score cells per team. If legs or RDm-legs is used, autolegs will be set to no . |
no
|
byes |
set to yes to hide any team cells that are empty. Alternatively, set to m to have rounds 1 through m hide any team cells that are empty. Use RDm-byes for just matches under column m. Use RDmh-byes for just matches under header h only in column m. |
no
|
show-bye-paths |
set to yes to replace any team cells that that are hidden byes with a path. |
no
|
aggregate |
set to yes to add an aggregate score box to each match. Only matches with two or more legs will show the aggregate score box. |
no
|
boldwinner |
set to yes to automatically bold the seed/team/score with the higher score in each match. |
no
|
shift |
vertically shifts all of the entries by the number entered. Use RDm-shift for individual in columns. |
0
|
RDm , RDmh |
The header text of the (alpha hth) header in column m (e.g., RD1 or RD1a for the first header and RD1b for the second header in column 1). |
|
RDm-seedk |
The seed of the kth team in column m. Alternatively, use RDmh-seedk for the kth team under header mh. |
|
RDm-teamk |
The name of the kth team in column m. Alternatively, use RDmh-teamk for the kth team under header mh. |
|
RDm-scorek |
The score of the kth team in column m. Alternatively, use RDmh-scorek for the kth team under header mh. Append the suffix -l for the lth leg or -agg for the aggregate score. |
|
RDm-textk |
The text above the kth match in column m. Alternatively, use RDmh-textk for the kth match under header mh. |
|
RDm-groupk |
The text for the kth group in column m. Group text will appear to the left of whenever two paths meet. | |
RD-shade |
the background color (in hex format, e.g. #ABCDEF ) of all headers. Use RDm-shade or RDmh-shade for individual headers. |
#F2F2F2
|
RDm-RD(m+1)-path [a] |
set to no or 0 to omit the paths from round m to round m+1. |
yes
|
paramstyle [b] |
set to numbered change the parameter name style of RDm-textk , RDm-seedk , RDm-teamk , and RDm-scorek to a numbered notation (|1= ,|2= ...). Set |seeds=yes add seeds. |
indexed
|
Parameter hierarchy
edit- Whenever there are multiple headers in a single column, more than one parameter may be assigned to a cell value. For example, in the following bracket, both
|RD1-team3=
and|RD1b-team1=
can be used to assign the third team in the first column. By default, entries with subheader prefixes will override those without. In the below example,RD1b-team1
will override any value that has been set byRD1-team3
.
Upper round | |||
Lower round | |||
RD1-team3 or RD1b-team1 | |||
- Parameters used in articles take precedence over parameters used in the template itself. For example, suppose ArticleX used the template NTeamBracket, and suppose NTeamBracket had the parameter
|RD1-seed1=1
set. If ArticleX implemented{{NTeamBracket|RD1-seed1=2}}
, then the first team in round 1 would have a seed of 2.
Path codes
Path codes are entered in the form a-b
, where a
is associated match in the first column, and b
is associated match in the second column. Path codes can be grouped; for example, (a,b)-c
is equivalent to a-c, b-c
. To add color, append :color
to the end of a path, e.g. 3-5:red
. Only one extra color can be used in a bracket.
Example | Output | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1-3
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(1,5)-3
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3-1,3-5:red
|
Examples
editNote: These are only examples to illustrate parameters. Standard 4-team, 8-team, etc. brackets are better handled by Module:Team bracket.
Standard 4-team bracket
{{#invoke:Build bracket|main | rounds=2 | col1-headers = 1 | col2-headers = 1 | col1-matches = 3,7 | col2-matches = 5 | col1-col2-paths = (3,7)-5 <!-- Defaults --> | RD2 = Grand Final | RD1-seed1 = 1 | RD1-seed3 = 2 }}
Semifinals | Grand Final | |||||||
1 | ||||||||
2 | ||||||||
3-way bracket
{{#invoke:Build bracket|main | rounds=2 | teams-per-match = 3 | col1-headers = 1 | col2-headers = 1 | col1-matches = 3,7,11 | col2-matches = 7 | col1-col2-paths = (3,7,11)-7 }}
Semifinals | Final | |||||||
Double-elimination bracket
{{#invoke:Build bracket|main | rounds=4 | col1-headers = 1,7 | col2-headers = 1,7 | col3-headers = 7 | col4-headers = 1 | col1-matches = 4,11 | col2-matches = 3,10 | col3-matches = 9 | col4-matches = 6 | col1-col2-paths = 4-3, 11-10 | col2-col3-paths = 3-3, 10-9 | col3-col4-paths = (3,9)-6 <!-- Defaults --> | RD1 = Upper round 1 | RD2 = Upper final | RD3b = Lower final }}
Upper round 1 | Upper final | Final | ||||||||||||||||
Lower round 1 | Lower round 2 | Lower final | ||||||||||||||||
Crossing paths
{{#invoke:Build bracket|main | rounds=2 | col1-matches = 3,7 | col2-matches = 3,7 | col1-col2-paths = 3-7, 7-3 | col1-col2-cross = 5 }}
Semifinals | Final | ||||||||
Text
edit{{#invoke:Build bracket|main | rounds=2 | col1-matches = 3,6 | col2-matches = 4.5 | col1-col2-paths = (3,6)-4.5 | RD1-text1 = Text 1 | RD1-text2 = Text 2 | RD2-text1 = Text 3 }}
Semifinals | Final | |||||||
Text 1 | ||||||||
Text 3 | ||||||||
Text 2 | ||||||||
Groups
edit{{#invoke:Build bracket|main | rounds=3 | col1-matches = 3,6,9,12 | col2-matches = 4.5,10.5 | col3-matches = 7.5 | col1-col2-paths = (3,6)-4.5, (9,12)-10.5 | col2-col3-paths = (4.5,10.5)-7.5 | RD1-group1 = Group 1 | RD1-group2 = Group 2 | RD2-group1 = Group 3 }}
Quarterfinals | Semifinals | Final | |||||||||||
Group 1 | |||||||||||||
Group 3 | |||||||||||||
Group 2 | |||||||||||||
Legs and aggregate
edit{{#invoke:Build bracket|main | rounds=3 | legs = 2 | RD1-legs = 3 | aggregate = y | col1-matches = 3,6,9,12 | col2-matches = 4.5,10.5 | col3-matches = 7.5 | col1-col2-paths = (3,6)-4.5, (9,12)-10.5 | col2-col3-paths = (4.5,10.5)-7.5 }}
Quarterfinals | Semifinals | Final | ||||||||||||||||||
Byes
edit{{#invoke:Build bracket|main | rounds=3 | RD1-byes = y | col1-matches = 3,6,9,12 | col2-matches = 4.5,10.5 | col3-matches = 7.5 | col1-col2-paths = (3,6)-4.5, (9,12)-10.5 | col2-col3-paths = (4.5,10.5)-7.5 | RD1-team1 = Team 1 | RD1-team2 = Team 2 }}
Quarterfinals | Semifinals | Final | |||||||||||
Team 1 | |||||||||||||
Team 2 | |||||||||||||
Numbered parameters
edit{{#invoke:Build bracket|main | rounds=2 | col1-matches = 3,7 | col2-matches = 5 | col1-col2-paths = (3,7)-5 | paramstyle = numbered | seeds = yes | Text 1 | 1 | Team 1 | 5 | 4 | Team 2 | 11 | Text 2 | 2 | Team 3 | 6 | 3 | Team 4 | 3 | Text 3 | 4 | Team 2 | 2 | 2 | Team 3 | 1 }}
Semifinals | Final | |||||||
Text 1 | ||||||||
1 | Team 1 | 5 | ||||||
4 | Team 2 | 11 | Text 3 | |||||
4 | Team 2 | 2 | ||||||
Text 2 | 2 | Team 3 | 1 | |||||
2 | Team 3 | 6 | ||||||
3 | Team 4 | 3 | ||||||
Bold winner
{{#invoke:Build bracket|main | rounds=2 | legs = 3 | boldwinner=y | col1-matches = 3,7 | col2-matches = 5 | col1-col2-paths = (3,7)-5 | RD1-seed1 = 1 | RD1-team1 = Team 1 | RD1-score1-1 = 5 | RD1-score1-2 = 12 | RD1-score1-3 = 15 | RD1-seed2 = 4 | RD1-team2 = Team 2 | RD1-score2-1 = 11 | RD1-score2-2 = 10 | RD1-score2-3 = 4 | RD1-seed3 = 2 | RD1-team3 = Team 3 | RD1-score3-1 = 6 | RD1-score3-2 = 13 | RD1-score3-3 = {{ndash}} | RD1-seed4 = 3 | RD1-team4 = Team 4 | RD1-score4-1 = 3 | RD1-score4-2 = 2 | RD1-score4-3 = {{ndash}} | RD2-seed1 = 4 | RD2-team1 = Team 2 | RD2-score1-1 = 2 | RD2-score1-2 = 2 | RD2-score1-3 = 5 | RD2-seed2 = 2 | RD2-team2 = Team 3 | RD2-score2-1 = 1 | RD2-score2-2 = 7 | RD2-score2-3 = 2 }}
Semifinals | Final | |||||||||||
1 | Team 1 | 5 | 12 | 15 | ||||||||
4 | Team 2 | 11 | 10 | 4 | ||||||||
4 | Team 2 | 2 | 2 | 5 | ||||||||
2 | Team 3 | 1 | 7 | 2 | ||||||||
2 | Team 3 | 6 | 13 | – | ||||||||
3 | Team 4 | 3 | 2 | – | ||||||||