<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://mediawiki.sinofsx.org/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E6%9D%BF%3ANamespace_detect%2Fdoc</id>
	<title>模板:Namespace detect/doc - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.sinofsx.org/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E6%9D%BF%3ANamespace_detect%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.sinofsx.org/index.php?title=%E6%A8%A1%E6%9D%BF:Namespace_detect/doc&amp;action=history"/>
	<updated>2026-04-06T02:22:53Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://mediawiki.sinofsx.org/index.php?title=%E6%A8%A1%E6%9D%BF:Namespace_detect/doc&amp;diff=1543&amp;oldid=prev</id>
		<title>TeCHiScy：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.sinofsx.org/index.php?title=%E6%A8%A1%E6%9D%BF:Namespace_detect/doc&amp;diff=1543&amp;oldid=prev"/>
		<updated>2018-05-05T03:14:11Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{documentation subpage}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the {{tl|namespace detect}} meta-template.&lt;br /&gt;
&lt;br /&gt;
It helps other templates detect what type of page they are on.&lt;br /&gt;
&lt;br /&gt;
It detects and groups all the different [[Project:Namespaces|namespaces]] used on MediaWiki.org into several types:&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; = Main/article space, as in normal MediaWiki.org articles.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;talk&amp;#039;&amp;#039;&amp;#039; = Any talk space, such as page names that start with &amp;quot;Talk:&amp;quot;, &amp;quot;User talk:&amp;quot;, &amp;quot;File talk:&amp;quot; and so on.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;user, project, file, mediawiki, template, help, category&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;book&amp;#039;&amp;#039;&amp;#039; = The other namespaces except the talk pages.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;other&amp;#039;&amp;#039;&amp;#039; = Any namespaces that were not specified as a parameter to the template. See explanation below.&lt;br /&gt;
&lt;br /&gt;
For backwards compatibility this template also understands the old name &amp;#039;&amp;#039;&amp;#039;image&amp;#039;&amp;#039;&amp;#039; for &amp;#039;&amp;#039;&amp;#039;file&amp;#039;&amp;#039;&amp;#039;. But using &amp;#039;&amp;#039;&amp;#039;image&amp;#039;&amp;#039;&amp;#039; is now deprecated.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note!&amp;#039;&amp;#039;&amp;#039; For most usage cases it might be better to use the simpler namespace detection templates. (See the [[#See also|see also]] section below.) Since this template is more prone to human errors such as misspelling the parameter names. &lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
This template takes one or more parameters named after the different page types as listed above. Like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{namespace detect&lt;br /&gt;
| main  = Article text&lt;br /&gt;
| talk  = Talk page text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the template is on a main (article) page, it will return this:&lt;br /&gt;
&lt;br /&gt;
:{{namespace detect| demospace=main&lt;br /&gt;
| main  = Article text&lt;br /&gt;
| talk  = Talk page text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
If the template is on any other page than an article or a talk page it will return this:&lt;br /&gt;
&lt;br /&gt;
:{{namespace detect&lt;br /&gt;
| main  = Article text&lt;br /&gt;
| talk  = Talk page text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The example above made the template return something for all page types. But if we don&amp;#039;t use the &amp;#039;&amp;#039;&amp;#039;other&amp;#039;&amp;#039;&amp;#039; parameter or leave it empty then it will not return anything for the other page types. Like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{namespace detect&lt;br /&gt;
| file     = File page text&lt;br /&gt;
| category = Category page text&lt;br /&gt;
| other    =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On any pages other than file and category pages the code above will render nothing.&lt;br /&gt;
&amp;lt;!-- Do not remove this one. It is supposed to render nothing, but we have it here for testing purposes. --&amp;gt;&lt;br /&gt;
:{{namespace detect&lt;br /&gt;
| file     = File page text&lt;br /&gt;
| category = Category page text&lt;br /&gt;
| other    =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
By using an empty parameter you can make it so the template doesn&amp;#039;t render anything for some specific page type. Like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{namespace detect&lt;br /&gt;
| main  = &lt;br /&gt;
| other = Other pages text&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code above will render nothing when on mainspace (article) pages, but will return this when on other pages:&lt;br /&gt;
&lt;br /&gt;
:{{namespace detect&lt;br /&gt;
| main  = &lt;br /&gt;
| other = Other pages text&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Demospace and page ===&lt;br /&gt;
For testing and demonstration purposes this template can take two parameters named &amp;#039;&amp;#039;&amp;#039;demospace&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;page&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Demospace understands any of the page type names used by this template, including the &amp;#039;&amp;#039;&amp;#039;other&amp;#039;&amp;#039;&amp;#039; type. It tells the template to behave like it is on some specific type of page. Like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{namespace detect &lt;br /&gt;
| main  = Article text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
| demospace = main&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter on what kind of page the code above is used it will return this:&lt;br /&gt;
&lt;br /&gt;
:{{namespace detect &lt;br /&gt;
| main  = Article text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
| demospace = main&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;page&amp;#039;&amp;#039;&amp;#039; parameter instead takes a normal pagename. It makes this template behave exactly as if on that page. The pagename doesn&amp;#039;t have to be an existing page. Like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{namespace detect &lt;br /&gt;
| user  = User page text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
| page = User:Example&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter on what kind of page the code above is used it will return this:&lt;br /&gt;
&lt;br /&gt;
:{{namespace detect &lt;br /&gt;
| user  = User page text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
| page = User:Example&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
It can be convenient to let your template understand the demospace and/or page parameter and send it on to the {{tl|namespace detect}} template. Then do like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{namespace detect &lt;br /&gt;
| main  = Article text&lt;br /&gt;
| other = Other pages text&lt;br /&gt;
| demospace = {{{demospace|}}}&lt;br /&gt;
| page  = {{{page|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If both the &amp;#039;&amp;#039;&amp;#039;demospace&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;page&amp;#039;&amp;#039;&amp;#039; parameters are empty or undefined then the template will detect page types as usual.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
List of all parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{namespace detect&lt;br /&gt;
| main  = &lt;br /&gt;
...&lt;br /&gt;
| other =&lt;br /&gt;
| demospace = {{{demospace|}}} / main / talk / user / &lt;br /&gt;
              project / file / mediawiki / template / &lt;br /&gt;
              help / category / book / other&lt;br /&gt;
| page  = {{{page|}}} / User:Example&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Empty values to the &amp;quot;main&amp;quot; ... &amp;quot;book&amp;quot; parameters have special meaning.&lt;br /&gt;
&lt;br /&gt;
=== Technical details ===&lt;br /&gt;
If you intend to feed tables as content to the numbered parameters of this template, then you need to know this:&lt;br /&gt;
&lt;br /&gt;
[[Help:Template|Templates]] do have a problem to handle parameter data that contains pipes &amp;quot;&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;&amp;quot;, unless the pipe is inside another template &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{name|param1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or inside a piped link &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Help:Template|help]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Thus templates can not handle [[Help:Table|wikitables]] as input unless you escape them by using the {{tn|!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use &amp;quot;[[w:Help:HTML in wikitext|HTML wikimarkup]]&amp;quot; for the table code, which is more robust.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&amp;gt;&lt;br /&gt;
[[Category:Utility templates]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeCHiScy</name></author>
	</entry>
</feed>