Wikipedia:Route diagram template

The route diagram templates encompass a main container, named Routemap or BS-map, and its auxiliary templates, most of them having BS (German: BahnStrecke) at the root of their name. This system provides a uniform layout for route-map infoboxes, mainly for railway lines but also for other modes of transport such as waterways. The more efficient Routemap template should be considered when creating new diagrams.

Each a map is built as a stack of rows, whose most significant part is a cell lining up one or several square or rectangular icons. There are more than 3,000 of these elementary pictograms. Several methods are provided to add text to each row and comments to individual graphic cells.

Standalone map container
 BS-map   Routemap   

Template BS-map acts as a container for a stack of BSn templates (described below), each of them describing a row of the resulting structure. This stack is given to the template as the value of the map parameter. Beside this stack of row describers, various parameters can be given to describe the global behavior of the resulting map. They are: 

Note re width: No default value because it will void the tw parameter in the BSn row template which is applied to override the text column width of BSn row collapsible section.

Differences between BS-map and Routemap
{|class=wikitable ! scope="col" | BS-map ! scope="col" | Routemap ! scope="row" | Row syntax

! scope="row" | Icon separator ! scope="row" | Overlays ! scope="row" | Text column separator
 * icon
 * icon
 * – which is heavily used in Wiki table syntax – must be replaced by . For example,   is coded as , and   as  . Otherwise, the presence of the bar will corrupt the structure of the template and following article content. This is because when processing a template, the bar functions as a parameter separating entries, which overrides other functions.
 * When a visual separator is desired in text fields, the Unicode Box Drawing character  should be used. (It is visually similar to the vertical bar, but ignored by Wiki markup.) This character can be coded in HTML by  . In Microsoft Windows it can be input directly from the keyboard by holding down Alt, followed by +2503 on the numeric keypad; or the sequence 2503Alt.
 * When a visual separator is desired in text fields, the Unicode Box Drawing character  should be used. (It is visually similar to the vertical bar, but ignored by Wiki markup.) This character can be coded in HTML by  . In Microsoft Windows it can be input directly from the keyboard by holding down Alt, followed by +2503 on the numeric keypad; or the sequence 2503Alt.

Transcluding map in other infoboxes
Besides standalone BS-map, row templates can be transcluded in other infobox templates such as Infobox rail line or Infobox public transit. The map syntax by BS row templates needs to be written in a separate template page and then transcluded in the infobox.

BS-map rows with icons and text
The real meat of designing the map are the templates BS$n$. Here BS is the German abbreviation of Bahnstrecke for railway line, and the number $n$ indicate how many horizontal icons are put side by side to form the required picture. Templates BS$n$ differ by the number of text parameters that are given after the $n$ icon names. We have:

Both kind of templates result in a row made of four cells (and, at the end, in a  structure containing four   structures).

BS$n$ row templates
When $n$>1, the unnamed parameters describing the text areas are shifted to make way for extra icon grids sequentially. Therefore, the unnamed (sequential) parameters of BS, BS2, BS3 are as follows:

These parameters are used to build four columns as follows:

When adding special styling in the text columns, be careful because the equals sign = will generate unexpected result because it functions exclusively as part of the named parameter syntax in the template (as text columns apply unnamed parameters). This can be bypassed by replacing the equals sign with  as in the case with vertical bar (pipe) that must be coded as !.

Cosmetic remark
Sometimes applying both main text and Comment in the same row may cause the whole map to stretch too wide because there is some very long Comment text in another row regardless whether the main text and note 1 cells of that row are applied or not. This can be fixed by moving the Comment to note 1. If aligning to right is still highly desired, nest the note 1 text with.

Remark: at present, this doesn't always work well with some web browsers. Some further research has to be done before this feature can be reused safely.

Named parameters
All BS row templates have named (designated) parameters, providing advanced functions (beware of the uppercase/lowercase alphabets of the parameter names). They are the same for the BS$n$ templates (except for tw-left). For a given $n$, letter $n$ designs a non greater integer, i.e. 1≤$n$≤$n$. Most of the time, $n$=1 is coded by nothing, rather than by "1".
 * bg: Use color name or HTML RGB hex code (with prefix # ) as background to "highlight" or to emphasize certain sections, transparent by default
 * tw: Width of the Right Text column.
 * tw-left: Width of the Left Text column. This is especially required for joining the icons cohesively when the text length in the "normal" BS row template text column is not wide enough to override the BS row collapsible sections.
 * PX, PX2,... PX$n$: size of the icon (e.g. PX=50px). Parameter PX is the default value of the PX2...PX$n$, while BSpx is the default value of PX (actually, this amounts to x20px, coding for 20px high. This parameter acts only on its row.
 * O($n$)($n$) (Oh,p,q, not zero,p,q). These parameters are user to describe the icons overlay. For more details, see the overlay section.
 * alt1, alt2,... alt$n$: User-defined alt attribute for the icon image to override the alt text generated by BS-alt. See also Alternative text for images. Note that this parameter has been deprecated and is no longer in use.
 * L1, L2,... L$n$, etc.: User-defined internal link for the icon image to override the default link to file description page of the icon.

|PX=40px|bg=#ccccff|O1=CSTR|O12=uSTRq|tw=500px|L1=Train station}} }}

Lining up BS row templates
}}


 * map2-title=Example 2
 * map2=


 * map3-title=Example 3
 * map3=


 * map4-title=Example 4
 * map4=

}}

