Template:Main other
{{#switch:
{{#if:
| {{{demospace}}}
| {{#ifeq:Template|
| main
| other
}}
}}
| main = | other | #default = }}
{{#ifeq:main other |doc
|
{{#ifeq:show |show
|| Template:Strong for Template:Main other{{#if:||.}} It contains usage information, categories and other content that is not part of the original {{#if: |{{{text2}}} |{{#if: |{{{text1}}} |{{#ifeq:Template |User |template template page |{{#if:Template |template page|article}}}}}}}}. |
}}{{#if: |
| {{#ifexist:Template:Main other
| [[Category:{{#switch:Template |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
|
}}
}}
|
}}
| This template is used {{#if:|{{{1}}}|in system messages}}, and on approximately 9,390,000 pages, or roughly 2006410% of all pages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid major disruption and server load, any changes should be tested in the template's /sandbox or /testcases subpages, or in your own user subpage. The tested changes can be added to this page in a single edit. Please discuss changes on the talk page before implementing them. |
This is the {{main other}} meta-template.
This template helps other templates detect if they are on a main space (article) page or some "other" type of page.
Basic usage[edit source]
This template usually takes two parameters, like this:
{{main other |result if in mainspace |result if elsewhere}}
If the template is on a main space (article) page, it will return this:
- {{#switch:
{{#if:main
| main
| {{#ifeq:Template|
| main
| other
}}
}}
| main = result if in mainspace | other | #default = result if elsewhere }}
If the template is on any other page, it will return this:
- {{#switch:
{{#if:
| {{{demospace}}}
| {{#ifeq:Template|
| main
| other
}}
}}
| main = result if in mainspace | other | #default = 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:
{{main other |[[:Category:Some article maintenance category]]}}
Note that guidelines do not support categorization in templates.
Or to warn that a template should not be used on other pages:
{{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[edit source]
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:
- {{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: {{#switch:
{{#if:main
| main
| {{#ifeq:Template|
| main
| other
}}
}}
| main = result if in mainspace | other | #default = result if elsewhere }}
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:
- {{main other |result if in mainspace |result if elsewhere |demospace={{{demospace|}}} }}
Technical details[edit source]
This template detects article "Talk:" pages as type other.
This template works like {{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[edit source]
- {{article only}}
- {{article other}}
{{#if:{{#ifeq:Main ot|sandbox|1}}{{#ifeq:Main other|doc|1}}|| }}