Modul:Adjacent stations/doc: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
RaFaDa20631 (bicara | kontrib)
Dokumentasi baru
 
Taylor 49 (bicara | kontrib)
perkeretaapian <includeonly>Kategori:Modul transportasi rel</includeonly>
 
(5 revisi perantara oleh 3 pengguna tidak ditampilkan)
Baris 1:
{{Sidebar Adjacent stations}}
{{Lua|Module:No globals|Module:Yesno|Module:Arguments|Module:Color contrast|Module:Trim quotes}}
{{High-use| 387855000+ }}
{{Module rating|protected}}
 
ThisModul moduleini implementsmengimplementasikan {{tl|Adjacent stations}}, {{tl|Rail icon}}, {{tl|Rail color box}}, {{tl|Line link}}, {{tl|Station link}} anddan {{tl|Rail color}}. PleaseHarap seebaca thosedokumentasi templates'templatnya pagesuntuk forinformasi documentationlebih on how to use those templateslanjut. (InstructionsPetunjuk forfungsi thekonversi <code>convert</code> functionada ofdi this module are in thedokumentasi {{tl|Adjacent stations}} documentation.)
 
TheTemplat aforementioneddi templatesatas relybergantung onpada data storedyang indisimpan subpagesdalam forsubhalaman thismodul moduleini ([[Special:PrefixIndex/Module:Adjacent_stations/|list]]). For exampleContoh, {{tl|Rail icon|MTR}} generatesmenghasilkan {{Rail icon|MTR}} usingmenggunakan [[Module:Adjacent stations/MTR]].
 
Dapat membuat atau menyunting data dengan contoh yang ada, tetapi Anda setidaknya perlu sedikit pengetahuan tentang Lua. Jika Anda menjadi pemrogram Lua, Anda bisa melewatinya.
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.
 
== TermsIstilah ==
{{for|apemahaman moreyang comprehensivelebih overviewmendalam oftentang Lua|:mw:Extension:Scribunto/Lua reference manual}}
 
* LuaJenis has ''data types''. The ones relevant hereLua areadalah ''boolean'', ''string'', ''number'', anddan ''table''.
** A ''[[Boolean data type|boolean]]'' is either: <code>true</code> oratau <code>false</code>.
** Untaian teks, yang disebut ''string,'' disimpan sebagai karakter. Dalam Lua, ''string'' ditandai dalam tanda petik dua (<code>"Ini string"</code>).
** A ''string'' is text, stored as a list of characters. While Lua has several ways of indicating strings within code, in the Lua examples here, strings are indicated by enclosing text in double quotes (e.g. <code>"This is a string"</code>).
** A ''numberNumber'' isadalah data yang aberupa numericalbilangan valuereal, likeseperti <code>0.5</code> oratau <code>42</code>.
** ''Table'' adalah struktur yang mengandung objek lain, termasuk tabel yang lain
** A ''table'' is a structure that can contain other objects, including other tables.
*** AnTabel emptykosong tableditandai looks likedengan <code>{}</code> in the code.
*** TablesTabel havebiasanya memiliki ''keys'' anddan ''values'', whichbiasanya areseperti typically of the structureini: <code>["<var>key</var>"] = <var>value</var></code>; each key–value pair is separated by a comma. All keys used heretiap arepasangannya stringsdipisahkan oroleh numberskoma.
*** <code>{"text", "more text"}</code> isekuivalen equivalent todengan <code>{[1] = "text", [2] = "more text"}</code>.
* A ''variableVariable'' can be defined using: <code>local <var>variable_name</var> = <var>"value"</var>.</code>
* ''Whitespace'' termasuk tab, spasi, ganti baris. Tidak masalah dalam Lua, tetapi sering kali tidak nyaman dibaca jika diabaikan.
* ''Whitespace'' is any tab, line break or other space. Whitespace doesn't matter in Lua, but all examples here except for those inline with text are neatly indented for readability, with separate table keys on separate lines.
* A ''return statementReturn'' (e.g.seperti <code>return <var>variable_name</var></code>) causesmembuat aeksekusi functionfungsi totersebut exitdiakhiri anddan reportsmelaporkannya the value ofsebagai <code><var>variable_name</var></code>. The "function" here is the code in the main module calling the subpage, and the <code><var>variable_name</var></code> should be the data table.
 