Except for BS, all BS$n$ row templates will join the icons in the same row cohesively, unless separated by an empty entry. To join the icons vertically, just open the same new BS row template and continue. (Example 1)

Editor can also line up different BS$n$ row templates, because their icon column is set to align to center. This is usually done by joining odd number row template by odd number row template, even number row template by even number row template, in order to omit the need of empty entry to stack up grid space. In examples 2 and 3, the only icon of BS joins the 2nd icon of BS3 vertically; and the 2nd and 3rd icons of BS4 join the 1st and 2nd icons of BS2 respectively.

When joining odd and even number row templates (example 4), specialized icons such as and  (supplementary corner) are required to patch the seam smoothly. (See branching icons catalog.)

Icons repositories
These pages describe the pictograms which are currently available. Watercourse pictograms, for rivers and canals, are listed separately.

The conventional file name format for this project's icons is:. In route diagram templates, an editor only needs to type the ID to display the desired icon. The name of a pictogram, or ID, is constructed from prefix&thinsp;+&thinsp;ROOT&thinsp;+&thinsp;suffix jointly (e.g. formed from u STR lg). The prefix and suffix are usually in lowercase, and the ROOT is all caps to distinguish it. All icons contain at least one ROOT, but may combine two or more to form some complex icons. Affixes mostly vary the base icon's color, directional, structure, etc. and may not apply to simple icons.

Because of the number of projects using these icons, additional codes have been created for special uses, including parallel routes and type changes.

Overlay
If a required icon does not exist it may be produced from two to six existing icons using the overlay parameter to superimpose one icon over another. Add the overlay parameters in the BSn row template. O1 corresponds to the first (leftmost) place in the cell (icon grid), O2 to the second place in the cell, etc. More precisely, for a cell comprising n icons side by side, we have:


 * O1 (Letter O one, not zero one), O12, O13, O14, O15: ID of an icon to overlay on the leftmost (p=1) icon of the cell, with five overlapping layers in maximum. The greater index of the parameter indicates the upper layer which is over the smaller (the base icon, described by 1 being at the bottom of the pile).
 * O2, O22, O23, O24, O25: ID of an icon to overlay on the 2nd leftmost (p=2) icon of the cell (the base icon, described by 2 being at the bottom of the pile).
 * Op, Op2, Op3, Op4, Op5: ID of an icon to overlay on the pth icon of the cell, etc.
 * Overlay parameters require a valid entry for the corresponding base icon cell. Otherwise the overlay icons will not be loaded, and the page will be categorized in.

}} }}

