|
|
Line 1: |
Line 1: |
| {{Documentation subpage}} | | {{#switch: |
| {{used in system}} | | <!--If no or empty "demospace" parameter then detect namespace--> |
| {{Template shortcut|ns0|mo|ao}} | | {{#if:{{{demospace|}}} |
| <!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --> | | | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> |
| | | {{#ifeq:{{NAMESPACE}}|{{ns:0}} |
| | | main |
| | | other |
| | }} |
| | }} |
| | | main = {{{1|}}} |
| | | other |
| | | #default = {{{2|}}} |
| | }}<noinclude> |
|
| |
|
| This is the {{tl|main other}} meta-template.
| | {{documentation}} |
| | | <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> |
| This template helps other templates detect if they are on a main space (article) page or some "other" type of page.
| | </noinclude> |
| | |
| ===Basic usage===
| |
| This template usually takes two parameters, like this:
| |
| : {{Tlc|main other |''result if in mainspace'' |''result if elsewhere''}}
| |
| | |
| If the template is on a main space (article) page, it will return this:
| |
| : {{main other |demospace=main |''result if in mainspace'' |''result if elsewhere''}}
| |
| | |
| If the template is on any other page, it will return this:
| |
| : {{main other |''result if in mainspace'' |''result if elsewhere''}}
| |
| | |
| A typical usage case could be to make it so that a template only adds a category when on an article. Thus not adding other pages that just show the template. Like this:
| |
| : {{Tlc|main other |<nowiki>[[:Category:Some article maintenance category]]</nowiki>}}
| |
| Note that guidelines do not support categorization in templates.
| |
| | |
| Or to warn that a template should not be used on other pages:
| |
| : {{Tlc|main other | |This template should only be used in articles.}}
| |
| | |
| Note that in the first case above the "other" parameter was not used, and in the second example the "main" parameter was left empty.
| |
| | |
| ===Demospace===
| |
| For testing and demonstration purposes, this template can take a parameter named '''demospace'''.
| |
| * If it has the value '''main''' it returns the article text.
| |
| * It if has the value '''other''' or any other value such as the name of some other namespace it returns the other pages text.
| |
| * If the parameter is empty or undefined, the actual page type determines the result.
| |
| | |
| Like this:
| |
| : {{tlf|main other |''result if in mainspace'' |''result if elsewhere'' |demospace{{=}}main}}
| |
| | |
| No matter on what kind of page the code above is used, it will return: {{main other |''result if in mainspace'' |''result if elsewhere'' |demospace=main}}
| |
| | |
| You can make it so your template also understands the '''demospace''' parameter. That means you can demonstrate the different appearances of your template in the documentation for your template:
| |
| : {{tlf|main other |''result if in mainspace'' |''result if elsewhere'' |<nowiki>demospace={{{demospace|}}}</nowiki> }}
| |
| | |
| ===Technical details===
| |
| This template detects article "Talk:" pages as type '''other'''.
| |
| | |
| This template works like {{tl|main talk other}}. For more examples and technical details, see the documentation there.
| |
| | |
| | |
| <templatedata>
| |
| {
| |
| "params": {
| |
| "1": {
| |
| "label": "If mainspace",
| |
| "description": "Content if page is located in mainspace (i.e. article space)",
| |
| "type": "content"
| |
| },
| |
| "2": {
| |
| "label": "If not mainspace",
| |
| "description": "Content if page is not located in mainspace",
| |
| "type": "content"
| |
| }
| |
| }
| |
| }
| |
| </templatedata>
| |
| | |
| ===Redirects===
| |
| * {{tl|article only}}
| |
| * {{tl|article other}}
| |
| | |
| {{Namespace and pagename-detecting templates}}
| |
| | |
| <includeonly>{{Sandbox other||
| |
| [[Category:Namespace manipulation templates]]
| |
| [[Category:If-then-else templates]]
| |
| }}</includeonly>
| |