Template:Main other/doc

From The Darts Wiki
Jump to navigation Jump to search

{{#ifeq:doc |doc

    | 

{{#ifeq:show |show

|

        }}{{#if: |
         |   {{#ifexist:Template:Main other
                  | [[Category:{{#switch:Template |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
                  |
                 }}
        }}
    | 
   }}

{{#if:{{#ifeq:doc|sandbox|1}}{{#ifeq:doc|doc|1}}||{{#switch:Lua error: First parameter must be one of edit, move, create, upload, undelete, autoreview.|sysop|templateeditor|interfaceadmin=|#default=}}}}

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]