Template:Main other/doc

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.

Parameters
{	"params": { "1": {			"required": false, "label": "Main", "type": "string", "description": "Text to return if the article is in the main namespace." },		"2": {			"required": false, "label": "Other", "type": "string", "description": "Text to return if the article is not in the main namespace." },		"demospace": { "required": false, "label": "Demonstration namespace", "type": "string/line", "description": "Set this to demonstrate the different appearances of your template in the documentation for your template." }	},	"description": "This template helps other templates detect if they are in a main namespace (article) page or some \"other\" type of page." }

Basic usage
This template usually takes two parameters, like this:

If the template is on a main space (article) page, it will return this:



If the template is on any other page, it will return this:



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:

Or to warn that a template should not be used on other pages:

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:

No matter on what kind of page the code above is used it will return this:



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. Then do like this:

Technical details
This template detects article "Talk:" pages as type other.