ଛାଞ୍ଚ:Pgn/doc
This is a documentation subpage for ଛାଞ୍ଚ:Pgn. It may contain usage information, categories and other content that is not part of the original ଛାଞ୍ଚ page. |
This template is new. It has passed all my tests, but I might do some modifications to it during the next few weeks. --David Göthberg (talk) 15:02, 4 December 2009 (UTC) |
This is the {{pgn}} or pagename meta-template.
It helps handling pagenames, especially when working with subpages.
The "page" parameter
ସମ୍ପାଦନାThe operations this template does is normally based on the pagename of the page it is used on. But any other pagename can be fed as the "page=" parameter. Note that there are two different page parameters. Like this:
{{pgn|page}}
= Pgn/doc{{pgn|page|page=Help:A/B/C/D}}
= A/B/C/D
The double usage of page might seem confusing, but it is convenient when using this template together with other templates such as {{basepage subpage}} and {{namespace detect}} that also understand the "page=" parameter.
Magic words
ସମ୍ପାଦନାSome of the functions in this template are mostly here for completeness. When there is an exactly equivalent magic word that works in all namespaces, then it is also listed in these examples. We recommend you use the magic word if there is one, since that is more efficient. It is when working with subpages that this template excels.
Namespace and pagename
ସମ୍ପାଦନାThis template can return the current namespace, subject space and talk space. Like this:
{{pgn|ns}} = {{NAMESPACE}} {{pgn|ss}} = {{SUBJECTSPACE}} {{pgn|ts}} = {{TALKSPACE}} {{pgn|ts| page=Help:A/B/C/D }} = {{TALKSPACE: Help:A/B/C/D }}
- ଛାଞ୍ଚ
- ଛାଞ୍ଚ
- ଛାଞ୍ଚ ଆଲୋଚନା
- ସହଯୋଗ ଆଲୋଚନା
This template can return the pagename, and it can combine the pagename with the namespace, subject space or talk space. Like this:
{{pgn|page}} = {{PAGENAME}} {{pgn|fullpage}} = {{FULLPAGENAME}} {{pgn|ns|page}} = {{FULLPAGENAME}} {{pgn|ss|page}} = {{SUBJECTPAGENAME}} {{pgn|ts|page}} = {{TALKPAGENAME}} {{pgn|ts|page| page=Help:A/B/C/D }} = {{TALKPAGENAME: Help:A/B/C/D }}
- Pgn/doc
- ଛାଞ୍ଚ:Pgn/doc
- ଛାଞ୍ଚ:Pgn/doc
- ଛାଞ୍ଚ:Pgn/doc
- ଛାଞ୍ଚ ଆଲୋଚନା:Pgn/doc
- ସହଯୋଗ ଆଲୋଚନା:A/B/C/D
This template correctly removes the colon ":" for the main (article) space. It also converts namespace aliases such as "Image" to "File". Like this:
{{pgn|ss|page| page=Talk:An article }} = {{SUBJECTPAGENAME: Talk:An article }} {{pgn|ns|page| page=Image:An image }} = {{FULLPAGENAME: Image:An image }} {{pgn|ns|page| page=WP:Village pump }} = {{FULLPAGENAME: WP:Village pump }}
- An article
- ଫାଇଲ:An image
- ଉଇକିପିଡ଼ିଆ:Village pump
Subpages
ସମ୍ପାଦନାThe following examples are about subpages. To see them correctly view this documentation at Template:Pgn/doc instead.
This template can return the basepagename of the current page, and it can combine the basepagename with the namespace, subject space or talk space. Like this:
{{pgn|basepage}} {{pgn|fullbasepage}} {{pgn|ns|basepage}} {{pgn|ss|basepage}} {{pgn|ts|basepage}} {{pgn|ns|basepage| page=Help:A/B/C/D }}
- Pgn
- ଛାଞ୍ଚ:Pgn
- ଛାଞ୍ଚ:Pgn
- ଛାଞ୍ଚ:Pgn
- ଛାଞ୍ଚ ଆଲୋଚନା:Pgn
- ସହଯୋଗ:A/B/C
This template can return the subpagename. Like this:
{{pgn|subpage}} {{pgn|subpage| page=Help:A/B/C/D }}
- doc
- D
This template can return the rootpage. Like this:
{{pgn|rootpage}} {{pgn|ns|rootpage}} {{pgn|fullrootpage}} {{pgn|fullrootpage| page=Help:A/B/C/D }}
- Pgn
- ଛାଞ୍ଚ:Pgn
- ଛାଞ୍ଚ:Pgn
- ସହଯୋଗ:A
Relative paths
ସମ୍ପାଦନାThis template can handle relative paths. And it can take the name of a subpage to add to the path. Like this:
{{pgn|..}} {{pgn|ns|..}} {{pgn|ns|..| sibling }} {{pgn|ns|..| page=Help:A/B/C/D }} {{pgn|ns|..| sibling | page=Help:A/B/C/D }}
- Pgn
- ଛାଞ୍ଚ:Pgn
- ଛାଞ୍ଚ:Pgn/sibling
- ସହଯୋଗ:A/B/C
- ସହଯୋଗ:A/B/C/sibling
This template can handle relative paths up to two levels deep:
{{pgn|ns|..|..}} {{pgn|ns|..|..| uncle }} {{pgn|ns|..|..| page=Help:A/B/C/D }} {{pgn|ns|..|..| uncle | page=Help:A/B/C/D }}
- ଛାଞ୍ଚ:Pgn
- ଛାଞ୍ଚ:Pgn/uncle
- ସହଯୋଗ:A/B
- ସହଯୋଗ:A/B/uncle
Subpage levels
ସମ୍ପାଦନାThis template can split up and handle each level in a pagename, in up to four subpage levels. (The "+ +" used in this example is to show when this template returns an empty string.) Like this:
{{pgn|page1| page=Help:A/B/C/D }} {{pgn|page2| page=Help:A/B/C/D }} {{pgn|page3| page=Help:A/B/C/D }} {{pgn|page4| page=Help:A/B/C/D }} +{{pgn|page4| page=Help:A/B }}+
- A
- B
- C
- D
- ++
And it can put the parts together in pretty much any way you want. Like this:
{{pgn|ns|page1|page2| page=Help:A/B/C/D }} {{pgn|page3|page4| page=Help:A/B/C/D }}
- ସହଯୋଗ:A/B
- C/D
Parameters
ସମ୍ପାଦନାList of all parameters:
{{pgn| ns / ss / ts | page / basepage / rootpage | page = User:Example }} {{pgn| fullpage / fullbasepage / subpage / fullrootpage }} {{pgn| .. | .. }} {{pgn| page1 | page2 | page3 | page4 }}
Note that several of the parameters can be fed to more than one position.
Technical details
ସମ୍ପାଦନାThis template detects subpages even when used in namespaces that don't have the MediaWiki subpage feature enabled. Thus this template works the same in all namespaces.
This template calls {{pgn/core}} which holds most of the code for {{pgn}}, while {{pgn}} itself does parameter preprocessing.
See also
ସମ୍ପାଦନାPagename-handling and detection templates:
- {{pgn}} – Can take apart and put together pagenames in several ways.
- {{basepage subpage}} – For detecting if on a basepage, subpage or subsubpage.
- {{if pagename}} – For pattern matching on the pagename.
- {{if pagename multi}} – For pattern matching on the pagename, has input reuse.
- {{IP-user other}} – For detecting IP-user pages.
Easy to use namespace-detection templates:
- {{main other}} – For article templates.
- {{talk other}} – For talk page templates.
- {{user other}} – For user page templates.
- {{wikipedia other}} – For detecting "Wikipedia:" pages.
- {{file other}} – For file (image) templates.
- {{template other}} – For detecting template pages.
- {{help other}} – For help page templates.
- {{category other}} – For category templates.
- {{portal other}} – For portal templates.
- {{book other}} – For detecting book pages.
More complex namespace-detection templates:
- {{namespace detect}} – The very versatile one.
- {{namespace detect showall}} – The extremely versatile one, has input reuse.
- {{talkspace detect}} - For detecting talk pages on various namespaces.
Technical stuff:
- mw:Help:Magic words – About
{{NAMESPACE}}
etc. - mw:Help:Extension:ParserFunctions – About
{{#ifeq:|||}}
etc.