== BasicStruktur structuredasar ==
* Dua entri yang diperlukan adalah "station format" dan "lines".
Two modules are demonstrated below:
* "system title" adalah teks yang ada di tengah tajuk.
{| class="wikitable"
* "station format" digunakan untuk menuliskan format stasiun dan pengecualiannya.
|-
* "lines" berisi daftar nama jalur kereta apinya beserta stasiun sebelum dan sesudahnya
| [[Module:Adjacent stations/blank|Blank]] || {{syntaxhighlight|lang=lua|{{Module:Adjacent stations/blank}}}}
* "line title" adalah nama jalur kereta api; "left terminus" adalah nama stasiun terminus sebelah kiri, dan "right terminus" adalah nama stasiun terminus sebelah kanan.
|-
| [[Module:Adjacent stations/Kaohsiung Rapid Transit|Example]] || {{syntaxhighlight|lang=lua|{{Module:Adjacent stations/Kaohsiung Rapid Transit}}}}
|}
The example module is [[Module:Adjacent stations/Kaohsiung Rapid Transit]].
* The two required table entries are "station format" and "lines". The former is a table with data to form links to station articles, and the latter is a table containing a table for each line.
* "system title" is the text in the middle cell of the table header row.
* "station format" defines the default name format for station articles and exceptions. The first variable ("%1 metro station") is the default. Exceptions are listed as key–value pairs (e.g. "Zuoying"–"Zuoying HSR station"), where the key is the input name. The module displays the input name and links to the article with the formatted name, replacing "%1" with the input. Alternatively, the full wikilink and be entered. This can be used to have the display be different from the input.
* "lines" is where the lines are listed. The names here are used internally and not displayed, so choose a concise one.
* "line title" is the text displayed in the middle of each row indicating the line; "left terminus" is the default station name for the left side terminus, and "right terminus" is the default station name for the right side terminus.
* Each "color" entry is the colour of the line.
 
BelowDi isbawah ini contoh pemakaiannya dalam [[Module:Adjacent stations/Taiwan High Speed Rail]]:
{{syntaxhighlight|lang=lua|{{Module:Adjacent stations/Taiwan High Speed Rail}}}}
* <var>x</var> (defined in the first line) is a string used for formatting the station name. The variable <var>x</var> is used inside the "station format" table for the three articles where the title ends in "station" instead of "HSR station". This practice is optional but helpful when many articles fit a second pattern.
* The module recognises a virtual line named <code>["_default"]</code>. The title and colour of this line is used for all lines unless overridden. Parameters are used in the absence of a specified <code>line=</code> in transclusion.
 
== Hierarchy and list of parameters ==
# The first layer of the table is data for the entire system, as well as output options.
# Under the system table is the list of lines.
# The third layer is data for a given line.
# Each line can have 'types'. This can be either types of services or branches of the line.
# The fifth layer is data for a given type.
 
If not specified, all keys and values are strings.
 
