| This is adocumentationsubpage forModule:Pagetype. It may contain usage information,categories and other content that is not part of the original module page. |
| This Lua module is used onapproximately 18,400,000 pages, or roughly 29% of all pages. To avoid major disruption and server load, any changes should be tested in the module's/sandbox or/testcases subpages, or in your ownmodule sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on thetalk page before implementing them. |
| Thismodule is rated asready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned onhelp pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed throughsandbox testing rather than repeated trial-and-error editing. |
| This module can only be edited byadministrators because it istranscluded onto one or morecascade-protected pages. |
| This module depends on the following other modules: |
This module is used to detect the page type of a given page. It detectsredirect pages automatically and is highly customisable. It can be used on its own or as a meta-module to create other page-type-detection templates. This module can also be accessed using{{pagetype}}.
{{#invoke:pagetype|main}}{{#invoke:pagetype|main| page = | defaultns = | main = | user = | wikipedia = | project = | wp = | file = | image = | mediawiki = | template = | help = | category = | portal = | draft = | timedtext = | module = | topic = | special = | media = | talk = | redirect =| soft_redirect = | dab = | na = | other = | sia =| nonexistent =| plural = }}For simple detection of the page type of the current page, use the default settings:
{{#invoke:pagetype|main}}That will produce the following results, depending on the page type or thenamespace:
| Page type / namespace | Output |
|---|---|
| Redirects (in any namespace) | redirect |
| Main namespace | article |
| File namespace | file |
| Template namespace | template |
| Category namespace | category |
| Module namespace | module |
| Other namespaces | page |
If the module is used on a talk page, it will detect the page type for the corresponding subject page.
| Code | Result |
|---|---|
{{#invoke:pagetype|main}} | module |
You can use thepage parameter to make the module act as though it was called from that page.
{{#invoke:pagetype|main|page=page name}}| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=United Kingdom}} | article |
{{#invoke:pagetype|main|page=UK}} | redirect |
{{#invoke:pagetype|main|page=Talk:United Kingdom}} | article |
{{#invoke:pagetype|main|page=File:Example.svg}} | file |
{{#invoke:pagetype|main|page=Wikipedia:Namespace}} | page |
{{#invoke:pagetype|main|page=TimedText:Imagine (John Lennon song - sample).ogg.en.srt}} | page |
It is possible to specify different behaviour for each namespace than that described in thebasic usage section. For example, you might want the module to display "user page" for pages in the user namespace, instead of the default "page". To do this, you can use the code|user=yes. This looks up the typical name used for pages in the user namespace, in this case "user page", and uses that text when the module is used with a page in the user namespace. To use this with other namespaces, use the namespace name in lower case as a parameter:
{{#invoke:pagetype|main| user =yes| wikipedia =yes| project =yes| wp =yes| mediawiki =yes| help =yes| portal =yes| draft =yes| timedtext =yes| topic =yes| special =yes| media =yes}}You can use any of the following to specify the namespace: "yes", "y", "true" or "1". They can be used in any combination of upper and lower case. (These values are defined byModule:Yesno.)
The default text for these namespaces is as follows:
| Page type / namespace | Output |
|---|---|
| User namespace | user page |
| Wikipedia namespace | project page |
| MediaWiki namespace | interface page |
| Help namespace | help page |
| Portal namespace | portal |
| Draft namespace | draft |
| Timed Text namespace | Timed Text page |
| Topic namespace | topic |
| Special namespace | special page |
| Media namespace | file |
You can use a similar process to remove any of the default namespace values as well. For example, if you use the code|template=no, then the module will display "page" when used on a template page, rather than the default "template".
{{#invoke:pagetype|main| main =no| file =no| template =no| category =no| module =no}}The following values will all work to remove namespace values: "no", "n", "false" or "0". They can be used in any combination of upper and lower case.
| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=Wikipedia:Namespace}} | page |
{{#invoke:pagetype|main|page=Wikipedia:Namespace|wikipedia=yes}} | project page |
{{#invoke:pagetype|main|page=Talk:United Kingdom}} | article |
{{#invoke:pagetype|main|page=Talk:United Kingdom|talk=y}} | talk page |
{{#invoke:pagetype|main|page=United Kingdom}} | article |
{{#invoke:pagetype|main|page=United Kingdom|main=no}} | page |
{{#invoke:pagetype|main|page=TimedText:Imagine (John Lennon song - sample).ogg.en.srt}} | page |
{{#invoke:pagetype|main|page=TimedText:Imagine (John Lennon song - sample).ogg.en.srt|timedtext=Yes}} | Timed Text page |
As well as adding and removing individual namespaces, it is possible to specify different sets of namespaces by using the|defaultns=. There are four different sets available:all,extended,none and the default set. These sets allow you to specify many namespaces at once, without having to use all of the individual namespace parameters. Namespaces are set according to the following table:
| Namespace | Value of|defaultns= | Output | |||
|---|---|---|---|---|---|
none | extended | all | Other values | ||
| Main | article | ||||
| User | user page | ||||
| Wikipedia | project page | ||||
| File | file | ||||
| MediaWiki | interface page | ||||
| Template | template | ||||
| Help | help page | ||||
| Category | category | ||||
| Portal | portal | ||||
| Draft | draft | ||||
| TimedText | Timed Text page | ||||
| Module | module | ||||
| Topic (Flow boards) | topic | ||||
| All talk namespaces | talk page | ||||
| Special | special page | ||||
| Media | file | ||||
| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=United Kingdom}} | article |
{{#invoke:pagetype|main|page=United Kingdom|defaultns=none}} | page |
{{#invoke:pagetype|main|page=Talk:United Kingdom}} | article |
{{#invoke:pagetype|main|page=Talk:United Kingdom|defaultns=all}} | talk page |
{{#invoke:pagetype|main|page=File:Example.svg}} | file |
{{#invoke:pagetype|main|page=File:Example.svg|defaultns=none}} | page |
{{#invoke:pagetype|main|page=Wikipedia:Namespace}} | page |
{{#invoke:pagetype|main|page=Wikipedia:Namespace|defaultns=extended}} | project page |
{{#invoke:pagetype|main|page=TimedText:Imagine (John Lennon song - sample).ogg.en.srt|defaultns=extended}} | page |
{{#invoke:pagetype|main|page=TimedText:Imagine (John Lennon song - sample).ogg.en.srt|defaultns=all}} | Timed Text page |
It is possible to specify a custom value for any namespace:
{{#invoke:pagetype|main| main =custom text| user =custom text| wikipedia =custom text| project =custom text| wp =custom text| file =custom text| image =custom text| mediawiki =custom text| template =custom text| help =custom text| category =custom text| portal =custom text| draft =custom text| timedtext =custom text| module =custom text| topic =custom text| special =custom text| media =custom text}}| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=Wikipedia:Namespace}} | page |
{{#invoke:pagetype|main|page=Wikipedia:Namespace|wikipedia=custom text}} | custom text |
{{#invoke:pagetype|main|page=Talk:United Kingdom}} | article |
{{#invoke:pagetype|main|page=Talk:United Kingdom|talk=custom text}} | custom text |
{{#invoke:pagetype|main|page=United Kingdom}} | article |
{{#invoke:pagetype|main|page=United Kingdom|main=custom text}} | custom text |
{{#invoke:pagetype|main|page=TimedText:Imagine (John Lennon song - sample).ogg.en.srt}} | page |
{{#invoke:pagetype|main|page=TimedText:Imagine (John Lennon song - sample).ogg.en.srt|timedtext=custom text}} | custom text |
Normally, the module will treat talk pages as if they were in the corresponding subject namespace. However, if thetalk parameter is set, the module will treat talk pages separately from subject pages. Thetalk parameter sets values for all talk pages, i.e. pages in the Talk: namespace, pages in the User talk: namespace, pages in the Wikipedia talk: namespace, and so on.
{{#invoke:pagetype|main|talk=yes}}{{#invoke:pagetype|main|talk=custom text}}The default value for "talk=yes" is "talk page".
| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=Wikipedia talk:Namespace}} | page |
{{#invoke:pagetype|main|page=Wikipedia talk:Namespace|wikipedia=yes}} | project page |
{{#invoke:pagetype|main|page=Wikipedia talk:Namespace|talk=yes}} | talk page |
{{#invoke:pagetype|main|page=Wikipedia talk:Namespace|wikipedia=yes|talk=yes}} | talk page |
{{#invoke:pagetype|main|page=Wikipedia talk:Namespace|talk=custom text}} | custom text |
{{#invoke:pagetype|main|page=Wikipedia talk:Namespace|wikipedia=yes|talk=custom text}} | custom text |
For pages in the main namespace, it is possible to add a class value in the first positional parameter:
{{#invoke:pagetype|main|class}}If the class value matches one of the values in the table below, it will produce an alternative to the default output ofarticle.
| Class | Class values | Output |
|---|---|---|
| No applicable class | na,n/a | page |
You can input the class value in any combination of upper and lower case.
It is also possible to specify a custom value for the main namespace classes:
{{#invoke:pagetype|main|class|na=yes}}{{#invoke:pagetype|main|class|na=custom text}}This works the same way that it does for the custom namespace page types. Possible parameters are:
dab parameter. The default value for "yes" etc. is "page".| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=United Kingdom}} | article |
{{#invoke:pagetype|main|page=United Kingdom|na}} | page |
{{#invoke:pagetype|main|page=United Kingdom|na|na=custom text}} | custom text |
By default, the module automatically detects redirects in all namespace. It is not possible to specify redirect behaviour by namespace, but you can turn redirect detection off, or use a custom value for redirect pages.
{{#invoke:pagetype|main|redirect=no}}{{#invoke:pagetype|main|redirect=custom text}}| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=UK}} | redirect |
{{#invoke:pagetype|main|page=UK|redirect=no}} | article |
{{#invoke:pagetype|main|page=UK|redirect=custom text}} | custom text |
By default, the module usesModule:Disambiguation to detectdisambiguation pages in the main namespace. If you want, you can turn this detection off, or use a custom value for disambiguation pages.
{{#invoke:pagetype|main|dab=no}}{{#invoke:pagetype|main|dab=custom text}}| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=Mercury}} | page |
{{#invoke:pagetype|main|page=Mercury|dab=no}} | article |
{{#invoke:pagetype|main|page=Mercury|dab=custom text}} | custom text |
Documentation pending.
Documentation pending.
Documentation pending.
By default, the module produces "page" if used from a namespace that hasn't been specified. This value can be changed with the|other= parameter:
{{#invoke:pagetype|main|other=custom text}}| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=Wikipedia:Namespace}} | page |
{{#invoke:pagetype|main|page=Wikipedia:Namespace|other=custom text}} | custom text |
{{#invoke:pagetype|main|page=Wikipedia:Namespace|other=custom text|wikipedia=wikipedia-space text}} | wikipedia-space text |
By default the module returns the name of the namespace in the singular. Adding the parameter|plural=y returns the plural form.
| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=United Kingdom}} | article |
{{#invoke:pagetype|main|page=United Kingdom|plural=y}} | articles |
{{#invoke:pagetype|main|page=Category:Books}} | category |
{{#invoke:pagetype|main|page=Category:Books|plural=y}} | categories |
The rules for pluralisation can be customised inModule:Pagetype/config to allow localisation.
By default the module returns the page type in lowercase. Adding the parameter|caps=y returns a version with a capital letter at the start.
| Code | Result |
|---|---|
{{#invoke:pagetype|main|page=United Kingdom}} | article |
{{#invoke:pagetype|main|page=United Kingdom|caps=y}} | Article |
{{#invoke:pagetype|main|page=United Kingdom|plural=y|caps=y}} | Articles |