Difference between revisions of "Template:Data"
m (Philmasterplus moved page User:Philmasterplus/Data to Template:Data: Testing complete, ready for use) |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | <includeonly>{{#ifexist:{{{1|}}}|{{ | + | <includeonly>{{#if:{{{1|}}}||{{error|Missing parameter '1' for Template:Data}}}}{{#ifexist:{{{1|}}}|{{:{{{1|}}}|format=#switch:{{{2|}}}|{{{3|}}}}}|{{error|Page '{{{1|}}}' does not exist}}}}</includeonly><noinclude> |
− | + | <templatedata> | |
+ | { | ||
+ | "description": "Utility template that extracts a field from a data page.", | ||
+ | "params": { | ||
+ | "1": { | ||
+ | "label": "Page name", | ||
+ | "description": "Name of the data page to extract the data from.", | ||
+ | "type": "wiki-page-name", | ||
+ | "required": true, | ||
+ | "example": "visit_url" | ||
+ | }, | ||
+ | "2": { | ||
+ | "label": "Field name", | ||
+ | "description": "Name of the field to extract from the source page", | ||
+ | "type": "line", | ||
+ | "required": true, | ||
+ | "example": "function1.parameter1" | ||
+ | }, | ||
+ | "3": { | ||
+ | "label": "Default value", | ||
+ | "description": "Default value if the page does not contain the given field, or the field is empty", | ||
+ | "type": "string", | ||
+ | "example": "no_name" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </templatedata> | ||
− | == | + | This template is based on the [http://kol.coldfront.net/thekolwiki/index.php/Template:Data Template:Data] page in the KoL wiki. |
− | <pre> | + | |
− | + | ==What is a Data Page?== | |
− | + | ||
− | + | Suppose a page named "XYZ" contains the following wikitext: | |
− | </pre> | + | <pre>{{{{{format|DefaultTemplate}}} |
+ | |param1=abc | ||
+ | |foo=bar | ||
+ | |some.property=some value | ||
+ | |empty_value= | ||
+ | |{{{1|}}} | ||
+ | }}</pre> | ||
+ | |||
+ | Any page that contains code like this is a ''data page''. A data page cannot render itself, but instead feeds its parameters to a rendering template ("DefaultTemplate" in this example) which is responsible for rendering the page. | ||
+ | |||
+ | (Note: The markup above must be wrapped in a <code><onlyinclude></onlyinclude></code> tag.) | ||
+ | |||
+ | The [[Template:Data]] template can extract individual fields from a data page, like this: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Wiki markup !! Result | ||
+ | |- | ||
+ | | <pre>{{data|XYZ|param1}}</pre> | ||
+ | | abc | ||
+ | |- | ||
+ | | <pre>{{data|XYZ|foo}}</pre> | ||
+ | | bar | ||
+ | |- | ||
+ | | <pre>{{data|XYZ|some.property}}</pre> | ||
+ | | some value | ||
+ | |- | ||
+ | | <pre>{{data|XYZ|empty_value}}</pre> | ||
+ | | | ||
+ | |- | ||
+ | | <pre>{{data|XYZ|empty_value|default value}}</pre> | ||
+ | | default value | ||
+ | |- | ||
+ | | <pre>{{data|XYZ|value that does not exist|default value}}</pre> | ||
+ | | default value | ||
+ | |} | ||
− | |||
− | |||
− | |||
</noinclude> | </noinclude> |
Latest revision as of 12:02, 20 December 2020
Utility template that extracts a field from a data page.
Parameter | Description | Type | Status | |
---|---|---|---|---|
Page name | 1 | Name of the data page to extract the data from.
| Page | required |
Field name | 2 | Name of the field to extract from the source page
| Line | required |
Default value | 3 | Default value if the page does not contain the given field, or the field is empty
| String | optional |
This template is based on the Template:Data page in the KoL wiki.
What is a Data Page?
Suppose a page named "XYZ" contains the following wikitext:
{{{{{format|DefaultTemplate}}} |param1=abc |foo=bar |some.property=some value |empty_value= |{{{1|}}} }}
Any page that contains code like this is a data page. A data page cannot render itself, but instead feeds its parameters to a rendering template ("DefaultTemplate" in this example) which is responsible for rendering the page.
(Note: The markup above must be wrapped in a <onlyinclude></onlyinclude>
tag.)
The Template:Data template can extract individual fields from a data page, like this:
Wiki markup | Result |
---|---|
{{data|XYZ|param1}} |
abc |
{{data|XYZ|foo}} |
bar |
{{data|XYZ|some.property}} |
some value |
{{data|XYZ|empty_value}} |
|
{{data|XYZ|empty_value|default value}} |
default value |
{{data|XYZ|value that does not exist|default value}} |
default value |