Pages related to |
Module:Adjacent stations |
---|
(talk | sandbox | sub-pages) |
{{Infobox station}} |
(talk | sandbox | testcases) |
{{Station link}} |
(talk | sandbox | testcases) |
{{Station icon link}} |
(talk | sandbox | testcases) |
{{Rail color}} |
(talk | sandbox | testcases) |
{{Line link}} |
(talk | sandbox | testcases) |
{{Short line link}} |
(talk | sandbox | testcases) |
{{Rail icon}} |
(talk | sandbox | testcases) |
{{Rail color box}} |
(talk | sandbox | testcases) |
{{Adjacent stations}} |
(talk | sandbox | testcases) |
{{Line terminus link}} |
(talk | sandbox | testcases) |
This module implements {{Adjacent stations}}, {{Rail icon}}, {{Rail color box}}, {{Line link}}, {{Station link}} and {{Rail color}}. Please see those templates' pages for documentation on how to use those templates. (Instructions for the convert
function of this module are in the {{Adjacent stations}} documentation.)
The aforementioned templates rely on data stored in subpages for this module (list). For example, {{Rail icon|MTR}}
generates using Module:Adjacent stations/MTR.
It is possible to create and edit data by following existing examples, but having some knowledge of Lua helps prevent mistakes. If you have programmed or used Lua before, you may like to skip the next subsection.
true
or false
."This is a string"
).0.5
or 42
.{}
in the code.["key"] = value
; each key–value pair is separated by a comma. All keys used here are strings or numbers.{"text", "more text"}
is equivalent to {[1] = "text", [2] = "more text"}
.local variable_name = "value".
return variable_name
) causes a function to exit and reports the value of variable_name
. The "function" here is the code in the main module calling the subpage, and the variable_name
should be the data table.Two modules are demonstrated below:
Blank | local p = {["system title"] = "",["system icon"] = "",["station format"] = {"",[""] = "",},["lines"] = {[""] = {["title"] = "",["color"] = "",["left terminus"] = "",["right terminus"] = "",},},}return p |
Example | local x = "%1 light rail station"local p = {["system title"] = "[[Kaohsiung Metro]]",["system icon"] = "[[File:Kaohsiung Mass Rapid Transit Logo(Logo Only).svg|18px|link=Kaohsiung Rapid Transit]]",["rail box format"] = "title",["station format"] = {"%1 metro station",["Central Park"] = "Central Park metro station (Taiwan)",["Ciaotou"] = "Ciaotou station",["Gangshan"] ="Gangshan station",["Kaohsiung Main Station"] = "%1",["Zuoying"] = "%1 HSR station",["Hamasen"] = "%1 station",-- Circular light rail["Lizihnei"] = x,["Kaisyuan Rueitian"] = x,["Cianjhen Star"] = x,["Kaisyuan Jhonghua"] = x,["Dream Mall"] = x,["Commerce and Trade Park"] = x,["Software Technology Park"] = x,["Kaohsiung Exhibition Center"] = x,["Cruise Terminal"] = x,["Glory Pier"] = x,["Love Pier"] = x,["Dayi Pier-2"] = x,["Penglai Pier-2"] = x},["lines"] = {["_default"] = {["title"] = "[[%1 line (Kaohsiung Metro)|%1 line]]"},["Red"] = {["color"] = "e20b65",["icon"] = "[[File:Kaohsiung MRT Red Line.svg|20px|link=Red line (Kaohsiung Metro)]]",["left terminus"] = "Gangshan",["right terminus"] = "Siaogang"},["Orange"] = {["color"] = "faa73f",["icon"] = "[[File:Kaohsiung Metro Orange Line.svg|20px|link=Orange line (Kaohsiung Metro)]]",["left terminus"] = "Hamasen",["right terminus"] = "Daliao"},["Circular"] = {["title"] = "[[Circular light rail]]",["short name"] = "Circular line",["color"] = "7cbd52",["icon"] = "[[File:Kaohsiung LRT Circular Line.svg|20px|link=Circular light rail]]",["circular"] = 1,["left terminus"] = "outer loop / anticlockwise",["right terminus"] = "inner loop / clockwise"},-- Future lines["Yellow"] = {["color"] = "ffc100",["icon"] = "[[File:Kaohsiung Rapid Transit Yellow Line.svg|20px|link=Yellow line (Kaohsiung Metro)]]",["left terminus"] = {"Cruise Terminal", "Cianjhen Senior High School"},["right terminus"] = "Dipu"},-- Proposed["Yanchao"] = {["title"] = "[[Kaohsiung Metro#All projects|Yanchao line]]",["color"] = "c100ff"},["Youchang"] = {["title"] = "[[Kaohsiung Metro#All projects|Youchang line]]",["color"] = "008583"},["Fongshan"] = {["title"] = "[[Kaohsiung Metro#All projects|Fongshan line]]",["color"] = "007fff"},["Green"] = {["title"] = "[[Kaohsiung Metro#All projects|Green line]]",["color"] = "50cb00"},["Foguangshan"] = {["title"] = "[[Kaohsiung Metro#All projects|Foguangshan line]]",["color"] = "aa34c0"},["Cijin"] = {["title"] = "[[Kaohsiung Metro#All projects|Cijin line]]",["color"] = "e10a65"},},["aliases"] = {["circular"] = "Circular",["c"] = "Circular",["orange"] = "Orange",["o"] = "Orange",["red"] = "Red",["r"] = "Red",["yellow"] = "Yellow",["y"] = "Yellow"}}return p |
The example module is Module:Adjacent stations/Kaohsiung Rapid Transit.
Below is Module:Adjacent stations/Taiwan High Speed Rail:
local x = "%1 station"local p = {["system title"] = "[[Taiwan High Speed Rail]]",["system icon"] = "[[File:Taiwan High Speed Rail Logo(Log Only).svg|18px|link=Taiwan High Speed Rail|alt=Taiwan High Speed Rail]]",["system color"] = "c35617",["name format"] = "color: #FFFFFF; background-color: #C35617;",["station format"] = {"%1 HSR station",["Taipei"] = "Taipei Main Station",["Nangang"] = x,["Banqiao"] = x},["lines"] = {["_default"] = {["title"] = "[[Taiwan High Speed Rail|THSR]]",["color"] = "c35617",["left terminus"] = "Nangang",["right terminus"] = "Zuoying"}}}return p
["_default"]
. The title and colour of this line is used for all lines unless overridden. Parameters are used in the absence of a specified line=
in transclusion.If not specified, all keys and values are strings.
Parameter | Type | Used in {{Adjacent stations}} | Description |
---|---|---|---|
["lang"] | String | Yes | Values are "en-US" and "en-GB" . If not set, "en-GB" is assumed. |
["system title"] | String | Yes | Text in the middle cell of the header. |
["system icon"] | String | Yes | Image used in the middle cell of the {{Adjacent stations}} header and by {{Rail icon}}. |
["system icon format"] | String | No | Icon type, used by {{Rail icon}}. If specified and not "image" , the value is passed to the function that implements {{Rail color box}}. |
["system color"] | String | No | RGB hex triplet (three or six characters, like "BE2D2C" or "039" ). Can be called by using only one parameter in {{Rail color}}. |
["header stop noun"] | String | Yes | The noun after 'preceding' and 'following' in the left and right header cells. Default value is "station" . |
["name format"] | String | No | CSS for the header of {{Infobox station}} and anything else using the style function with |1=header . Values can be strings or nested tables, with the first level being for the line (whatever's in |style2= of {{Infobox station}}). The second level is currently unused. The first entry in a nested table with no key (i.e. with key 1 ) is the default. |
["header background color"] | String | No | RGB hex triplet for {{Infobox station}} subheaders and anything else using the style function with |1=subheader . By default, it is a light gray. Values can be strings or nested tables, like those for "name format" . |
["header text color"] | String | No | RGB hex triplet for {{Infobox station}} subheaders and anything else using the style function with |1=subheader . By default, it is calculated based on the header background color. Values can be strings or nested tables, like those for ["name format"] . |
["station format"] | Table or string | Yes | Table containing station format strings. The first entry without a specified key (i.e. with the key being the number 1 ) is the default, and all other entries must have keys corresponding to the input. Format strings without wikilink brackets are converted to links, with the input (usually the station name) used as the displayed text. Tables can be nested within this table to indicate options based on the line and line type passed to this template.
|
["lines"] | Table | Yes | Data table containing line tables. |
["aliases"] | Table | Yes | Table containing aliases (as table keys) for lines (as values). All keys are lowercase, as the input is treated as case-insensitive by being lower-cased. |
Parameter | Type | Used in {{Adjacent stations}} | Description |
---|---|---|---|
[1] | String | Yes | Default format. |
["non-default station name"] | String or table | Yes | Format for a non-default station, or line-specific format table. |
Parameter | Type | Used in {{Adjacent stations}} | Description |
---|---|---|---|
[1] | String | Yes | Default format. |
["line name"] | String or table | Yes | Format for a non-default station, or type-specific format table. |
Parameter | Type | Used in {{Adjacent stations}} | Description |
---|---|---|---|
[1] | String | Yes | Default format. |
["type name"] | String | Yes | Format for a non-default station. |
A virtual line named ["_default"]
can be added to set default values for all lines. Currently, this is available for three parameters.
Parameter | Type | Used in {{Adjacent stations}} | Description |
---|---|---|---|
["title"] | String | Yes | The text displayed in the middle cell, typically a link to the line's article. If not specified, then the data in ["_default"] is used (%1 in the default value is replaced by the input after alias replacement). |
["short name"] | String | No | Abbreviated line name used by {{Rail color box}} and {{Short line link}}. |
["icon"] | String | No | Image used by {{Rail icon}}. If not specified, then the data in ["_default"] is used (%1 in the default value is replaced by the input after alias replacement). |
["icon format"] | String | No | Icon type used by {{Rail icon}}. If specified and not "image" , the value is passed to the function that implements {{Rail color box}}. |
["color"] | String | Yes | RGB hex triplet. Lines fall back to the ["_default"] colour (if any) or the system's colour if they themselves do not have one; types fall back to the line's colour (if any), to the ["_default"] colour (if any) or to the system's colour. This colour is used in the second and fourth columns of {{Adjacent stations}}, and by {{Rail color box}} and {{Rail icon}} as the emphasised colour. By default, if a type and its line both have a colour, then the line's colour will be treated as the background colour (see next section) for the line name in the middle cell. This can be turned off by setting the type's background colour to "" or "transparent" . |
["background color"] | String | Yes | RGB hex triplet (three or six characters). This colour is optional and is only displayed behind the line name in the middle cell. The module adds transparency so that all text displayed over the background is legible. |
["border color"] | String | No | RGB hex triplet used by {{Rail color box}}. |
["text color"] | String | No | RGB hex triplet used by {{Rail color box}}. |
["left terminus"] | String | Yes | The station which is usually the left terminus of the line. If there are multiple stations by default, the value should be a table containing numbered values (e.g. ["left terminus"] = {"Chesham", "Amersham"} ). The key ["via"] in that table can be used to append 'via' and the value's station link. |
["right terminus"] | String | Yes | The station which is usually the right terminus of the line; behaves like ["left terminus"] . |
["note-mid"] | String | Yes | Default small text below line and type names. Overridden by |note-mid= in transclusion. |
["circular"] | Boolean | Yes | If the value is true then the termini will display without 'toward'/'towards'. May be overridden by type. |
["oneway-left"] | Boolean | Yes | If the value is true then 'One-way operation' will display instead of the left terminus. |
["oneway-right"] | Boolean | Yes | Right counterpart of oneway-left. |
["types"] | Table | Yes | Table containing the line type tables. |
Parameter | Type | Used in {{Adjacent stations}} | Description |
---|---|---|---|
["title"] | String | Yes | The name of the line type. In {{Adjacent stations}}, this is displayed as normal-sized text below the line name in the middle cell; in {{Rail color box}}, for some options this is displayed after the line name, separated from it by a spaced en dash (this is also used for the nonstop text). To avoid displaying a type name, set this to "" . |
["short name"] | String | No | Abbreviated line name used by {{Rail color box}} and {{Short line link}}. |
["icon"] | String | No | Image used by {{Rail icon}}. |
["icon format"] | String | No | Icon type used by {{Rail icon}}. If specified and not "image" , the value is passed to the function that implements {{Rail color box}}. |
["color"] | String | Yes | RGB hex triplet. Lines fall back to the ["_default"] colour (if any) or the system's colour if they themselves do not have one; types fall back to the line's colour (if any), to the ["_default"] colour (if any) or to the system's colour. This colour is used in the second and fourth columns of {{Adjacent stations}}, and by {{Rail color box}} and {{Rail icon}} as the emphasised colour. By default, if a type and its line both have a colour, then the line's colour will be treated as the background colour (see next section) for the line name in the middle cell. This can be turned off by setting the type's background colour to "" or "transparent" . |
["background color"] | String | Yes | RGB hex triplet (three or six characters). This colour is optional and is only displayed behind the line name in the middle cell. The module adds transparency so that all text displayed over the background is legible. |
["border color"] | String | No | RGB hex triplet used by {{Rail color box}}. |
["text color"] | String | No | RGB hex triplet used by {{Rail color box}}. |
["left terminus"] | String | Yes | The station which is usually the left terminus of the line. Overrides line terminus. If there are multiple stations by default, the value should be a table containing numbered values (e.g. ["left terminus"] = {"Chesham", "Amersham"} ). The key ["via"] in that table can be used to append 'via' and the value's station link. |
["right terminus"] | String | Yes | The station which is usually the right terminus of the line; behaves like ["left terminus"] . |
["note-mid"] | String | Yes | Default small text below line and type names. Overridden by |note-mid= in transclusion. |
["circular"] | Boolean | Yes | If the value is true then the termini will display without 'toward'/'towards'. |
Station links are generated using the station format
part of the data module. Each data module defines a default case and then exceptions, if necessary. Station format
is an array, similar to a switch with cases. Take Module:Adjacent stations/Incheon Subway, shown below:
local incheon = "%1 station (Incheon)"local n = "font-size: 160%; font-family:sans-serif; font-weight: bolder; color: #FFFFFF; padding: 0.4em 4px; background-color: #"local colors = {["1"] = "8cadcb",["2"] = "f06a00",["3"] = "777777",}local p = {["system title"] = "[[Incheon Subway]]",["system icon"] = "",["name format"] = { ["1"] = n .. colors["1"], ["2"] = n .. colors["2"], ["3"] = n .. colors["3"],}, ["header background color"] = colors, ["header text color"] = "ffffff",["station format"] = {"%1 station",["Arts Center"] = incheon,["Central Park"] = incheon,["Gyeongin National University of Education"] = "[[Gyeongin National University of Education station|Gyeongin Nat'l Univ. of Education]]",["Mansu"] = incheon,["Seongnam"] = incheon,},["lines"] = {["1"] = {["title"] = "[[Incheon Subway Line 1|Incheon Line 1]]",["color"] = colors["1"],["text color"] = "FFFFFF",["icon"] = "[[File:Incheon Metro Line 1.svg|16px|link=Incheon Subway Line 1]]",["left terminus"] = "Gyeyang",["right terminus"] = "Songdo Moonlight Festival Park",},["2"] = {["title"] = "[[Incheon Subway Line 2|Incheon Line 2]]",["color"] = colors["2"],["text color"] = "FFFFFF",["icon"] = "[[File:Incheon Metro Line 2.svg|16px|link=Incheon Subway Line 2]]",["left terminus"] = "Geomdan Oryu",["right terminus"] = "Unyeon",},["3"] = {["title"] = "[[Incheon Subway Line 3|Incheon Line 3]]",["color"] = colors["3"],["text color"] = "FFFFFF",}}}return p
The default case is "%1 station"
, listed first. The "%1" expands to whatever the passed name of the station is. "Bakchon" becomes Bakchon station. There are several exceptions. The two usual reasons for exceptions are disambiguation or presenting a name in a non-standard way. In this case, the Incheon Subway serves three stations whose names are disambiguated: Arts Center station (Incheon), Central Park station (Incheon), and Mansu station (Incheon). This is handled by specifying a key for each station and supplying a different format. Since all three are disambiguated the same way, you can define a local variable at the top of the module:
local incheon = "%1 station (Incheon)"
This can then be used with the exceptions:
["Arts Center"] = incheon,
Were it written out, it would look like this:
["Arts Center"] = "%1 station (Incheon)"
Suggestions are welcomed on the talk page.