=== Main layer (1) ===
{| class="wikitable"
|+
!Parameter
!Type
!Used in {{Tl|Adjacent stations}}
!Description
|-
|<code>["lang"]</code>
|String
|{{Yes}}
|Values are <code>"en-US"</code> and <code>"en-GB"</code>. If not set, <code>"en-GB"</code> is assumed.
|-
|<code>["system title"]</code>
|String
|{{Yes}}
|Text in the middle cell of the header.
|-
|<code>["system icon"]</code>
|String
|{{Yes}}
|Image used in the middle cell of the {{tl|Adjacent stations}} header and by {{tl|Rail icon}}.
|-
|<code>["system icon format"]</code>
|String
|{{No}}
|Icon type, used by {{tl|Rail icon}}. If specified and not <code>"image"</code>, the value is passed to the function that implements {{tl|Rail color box}}.
|-
|<code>["system color"]</code>
|String
|{{No}}
|RGB hex triplet (three or six characters, like <code>"BE2D2C"</code> or <code>"039"</code>). Can be called by using only one parameter in {{tl|Rail color}}.
|-
|<code>["header stop noun"]</code>
|String
|{{Yes}}
|The noun after 'preceding' and 'following' in the left and right header cells. Default value is <code>"station"</code>.
|-
|<code>["name format"]</code>
|String
|{{No}}
|CSS for the header of {{tl|Infobox station}} and anything else using the <code>style</code> function with {{para|1|header}}. Values can be strings or nested tables, with the first level being for the line (whatever's in {{para|style2}} of {{tl|Infobox station}}). The second level is currently unused. The first entry in a nested table with no key (i.e. with key <code>1</code>) is the default.
|-
|<code>["header background color"]</code>
|String
|{{No}}
|RGB hex triplet for {{tl|Infobox station}} subheaders and anything else using the <code>style</code> function with {{para|1|subheader}}. By default, it is a light gray. Values can be strings or nested tables, like those for <code>"name format"</code>.
|-
|<code>["header text color"]</code>
|String
|{{No}}
|RGB hex triplet for {{tl|Infobox station}} subheaders and anything else using the <code>style</code> function with {{para|1|subheader}}. By default, it is calculated based on the header background color. Values can be strings or nested tables, like those for <code>["name format"]</code>.
|-
|<code>["station format"]</code>
|Table or string
|{{Yes}}
|Table containing station format strings. The first entry without a specified key (i.e. with the key being the number <code>1</code>) 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.
 
<code>%1</code>, <code>%2</code> and <code>%3</code> can be used in all strings regardless of the level of nesting to be replaced respectively by the station input, the line input (after alias replacement) and the type input (after alias replacement).
|-
|<code>["lines"]</code>
|Table
|{{Yes}}
|Data table containing line tables.
|-
|<code>["aliases"]</code>
|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.
|}
 
=== Station format table (2) ===
{| class="wikitable"
|+
!Parameter
!Type
!Used in {{Tl|Adjacent stations}}
!Description
|-
|<code>[1]</code>
|String
|{{Yes}}
|Default format.
|-
|<code>["''non-default station name''"]</code>
|String or table
|{{Yes}}
|Format for a non-default station, or line-specific format table.
|}
 
=== Line-specific format table (3) ===
{| class="wikitable"
|+
!Parameter
!Type
!Used in {{Tl|Adjacent stations}}
!Description
|-
|<code>[1]</code>
|String
|{{Yes}}
|Default format.
|-
|<code>["''line name''"]</code>
|String or table
|{{Yes}}
|Format for a non-default station, or type-specific format table.
|}
 
=== Type-specific format table (4) ===
{| class="wikitable"
|+
!Parameter
!Type
!Used in {{Tl|Adjacent stations}}
!Description
|-
|<code>[1]</code>
|String
|{{Yes}}
|Default format.
|-
|<code>["''type name''"]</code>
|String
|{{Yes}}
|Format for a non-default station.
|}
 
=== Line table (3) ===
A virtual line named <code>["_default"]</code> can be added to set default values for all lines. Currently, this is available for two parameters.
{| class="wikitable"
!Parameter
!Type
!Used in {{Tl|Adjacent stations}}
!Description
|-
|<code>["title"]</code>
|String
|{{Yes}}
|The text displayed in the middle cell, typically a link to the line's article. If not specified, then the data in <code>["_default"]</code> is used (<code>%1</code> in the default value is replaced by the input after alias replacement).
|-
|<code>["short name"]</code>
|String
|{{No}}
|Abbreviated line name used by {{tl|Rail color box}}.
|-
|<code>["icon"]</code>
|String
|{{No}}
|Image used by {{tl|Rail icon}}.
|-
|<code>["icon format"]</code>
|String
|{{No}}
|Icon type used by {{tl|Rail icon}}. If specified and not <code>"image"</code>, the value is passed to the function that implements {{tl|Rail color box}}.
|-
|<code>["color"]</code>
|String
|{{Yes}}
|RGB hex triplet. Lines fall back to the <code>["_default"]</code> 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 <code>["_default"]</code> colour (if any) or to the system's colour. This colour is used in the second and fourth columns of {{tl|Adjacent stations}}, and by {{tl|Rail color box}} and {{tl|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 <code>""</code> or <code>"transparent"</code>.
|-
|<code>["background color"]</code>
|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.
|-
|<code>["border color"]</code>
|String
|{{No}}
|RGB hex triplet used by {{tl|Rail color box}}.
|-
|<code>["text color"]</code>
|String
|{{No}}
|RGB hex triplet used by {{tl|Rail color box}}.
|-
|<code>["left terminus"]</code>
|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. <code>["left terminus"] = {"Chesham", "Amersham"}</code>). The key <code>["via"]</code> in that table can be used to append 'via' and the value's station link.
|-
|<code>["right terminus"]</code>
|String
|{{Yes}}
|The station which is usually the right terminus of the line; behaves like <code>["left terminus"]</code>.
|-
|<code>["note-mid"]</code>
|String
|{{Yes}}
|Default small text below line and type names. Overridden by {{para|note-mid}} in transclusion.
|-
|<code>["circular"]</code>
|Boolean
|{{Yes}}
|If the value is <code>true</code> then the termini will display without 'toward'/'towards'. May be overridden by type.
|-
|<code>["oneway-left"]</code>
|Boolean
|{{Yes}}
|If the value is <code>true</code> then 'One-way operation' will display instead of the left terminus.
|-
|<code>["oneway-right"]</code>
|Boolean
|{{Yes}}
|Right counterpart of oneway-left.
|-
|<code>["types"]</code>
|Table
|{{Yes}}
|Table containing the line type tables.
|}
 
