6,148 bytes added
, 05:15, 16 July 2021
{{used in system}}
{{Module rating|release}}
This module is meant to allow the goodies listed in {{slink|mw:Extension:Scribunto/Lua reference manual#Title objects}} to be accessed by people who do not want to write a Lua module.
Usage is: <nowiki>{{#invoke:Page|</nowiki>'''function'''|''parameters''<nowiki>}}</nowiki>
== Functions==
In the usage above, '''function''' is one of the following fields or functions for title objects:
:* '''id''': The page_id. 0 if the page does not exist.
:* '''interwiki''': The interwiki prefix, or the empty string if none.
:* '''namespace''': The namespace number.
:* '''fragment''': The fragment, or the empty string. May be assigned.
:* '''nsText''': The text of the namespace for the page.
:* '''subjectNsText''': The text of the subject namespace for the page.
:* '''text''': The title of the page, without the namespace or interwiki prefixes.
:* '''prefixedText''': The title of the page, with the namespace and interwiki prefixes.
:* '''fullText''': The title of the page, with the namespace and interwiki prefixes and the fragment.
:* '''rootText''': If this is a subpage, the title of the root page without prefixes. Otherwise, the same as title.text.
:* '''baseText''': If this is a subpage, the title of the page it is a subpage of without prefixes. Otherwise, the same as title.text.
:* '''subpageText''': If this is a subpage, just the subpage name. Otherwise, the same as title.text.
:* '''canTalk''': Whether the page for this title could have a talk page.
:* '''exists''': Whether the page exists. Alias for fileExists for Media-namespace titles.
:* '''fileExists''': Whether the file exists. For File- and Media-namespace titles, this is expensive.
:* '''isContentPage''': Whether this title is in a content namespace.
:* '''isExternal''': Whether this title has an interwiki prefix.
:* '''isLocal''': Whether this title is in this project. For example, on the English Wikipedia, any other Wikipedia is considered "local" while Wiktionary and such are not.
:* '''isRedirect''': Whether this is the title for a page that is a redirect.
:* '''isSpecialPage''': Whether this is the title for a possible special page (i.e. a page in the Special: namespace).
:* '''isSubpage''': Whether this title is a subpage of some other title.
:* '''isTalkPage''': Whether this is a title for a talk page.
:* '''isSubpageOf'''( title2 ): Whether this title is a subpage of the given title.
:* '''inNamespace'''( ns ): Whether this title is in the given namespace. Namespaces may be specified by anything that is a key found in mw.site.namespaces.
:* '''inNamespaces'''( ... ): Whether this title is in any of the given namespaces. Namespaces may be specified by anything that is a key found in mw.site.namespaces.
:* '''hasSubjectNamespace'''( ns ): Whether this title's subject namespace is in the given namespace. Namespaces may be specified by anything that is a key found in mw.site.namespaces.
:* '''contentModel''': The content model for this title, as a string.
:* '''basePageTitle''': The same as mw.title.makeTitle( title.namespace, title.baseText ).
:* '''rootPageTitle''': The same as mw.title.makeTitle( title.namespace, title.rootText ).
:* '''talkPageTitle''': The same as mw.title.makeTitle( mw.site.namespaces[title.namespace].talk.id, title.text ), or nil if this title cannot have a talk page.
:* '''subjectPageTitle''': The same as mw.title.makeTitle( mw.site.namespaces[title.namespace].subject.id, title.text ).
:* '''subPageTitle'''( text ): The same as mw.title.makeTitle( title.namespace, title.text .. '/' .. text ).
:* '''partialUrl'''(): Returns title.text encoded as it would be in a URL.
:* '''fullUrl'''( query, proto ): Returns the full URL (with optional query table/string) for this title. proto may be specified to control the scheme of the resulting url: "http", "https", "relative" (the default), or "canonical".
:* '''localUrl'''( query ): Returns the local URL (with optional query table/string) for this title.
:* '''canonicalUrl'''( query ): Returns the canonical URL (with optional query table/string) for this title.
:* '''getContent'''(): Returns the (unparsed) content of the page, or nil if there is no page.
== Parameters ==
=== Page selection ===
:* ''id'' = [[Help:Page ID|Page ID]] of the page to load and evaluate. If this parameter is specified, then other page selection parameters are ignored.
:* ''page'' = name of the page to load and evaluate. This is parameter "text" passed to mw.title.new or "title" passed to mw.title.makeTitle in the Mediawiki documentation.
:** Leave ''page'' blank to call mw.title.getCurrentTitle() and thus default to the page presently being viewed.
:* ''makeTitle'' = Set this to any nonblank value to call mw.title.makeTitle. Otherwise mw.title.new is called. The functions available for these and for getCurrentTitle() are generally ''(exactly?)'' the same.
:* ''namespace'' = This parameter is passed to new/makeTitle to define what page to open.
:* ''fragment'' = This parameter is passed to makeTitle per the MediaWiki documentation.
:* ''interwiki'' = This parameter is passed to makeTitle per the MediaWiki documentation.
=== Title object function parameters ===
:* ''p1'' is the first parameter passed to the functions '''within''' the title object.
:** "title2" for isSubPageOf
:** "ns" for inNamespace
:** (first parameter) of inNameSpaces
:** "ns" for hasSubjectNamespace
:** "text" for subpageTitle
:** "query" for fullUrl, localUrl, canonicalUrl
:* ''p2'' is the second parameter passed to the functions '''within''' the title object.
:** (second parameter) of inNameSpaces
:** "proto" for fullUrl
:* ''p3'' to ''p9'' are collected and passed to the functions, but should only affect inNamespaces.
=== Postprocessing ===
:* ''as'' = Changes how contents of a page is returned when function getContent() is called.
:** "pre" (default) to wrap the page's content inside <nowiki><pre></pre></nowiki>.
:** "nowiki" to wrap the page's content inside <nowiki></nowiki>
:** "expand" to expand the page's content
:** "raw" (or any other unrecognized value) to return the page content without any wrapping