In order to allow the other editors to edit the diagram code more easily, it is a good practice to list the overlay icons immediately following the corresponding "base" icon entry. That way we humans do not need to look back and forth at the codes.

The following examples A and B give the same result, but example B is recommended: |O1=uSTRq|O12=lINT|O2=uSTRq}}

}}

Helper templates
There are a number of templates that assist and simplify the display of text in route diagrams.

Navbar
The navbar parameter of Routemap can be used to place view • talk • edit links in a route diagram that does not automatically insert them (for example, when formatted for use in an infobox). It should be given the name of the RDT, omitting the  prefix.

BScvt
This template displays a distance as two lines of text in a text field. The default input is miles, and the template calculates the kilometre equivalent.
 * Inserting the optional second parameter (any character) reverses the units.
 * Decimal values are supported.
 * The template automatically adds the units "mi" and "km" after the values.
 * Yards, chains and metres are also supported.

The text is right-aligned, but can be changed to left- by applying the parameter " ".

BSsplit
BSsplit displays two lines of text in a single row table.
 * The first two parameters are the two lines.
 * The third parameter (alternatively L) defines a shared wikilink for both lines of text (no  or   are needed).
 * The fourth parameter (alternatively 4anything) will change both lines to italic text. Any character or text can be used.
 * The fifth parameter (alternatively 5anything) will change both lines to bold text. Any character or text can be used.
 * Named parameter lineanything forces a separating line to appear. Any character or text can be used.
 * Named parameter  or   overrides the alignment inherited from the parent cell
 * Named parameters bg1 (top line) and bg2 (bottom line) are used to specify the background colors of the two displayed lines. They can be specified by providing a valid html color or a hex triplet.

The template also adjusts the text height so that it will not cause spaces to appear between the rows of icons.

BSto
The BSto template is intended for labeling connecting routes or adding other secondary information, as the second line is smaller and italicized. It also lacks a separating line. The optional  parameter will left- or right-justify text; if omitted it will default to "inherit". The optional  parameter controls italicization.

BSsrws
BSsrws displays a railway station name split over two lines of text in a single table row. The first and second parameters are the two lines, which are combined to form the station name. The words  are not needed. All the formatting options of BSsplit also apply to this template.

displays Stratford International and links to [[Stratford International railway station ]].


 * Do not use BSsplit, BSto or BSsrws inside the &#123;&#123;BS-collapsible}} row template. Due to their table-based design they will absorb the entire collapsible section and become completely invisible.

Stnlnk
Stnlnk (shortcut: ) expands its parameter to link to the appropriate railway station article, without displaying the text "railway station". It is generally preferred to use the station, unless there is a specific reason to link to the place itself.

RouteBox
The RouteBox (shortcut:) template displays a borderless box with colorable wikilinked text, suitable for displaying a route or line name in its own color.

Enlarge
The Enlarge template displays a magnifying glass icon that links to another RDT to illustrate a small area in greater detail.

RoutemapRouteIcon
A single arrowhead can be displayed using the RoutemapRouteIcon (shortcut: ) template.

Rail-interchange
The Rail-interchange (shortcut:) template is used to indicate types of connections. It places the appropriate icon (in some cases with a link) in a map row. Some cities have additional arguments for individual services, and sometimes options for modifying the display. A complete list of icons is at Template:Rail-interchange/doc.

BSflag
The BSflag template displays a colored flag to indicate a "flag" or request stop, and links to &#91;&#91;request stop]].

Jctrdt
The Jctrdt template will display a smaller highway shield with appropriate link for use in route diagram template rows.

UK road
This template displays a small icon with an appropriate link for A and B roads and Motorways in Great Britain.

Basic route diagram template
Note: The code here produces the adjoining map. It does not mean to reflect the current situation.

