×
Create a new article
Write your page title here:
We currently have 230 articles on Farthest Frontier. Type your article name above or create one of the articles listed here!



    Farthest Frontier

    This is the documentation page for Module:Pagetype

    This module is used to detect the page type of a given page. It detects redirect 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}}.

    Syntax

    Basic usage
    {{#invoke:pagetype|main}}
    
    All parameters
    {{#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          = 
    | dab               = 
    | na                = 
    | other             = 
    | plural            = 
    }}
    

    Basic usage

    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 the namespace:

    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.

    Example
    Code Result
    {{#invoke:pagetype|main}} module

    Page parameter

    You can use the page parameter to make the module act as though it was called from that page.

    {{#invoke:pagetype|main|page=page name}}
    
    Examples
    Code Result
    {{#invoke:pagetype|main|page=United Kingdom}} article
    {{#invoke:pagetype|main|page=UK}} article
    {{#invoke:pagetype|main|page=Talk:United Kingdom}} article
    {{#invoke:pagetype|main|page=File:Example.svg}} file
    {{#invoke:pagetype|main|page=Wikipedia:Namespace}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#invoke:pagetype|main|page=TimedText:Imagine.ogg.en.srt}} page

    Adding and removing namespaces

    It is possible to specify different behaviour for each namespace than that described in the basic 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 by Module: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.

    Examples
    Code Result
    {{#invoke:pagetype|main|page=Wikipedia:Namespace}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#invoke:pagetype|main|page=Wikipedia:Namespace|wikipedia=yes}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#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.ogg.en.srt}} page
    {{#invoke:pagetype|main|page=TimedText:Imagine.ogg.en.srt|timedtext=Yes}} Timed Text page

    Default namespace sets

    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 Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    article
    User Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    Template:Cross user page
    Wikipedia Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    Template:Cross project page
    File Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    file
    MediaWiki Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    Template:Cross interface page
    Template Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    template
    Help Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    Template:Cross help page
    Category Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    category
    Portal Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    Template:Cross portal
    Draft Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    Template:Cross draft
    TimedText Template:Cross Template:Cross
    1. REDIRECT w:Template:Tick
    Template:Cross Timed Text page
    Module Template:Cross
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    1. REDIRECT w:Template:Tick
    module
    Topic (Flow boards) Template:Cross Template:Cross
    1. REDIRECT w:Template:Tick
    Template:Cross topic
    All talk namespaces Template:Cross Template:Cross
    1. REDIRECT w:Template:Tick
    Template:Cross talk page
    Special Template:Cross Template:Cross
    1. REDIRECT w:Template:Tick
    Template:Cross special page
    Media Template:Cross Template:Cross
    1. REDIRECT w:Template:Tick
    Template:Cross file
    Examples
    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}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#invoke:pagetype|main|page=Wikipedia:Namespace|defaultns=extended}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#invoke:pagetype|main|page=TimedText:Imagine.ogg.en.srt|defaultns=extended}} page
    {{#invoke:pagetype|main|page=TimedText:Imagine.ogg.en.srt|defaultns=all}} Timed Text page

    Custom namespace values

    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
    }}
    
    Examples
    Code Result
    {{#invoke:pagetype|main|page=Wikipedia:Namespace}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#invoke:pagetype|main|page=Wikipedia:Namespace|wikipedia=custom text}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#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.ogg.en.srt}} page
    {{#invoke:pagetype|main|page=TimedText:Imagine.ogg.en.srt|timedtext=custom text}} custom text

    Talk parameter

    Normally, the module will treat talk pages as if they were in the corresponding subject namespace. However, if the talk parameter is set, the module will treat talk pages separately from subject pages. The talk 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".

    Examples
    Code Result
    {{#invoke:pagetype|main|page=Wikipedia talk:Namespace}} article
    {{#invoke:pagetype|main|page=Wikipedia talk:Namespace|wikipedia=yes}} article
    {{#invoke:pagetype|main|page=Wikipedia talk:Namespace|talk=yes}} article
    {{#invoke:pagetype|main|page=Wikipedia talk:Namespace|wikipedia=yes|talk=yes}} article
    {{#invoke:pagetype|main|page=Wikipedia talk:Namespace|talk=custom text}} article
    {{#invoke:pagetype|main|page=Wikipedia talk:Namespace|wikipedia=yes|talk=custom text}} article

    Main namespace classes

    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 of article.

    Class Class values Output
    Disambiguation page disambiguation, disambig, disamb, dab page
    No applicable class na, n/a page

    You can input the class value in any combination of upper and lower case.

    Custom main namespace classes

    It is also possible to specify a custom value for the main namespace classes:

    {{#invoke:pagetype|main|class|dab=yes|na=yes}}
    
    {{#invoke:pagetype|main|class|dab=custom text|na=custom text}}
    

    This works the same way that it does for the custom namespace page types. Possible parameters are:

    • dab: a custom value for disambiguation-class pages. If set to "yes", "y", "true" or "1", this produces "disambiguation page". If set to "no", "n", "false" or "0", no custom value is produced. If set to any other value it produces that text.
    • na: a custom value for NA-class pages. It works in the same way as the dab parameter. The default value for "yes" etc. is "page".
    Examples
    Code Result
    {{#invoke:pagetype|main|page=United Kingdom}} article
    {{#invoke:pagetype|main|page=United Kingdom|dab}} page
    {{#invoke:pagetype|main|page=United Kingdom|dab|dab=custom text}} custom text
    {{#invoke:pagetype|main|page=United Kingdom|na}} page
    {{#invoke:pagetype|main|page=United Kingdom|na|na=custom text}} custom text

    Redirects

    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}}
    
    Examples
    Code Result
    {{#invoke:pagetype|main|page=UK}} article
    {{#invoke:pagetype|main|page=UK|redirect=no}} article
    {{#invoke:pagetype|main|page=UK|redirect=custom text}} article

    Other namespaces

    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}}
    
    Examples
    Code Result
    {{#invoke:pagetype|main|page=Wikipedia:Namespace}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#invoke:pagetype|main|page=Wikipedia:Namespace|other=custom text}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).
    {{#invoke:pagetype|main|page=Wikipedia:Namespace|other=custom text|wikipedia=wikipedia-space text}} Lua error in Module:Pagetype at line 182: attempt to concatenate field 'subjectNsText' (a nil value).

    Plurals

    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 in Module:Pagetype/config to allow localisation.

    Capitalisation

    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
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.