Template:Main other
{{#switch:
{{#if: | {{{demospace}}} | {{#ifeq:Template| | main | other }} }}
| main = | other | #default = }}
{{#ifeq:main other |doc
|
{{#ifeq:show |show
|This is a documentation subpage for Template:Main other. 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]] | }} }} | }}
<templatestyles src="Template:Ombox/styles.css" />
This {{
|Module=Lua module
|#default=template
}} is used on {{#if:3075000+|3,075,000+|a very large number of}} pages.
|Module=module |#default=template }} should first be tested in its [[{{
| doc | sandbox = Template:Main other | #default = Template:Main other }}/sandbox|/sandbox]] or [[{{
| doc | sandbox = Template:Main other | #default = Template:Main other }}/testcases|/testcases]] subpages{{
|Module=. |#default= or in your own user subpage. }} The tested changes can then be added to this page in a single edit. Please consider discussing any changes {{#if:|at [[{{{2}}}]]|on the [[{{
| doc | sandbox = Template talk:Main other | #default = Template talk:Main other }}|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]
This template usually takes two parameters, like this:
- redirect Template:Tlc
("Tlc" would imply "[T]emplate [l]ink in <[c]ode> font" � except Template:Tlc doesn't (as of August 2014) include a link. Hence this "Tc" redirect.)
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:
- {{{{#if:main other |main other | tlf|...}}{{#ifeq:[[Category:Some article maintenance category]]|[[Category:Some article maintenance category]]| |[[Category:Some article maintenance category]] | }}{{#ifeq:x|| |{{{3}}} | }}{{#ifeq:x|| |{{{4}}} | }}{{#ifeq:x|| |{{{5}}} | }}{{#ifeq:x|| |{{{6}}} | }}{{#ifeq:x|| |{{{7}}} | }}{{#ifeq:x|| |{{{8}}} | }}{{#ifeq:x|| |{{{9}}} | }}}}
Note that guidelines do not support categorization in templates.
Or to warn that a template should not be used on other pages:
- {{{{#if:main other |main other | tlf|...}}{{#ifeq: | | | | }}{{#ifeq:This template should only be used in articles.|This template should only be used in articles.| |This template should only be used in articles. | }}{{#ifeq:x|| |{{{4}}} | }}{{#ifeq:x|| |{{{5}}} | }}{{#ifeq:x|| |{{{6}}} | }}{{#ifeq:x|| |{{{7}}} | }}{{#ifeq:x|| |{{{8}}} | }}{{#ifeq:x|| |{{{9}}} | }}}}
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]
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:
- {{{{#if:main other |main other | tlf|...}}{{#ifeq:result if in mainspace |result if in mainspace | |result if in mainspace | }}{{#ifeq:result if elsewhere |result if elsewhere | |result if elsewhere | }}{{#ifeq:demospace=main|demospace=main| |demospace=main | }}{{#ifeq:x|| |{{{5}}} | }}{{#ifeq:x|| |{{{6}}} | }}{{#ifeq:x|| |{{{7}}} | }}{{#ifeq:x|| |{{{8}}} | }}{{#ifeq:x|| |{{{9}}} | }}}}
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:
- {{{{#if:main other |main other | tlf|...}}{{#ifeq:result if in mainspace |result if in mainspace | |result if in mainspace | }}{{#ifeq:result if elsewhere |result if elsewhere | |result if elsewhere | }}{{#ifeq:demospace={{{demospace|}}} |demospace={{{demospace|}}} | |demospace={{{demospace|}}} | }}{{#ifeq:x|| |{{{5}}} | }}{{#ifeq:x|| |{{{6}}} | }}{{#ifeq:x|| |{{{7}}} | }}{{#ifeq:x|| |{{{8}}} | }}{{#ifeq:x|| |{{{9}}} | }}}}
Technical details[edit]
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.
Redirects[edit]
- {{article only}}
- {{ns0}}
- {{when in article}}
{{#ifeq:Main other|sandbox | |
}}
The above documentation is transcluded from Template:Main other/doc. (edit | history) Editors can experiment in this template's sandbox (create | mirror) and testcases (create) pages. Please add categories to the /doc subpage. Subpages of this template. |
{{#if:|
[[Category:Template documentation pages{{#translation:}}]] }}