=== Type table (5) ===
{| class="wikitable"
!Parameter
!Type
!Used in {{Tl|Adjacent stations}}
!Description
|-
|<code>["title"]</code>
|String
|{{Yes}}
|The name of the line type. In {{tl|Adjacent stations}}, this is displayed as normal-sized text below the line name in the middle cell; in {{tl|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 <code>""</code>.
|-
|<code>["short name"]</code>
|String
|{{No}}
|Abbreviated line name used by {{tl|Rail color box}}.
|-
|<code>["icon"]</code>
|String
|{{No}}
|Image used by {{tl|Rail icon}}.
|-
|<code>["icon format"]</code>
|String
|{{No}}
|Icon type used by {{tl|Rail icon}}. If specified and not <code>"image"</code>, the value is passed to the function that implements {{tl|Rail color box}}.
|-
|<code>["color"]</code>
|String
|{{Yes}}
|RGB hex triplet. Lines fall back to the <code>["_default"]</code> 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 <code>["_default"]</code> colour (if any) or to the system's colour. This colour is used in the second and fourth columns of {{tl|Adjacent stations}}, and by {{tl|Rail color box}} and {{tl|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 <code>""</code> or <code>"transparent"</code>.
|-
|<code>["background color"]</code>
|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.
|-
|<code>["border color"]</code>
|String
|{{No}}
|RGB hex triplet used by {{tl|Rail color box}}.
|-
|<code>["text color"]</code>
|String
|{{No}}
|RGB hex triplet used by {{tl|Rail color box}}.
|-
|<code>["left terminus"]</code>
|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. <code>["left terminus"] = {"Chesham", "Amersham"}</code>). The key <code>["via"]</code> in that table can be used to append 'via' and the value's station link.
|-
|<code>["right terminus"]</code>
|String
|{{Yes}}
|The station which is usually the right terminus of the line; behaves like <code>["left terminus"]</code>.
|-
|<code>["note-mid"]</code>
|String
|{{Yes}}
|Default small text below line and type names. Overridden by {{para|note-mid}} in transclusion.
|-
|<code>["circular"]</code>
|Boolean
|{{Yes}}
|If the value is <code>true</code> then the termini will display without 'toward'/'towards'.
<!-- Types currently do not have these parameters. However, it could make sense to add them if the need arises.
|-
Baris 345 ⟶ 47:
|Right counterpart of oneway-left.
-->
<includeonly>[[Kategori:Modul transportasi rel]]</includeonly>
|}
 
== For editors ==
=== Disambiguating stations ===
Station links are generated using the <code>station format</code> part of the data module. Each data module defines a default case and then exceptions, if necessary. <code>Station format</code> is an array, similar to a switch with cases. Take [[Module:Adjacent stations/Incheon Subway]], shown below:
 
{{syntaxhighlight|lang=lua|{{Module:Adjacent stations/Incheon Subway}}}}
 
The default case is <code>"%1 station"</code>, 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:
 
{{syntaxhighlight|lang=lua|code=local incheon = "%1 station (Incheon)"}}
 
This can then be used with the exceptions:
 
{{syntaxhighlight|lang=lua|code=["Arts Center"] = incheon,}}
 
Were it written out, it would look like this:
 
{{syntaxhighlight|lang=lua|code=["Arts Center"] = "%1 station (Incheon)"}}
 
== For developers ==
Suggestions are welcomed on the talk page.
=== To-do list ===
* Convert more systems from {{tl|S-line}}, {{tl|rail line}}, {{tl|J-rserv}} and {{tl|J-route}}
* Make [[Module:Adjacent stations/example|an example module]] which contains all of the module's features, to avoid excessive examples in the documentation (maybe based on {{tl|Rdt demo}})
* Allow direct replacement of {{tl|Rail line}}?
* Function for calling a line terminus (for station layouts?)
* Before translation: figure out how to handle grammatical gender and inflection in various languages with the i18n table (e.g. [https://translate.google.com/#en/fi/towards%20Edgware%2C%20High%20Barnet%20or%20Mill%20Hill%20East%0Atowards%20Edgware%20via%20Charing%20Cross%0Atowards%20High%20Barnet%20via%20Charing%20Cross%0Athrough%20to%20the%20Piccadilly%20line%0Athrough%20to%20the%20route%20Q42%0Athrough%20to%20the%20Waterfront%20line%0AThe%20red%20route%20does%20not%20stop%20here%0AThe%20blue%20line%20does%20not%20stop%20here%0ALine%2014%20does%20not%20stop%20here%0AService%2014%20does%20not%20stop%20here%0ARed%20line%20does%20not%20stop%20here%0ABlue%20route%20does%20not%20stop%20here these phrases])
* Allow inline sources to be added
* Figure out Wikidata integration (require sources on Wikidata end)
* Add a short list of changes from {{tl|S-line}}, for the convenience of the many editors who have used it in the last 11 years
** changes in function (new structure, data inside module, circular and branch functionality changed, replacement of manual cell merging…)
** parameter name changes (-left and -right, mostly – search {{tl|S-line}} for {{(((}}, maybe with the TemplateData generator, to make a list)
 
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Rail transport succession templates| ]]
}}</includeonly>