Style guide

 * If a station has a Wikipedia article, link to that rather than the town.
 * Avoid overlinkage to a city or railway when its occurrences are close together on the route map.
 * Connects lines should be linked to their own articles, particularly if there is a connection for passengers.
 * For vee stations, show the lines as already joined in the station to show the connection or use the interchange set. The inclusion of a vee station shows that it has not been overlooked.
 * At the ends of a line, show tracks which go further with a CONTinuation arrow:.
 * For lines branching off, specify "to X".
 * In general, other lines are shown in italics.
 * Template RoutemapRoute (shortcut: rmr) is an option to help describing in the text column with arrow icons ).
 * Crossing and connecting lines which are shown more than once can be connected with interruptions, but it should not normally be necessary to have more than two interruption icons in a row.
 * Note that WikiProject UK Waterways uses dotted lines to denote routes that are planned or under construction, in which case there is no restriction on the number needed.
 * At intermodal interchanges, it is not desirable to list all the routes of the other modes, just the mode(s). For example, at a central railway station it is enough to show, rather than   , etc.
 * In order to comply with the no original research and Wikipedia is not a crystal ball policies, information regarding planned and proposed features need to be verifiable with reliable sources.
 * When a map grows too large (such as this), it is recommended to not transclude the map inside an infobox or table which floats or aligns to the left or right, otherwise it would compress the adjacent main text into too narrow a space. This problem is exaggerated for user with low screen resolution. It is a good idea to center align the standalone table (as explained in BS-map). If a left- or right-aligned table is desired, adjust the map width for a minimum of 1024px display width in Monobook or Vector Wiki style. Setting the table to "collapsed" by default (by applying the parameter   in BS-map) also helps.
 * In rapid transit/light rail diagrams that show both canals and non-navigable waterways, the similarly-coloured cerulean icons can be used to distinguish the former from the latter (.
 * If an unusual situation requires using an icon in a non-standard manner, give an explanation either on the text row with the icon, or by a note at the top or bottom of the map—separated by an empty row or horizontal line—showing the "misused" icon and its meaning.

Developer notes (Own icons)
In most case the icons available in Wikimedia Commons should be sufficient. However, if you think you need to create an icon of your own, please take note of the following points:


 * Check the icon catalog or Commons:category:BSicon and its subcategories to see if such icon already exists.
 * Think if the icon you need can be displayed by overlaying two to six existing icons.
 * Use SVG file format only. This can be done by using CORELDraw, Inkscape, Adobe Illustrator or an html/xml (text) editor.
 * Graphic size is not restricted, but it should be in square shape, usually 500 by 500px (half-width icons rectangular 250 by 500px; double-width icons 1000 by 500px). Keep in mind how the image will look like when resized in the diagram to the default height of 20 pixels.
 * The SVG file should not contain any raster graphic and all of its shapes should be done by vector tools.
 * The image should be licensed as PD-shape.
 * Never use copyrighted materials such as creatively designed logo per the Non-free content policy. The copyright status of an image can be checked on the file's description page. If you think a logo should be reclassified as copyright-ineligible due to being solely composed of typeface and/or simple geometry (to allow the logo to be used in a diagram), you may post a request or comment at Media copyright questions.
 * Follow the colour scheme and naming conventions listed in the catalog of pictograms and RDT colors.
 * Names should be of the form: "BSicon_prefixROOTsuffix.svg"
 * ROOT defines a general function/shape,
 * prefix specifies a color/style/usage, and
 * suffix is a shape modifier
 * redirects must be made for files containing diacritics from their dediacriticized name on Commons. For example file:BSicon BRUECKE.svg redirects to file:BSicon BRÜCKE.svg.
 * Tompw's Icon Generator may be used to easily create some types of new SVG icons.
 * Preview your SVG image using SVG Check. Your SVG image may not look the same in Wikimedia from your SVG application or browser due to different font library and SVG rendering engine.
 * Upload files to Wikimedia Commons into Icons for railway descriptions or one of its sub-categories. The more specific the category the better. If you are uncertain, just apply the general category BSicon and wait for another editor to change it.
 * If you are incapable or having trouble creating icon, post your question at Commons:Talk:BSicon/New icons and icon requests.