Module:Namespace detect/doc: Difference between revisions

From HIBIKIFORUM
Jump to navigation Jump to search
(Created page with "{{module rating|p}} <includeonly> <!-- Categories below this line, please --> Category:Modules </includeonly>")
 
mNo edit summary
Line 1: Line 1:
{{module rating|p}}
{{Documentation subpage}}
{{Lua|Module:Namespace detect/data|Module:Yesno|Module:Arguments|Module:TableTools}}


This module allows you to output different text depending on the [[Wikipedia:NAMESPACE|namespace]] that a given page is in. It is a [[Wikipedia:Lua|Lua]] implementation of the {{tl|namespace detect}} template, with a few improvements: all namespaces and all namespace aliases are supported, and namespace names are detected automatically for the local wiki.
== Usage ==
<pre>
{{#invoke: Namespace detect | main
| page              = <!-- page to detect namespace for, if not the current page -->
| main              = <!-- text to return for the main namespace -->
| talk              = <!-- text to return for talk namespaces -->
<!-- text to return for specific subject namespaces -->
| portal            =
| category          =
| user             =
| wikipedia        =
| mediawiki        =
| book              =
| timedtext        =
| template          =
| special          =
| media            =
| file              =
| image            =
| help             =
| module            =
| other            = <!-- text to return for unspecified namespaces -->
| demospace        = <!-- namespace to display text for -->
| subjectns        = <!-- set to "yes" to treat talk pages as the corresponding subject page -->
}}
</pre>
== Parameters ==
; {{nobold|{{para|main}}}} : text to return if the page is in the main namespace.
; {{nobold|{{para|talk}}}} : text to return if the page is in a talk namespace. This can be any talk namespace - it will match any of "Talk:", "Wikipedia talk:", "User talk:", etc.
; {{nobold|Subject namespace parameters, e.g. {{para|wikipedia}}, {{para|user}}, {{para|file}}...}} : the text to return if the page is in the corresponding namespace. This module accepts all subject namespaces as parameters, including [[Wikipedia:Namespace#Aliases|namespace aliases]] and [[Wikipedia:Namespace#Virtual namespaces|virtual namespaces]]. See below for a list of supported values.
; {{nobold|{{para|other}}}} : text to return if no parameters for the page's namespace were specified. This text is also returned if {{para|demospace}} is set to an invalid namespace value.
; {{nobold|{{para|subjectns}}}} : if on a talk page, use the corresponding subject page. Can be set with values of "yes", "y", "true" or "1".
; {{nobold|{{para|demopage}}}} : specifies a page to detect the namespace of. If not specified, and if the {{para|demospace}} parameter is not set, then the module uses the current page.
; {{nobold|{{para|demospace}}}} : force the module to behave as if the page was in the specified namespace. Often used for demonstrations.
=== Namespace parameters ===
Possible values for subject namespace parameters are as follows:
{{#invoke:Namespace detect|table}}
== Table function ==
Use the following to display a table with the different possible namespace parameters:
<code>{{((}}#invoke:Namespace detect|table|talk=''yes''{{))}}</code>
To include the parameter for talk namespaces, use {{para|talk|yes}}.
== Porting to different wikis ==
This module is designed to be portable. To use it on a different wiki, all you need to do is to change the values in [[Module:Namespace detect/config]]. Instructions are available on that page.
== Technical details ==
The module uses a data page at [[Module:Namespace detect/data]]. This page is loaded with [[mw:Extension:Scribunto/Lua reference manual#mw.loadData|mw.loadData]], which means it is processed once per page rather than once per #invoke. This was done for performance reasons.
<includeonly>{{sandbox other||{{testcases other||


<includeonly>
<!-- Categories below this line, please -->
<!-- Categories below this line, please -->
[[Category:Modules]]
[[Category:Modules]]
</includeonly>
}}}}</includeonly>

Revision as of 22:54, 11 June 2023

Light bulb.png }}
It contains usage information, categories and other content that is not part of the original module page.

This module allows you to output different text depending on the namespace that a given page is in. It is a Lua implementation of the {{namespace detect}} template, with a few improvements: all namespaces and all namespace aliases are supported, and namespace names are detected automatically for the local wiki.

Usage

{{#invoke: Namespace detect | main
| page              = <!-- page to detect namespace for, if not the current page -->
| main              = <!-- text to return for the main namespace -->
| talk              = <!-- text to return for talk namespaces -->

<!-- text to return for specific subject namespaces -->
| portal            = 
| category          = 
| user 	            = 
| wikipedia         = 
| mediawiki         = 
| book              = 
| timedtext         = 
| template          = 
| special           = 
| media             = 
| file              = 
| image             = 
| help 	            = 
| module            = 

| other             = <!-- text to return for unspecified namespaces -->
| demospace         = <!-- namespace to display text for -->

| subjectns         = <!-- set to "yes" to treat talk pages as the corresponding subject page -->
}}

Parameters

|main=
text to return if the page is in the main namespace.
|talk=
text to return if the page is in a talk namespace. This can be any talk namespace - it will match any of "Talk:", "Wikipedia talk:", "User talk:", etc.
Subject namespace parameters, e.g. |wikipedia=, |user=, |file=...
the text to return if the page is in the corresponding namespace. This module accepts all subject namespaces as parameters, including namespace aliases and virtual namespaces. See below for a list of supported values.
|other=
text to return if no parameters for the page's namespace were specified. This text is also returned if |demospace= is set to an invalid namespace value.
|subjectns=
if on a talk page, use the corresponding subject page. Can be set with values of "yes", "y", "true" or "1".
|demopage=
specifies a page to detect the namespace of. If not specified, and if the |demospace= parameter is not set, then the module uses the current page.
|demospace=
force the module to behave as if the page was in the specified namespace. Often used for demonstrations.

Namespace parameters

Possible values for subject namespace parameters are as follows:

Namespace Aliases
main
user
hibikiforum project
file image
mediawiki
template
help
category
module
gadget
gadget definition

Table function

Use the following to display a table with the different possible namespace parameters:

{{#invoke:Namespace detect|table|talk=yes}}

To include the parameter for talk namespaces, use |talk=yes.

Porting to different wikis

This module is designed to be portable. To use it on a different wiki, all you need to do is to change the values in Module:Namespace detect/config. Instructions are available on that page.

Technical details

The module uses a data page at Module:Namespace detect/data. This page is loaded with mw.loadData, which means it is processed once per page rather than once per #invoke. This was done for performance reasons.