Themys Project: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. Such a map is built as a stack of rows, whose most significant part is a cell lining up one or several square 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.

Structure used before 2011


Before the creation of BS-map (in June 2011), the construction of a stand-alone map required several templates:
 * Railway line header
 * BS-header and
 * BS-table,

as shown in the diagram to the right. Currently (2016), this format is still used in many maps. However, this format is deprecated and only the BS-map template, which employs identical syntax, should be used as global container. The more efficient Routemap template should be considered when creating new diagrams.

<!-- The templates may be considered to be in two classes:
 * 1) General templates defining the product as a route map,
 * 2) Detailing templates carrying information row by row into the route map.

Master table margin style-defining templates

 * }

The opening of a "stand-alone" map (i.e. without transcluded into other template such as infobox.) They do not call for the table themselves, so follow the command  to call for a Wiki table. These templates also include the parameter for extra CSS styling and  to define the collapse state of the table.
 * }

Table title template
BS-header defines the text title of the table; use it right below the railway line header. They are not necessary especially when included in the infobox. But editor has the option to set the colors for both title background and font, thus indicate the livery color of the line.


 * Although there is the 5th unnamed parameter for defining table width, it is now recommended to define the table width in the outermost table header as shown above (CSS style syntax "width:600px" in the railway line header template.)
 * As per WP:COLOR, editor should take accessbility of color in mind. colorbox or a separate icon next to the map title is preferable over coloring the background of the text.

Railway company information template
The optional provision of the details of a railway company. Preferably used between the BS-header and BS-table. -->

Standalone map container
 BS-map 

 Routemap 

 

Template BS-map acts as a container for a stack of BSn, BSn-2 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 identical 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 identical 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.

Diagrams inside Infobox rail line templates
If an editor wishes to place an RDT inside an Infobox instead of having it stand alone, it is recommended that the Infobox rdt template be used instead of direct transclusion in order to prevent the diagram from "breaking apart". A complete explanation is at Template:Infobox rdt/doc.

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 said infobox and usually requires the help of other templates.

BS-map rows with icons and text
The real meat of designing the map are the templates BS$n$ and BS$n$-2. Here BS is the German abbreviation of Bahnstrecke for stretch of track, and the number $n$ indicate how many horizontal icons are put side by side to form the required picture. Templates BS$n$ and BS$n$-2 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). However, these structures are not the same for the BS$n$ and the BS$n$-2 templates: they cannot be mixed in the same map.

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.

BS$n$-2 row templates
BS$n$-2 templates place text on both sides of the diagram, without the Distance/Time column, as opposed to the previously-introduced BS$n$ row templates which only has text displayed to the right of the icon column(s). All named parameters of the BS$n$ row templates are also applicable here. These templates should not be used with other "right-Text only" BS$n$ row templates in the same diagram. An example is the demonstration at the top of this project page.

The unnamed parameters are:

These parameters are used to build four columns, in the following order:

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$ and the BS$n$-2 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. 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.
 * 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.

Lining up BS row templates
Except for BS and BS-2, 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.)

The same rules applies for BS$n$-2 templates, where the icon columns also align to center. However, mixing BS$n$ and BS$n$-2 rows should be avoided because it will ruin the layout of the whole map.

Icons repositories
These two pages describe the pictograms which are currently available. Page waterways pictograms lists  separately the icons to be used for watercourses. Another directory of icons can be found at Wikimedia Commons.

The conventional file name format for image of this project is as follow: BSicon_(pictogram ID).svg. In BSn row templates, editor only needs to type the ID for the desired icon. The name of a pictogram, or ID, is constructed by prefix, ROOT and suffix jointly (e.g. forming by u-STR-lg). Prefix and suffix are always lowercase but ROOT is all caps to distinguish from the affixes. All icons contain at least one ROOT, but may combine two or more to form some complex icons. Affixes mostly variate the "base" icon in color, directionality, 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 or BSn-2 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.
 * For rows of 11 or more icons (BS11, BS12, BS11-2, BS12-2, etc): use two digits to reference p, the icon number. In other words, use O01, O012, O013, O014, O015 for 1st icon, together with O12, O122, O123, O124, O125 for 12th icon, etc. In fact this is not logically required when n=11, but the doc was written that way. So we have &#123;&#123;BS11-2|O03= |O032=| already in use, and this can not be changed.
 * 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:

StartCollapsible
It is possible to make sections of BSn rows collapsible as if it were in a NavFrame. The collapsible section begins with a BSn-startCollapsible row template (lacking the parameters Right Text2, Comment and tw), then include other "ordinary" BSn row templates which are set to be collapsible in the map, finally a table closing syntax  to end the collapsible section. Parameter definitions are as follows:

{{BS-map {{BS|KBHFa|| |tw=450px}} {{BS-startCollapsible|LSTR|| |bg=#ccccff}}
 * title=Collapsible section
 * collapsible=no
 * legend=no
 * map=


 * }

}} }}


 * }

}}

If the map has a combined use of different BS# row templates, the editor should choose the startCollapsible template which provides the same icon grids quantity as the greatest BS# row template used in the map (e.g., use BS5-startCollapsible when BS5 is the largest row template used in the map).

In the startCollapsible template the color parameter bg colors the background of the entire collapsible section rather than its effect in ordinary BSn row templates which is confined to a single row. This clearly distinguishes between the non-collapsible and expanded collapsible sections.

Row replacement for Start-Collapsible
{{bsmap {{BS3-startCollapsible|CONTg|CONTg|CONTg||Row 0|bg=#ccf}} {{BS3-replace|ENDEa|KBHFa|ENDEa||Row 0 Replaced|bg=#ccf}} {{BS3|STR|STR|STR||Row 1}}
 * title=BS-replace
 * collapsible=0
 * legend=0
 * map=
 * }


 * }

}} {{bsmap {{BS3-startCollapsible|CONTg|CONTg|CONTg||Row 0|bg=#ccf}} {{BS3-replace|ENDEa|KBHFa|ENDEa||Row 0 Replaced|bg=#ccf}} {{BS3|STR|STR|STR||Row 1}}
 * title=BS-replace
 * collapsible=0
 * legend=0
 * map=
 * }


 * }

}}

BS-replace templates are supplementary to the BS-startCollapsible (BS-sc) row template that they replace, or more accurately, overlap over, the original BS-sc row template after expansion. The design aim is to make maps correct, both when collapsed and expanded. Because most maps use or  to indicate the section being collapsed, but these icons might not make sense when expanded. It works simply by placing the BS-replace (child) template under the BS-sc (parent) template to be replaced. The available parameters are same as the BS-sc templates. These templates are experimental and still require testing in various browsers. It might not work properly in IE7 or older browsers because they might shift BS-replace templates incorrectly after expansion.

Since BS-replace does not actually hide its parent BS-sc, if you have changed the background color of the BS-sc template with parameter, you should do the same for the child BS-replace template. If you want to hide the text in BS-sc (which is unnecessary in most case), you can use pad in the text cell of BS-replace and adjust the width that completely cover the text. Since the April 2013 update, if you want to cover the base icon with empty entry, you still need to use the icon to fill in the BS-replace icon cell manually, otherwise the BS-sc icon will still show up after expansion.

StartCollapsible and Row replacement for BSn-2
StartCollapsible and its replacement row templates are available for BSn-2 maps. When using these templates, entries for new parameter tw-left (width of left text cell) are required. It should be applied at any conventional BSn-2 template outside of the collapsible section, every startcollapsible and replace (if any) templates with exact same value otherwise the icon cells will be unable to align themselves correctly.

Caveat: Older versions of Google Chrome cannot line up the BSn-2sc and BSn-2replace templates correctly.

{{BS-map {{BS3-2|KBHFa||KBHFa|West Terminal|East Terminal|tw-left=170px|tw=140px}} {{BS3-2sc|STRl|KBHFa|O2=KINTeq|LSTR|Central Transfer|tw-left=170px|tw=140px|bg=#ddf}} {{BS3-2replace|eKRWgl|exKRW+r|STR|tw-left=170px|tw=140px|bg=#ddf}} {{BS3-2|XBHF-L|KXBHFxa-M|eXBHF-R|Cross-platform transfer|closed platform}} {{BS3-2|KDSTe|STR|CONTf|Depot||||to countryside}} {{!}}}
 * title=BSn-2sc and replace templates
 * collapsible=0
 * legend=0
 * map=

}}

Lining up Collapsible sections
This requires parameter tw (and tw-left) to fix the width of the Right_Text column (and Left_Text column). They are naturally present in the collapsible templates. The way they are used in the ordinary bBSn, BSn-2 templates is to be rewritten.

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

Navbar
The Navbar template 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). See Template:Navbar/doc for usage and options.

The navbar parameter of BS-map and the second parameter of BS-header perform the same function. These should be given the name of the RDT, omitting the  prefix.
 * }

BSntext
The   template is used to place a centered row of text in the area where icons are normally displayed. In all cases, the last three fields are the same as regular BS# templates, providing for,   and   (but no   column).

BS-colspan
The BS-colspan template is used to place text across the entire width of the table. All standard formatting can be used.

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.

RoutemapRoute
The RoutemapRoute (shortcut: ) template can be used to indicate routes and connecting lines. It places directional arrow(s) and one or two text fields in a map row, optionally enclosed by parentheses. A complete explanation is at Template:RoutemapRoute/doc.

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]].

Jct
The Jct template will display a smaller highway shield for use in route diagram template rows when rdt is set to any value.

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 using BSn only
Note: The code here produces the adjoining map. It does not mean to reflect the current situation.



An example with collapsible sections
{{BS-map {{BS||hours}} {{BS|KBHFa||London St. Pancras}} {{BS|HST||{{stn|Stratford International}}}} {{BS|HST||Ebbsfleet International}} {{BS3-startCollapsible||hKRZWae||{{0|0:00}}|Original terminal|bg=#c0c0f0}} {{BS3-replace|exKBHFa|hKRZWae| |0:00|London Waterloo|(closed 2011)|bg=#c0c0f0}} {{BS3|exKRWl|eKRWg+r|||}} {{!}}}
 * title = Eurostar route map
 * width = 330px
 * map =

}}

Tips

 * 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.