mediawiki-title
Mediawiki title normalizetion, that conforms to the normalization rules used in MediaWiki Core.
In general, the page title is converted to the mediawiki DB key format by trimming spaces, replacing whitespace symbols to underscores
and applying wiki-specific capitalizetion rules. The namespace name is converted to a localized canonical name.
Classes
- Namespace
- Title
Typedefs
- SiteInfo :
Object
Information about a wikimedia site required to make correct
normalization.
Namespace
Kind: global class
new Namespace(id, siteInfo)
Represents a wiki namespace
Param | Type | Description |
---|
id | number | The namespace identifier |
siteInfo | SiteInfo | The site metadata information. |
namespace.isSpecial() ⇒ boolean
Checks whether namespace is Special
.
Kind: instance method of Namespace
namespace.isMain() ⇒ boolean
Checks whether namespace is Main
.
Kind: instance method of Namespace
namespace.isTalk() ⇒ boolean
Checks whether namespace is Talk
.
Kind: instance method of Namespace
namespace.isUser() ⇒ boolean
Checks whether namespace is User
.
Kind: instance method of Namespace
namespace.isUserTalk() ⇒ boolean
Checks whether namespace is User_Talk
.
Kind: instance method of Namespace
namespace.getNormalizedText() ⇒ string
Get the canonical name string for this namespace.
Kind: instance method of Namespace
Namespace.fromText(text, siteInfo) ⇒ Namespace
| undefined
Creates a namespace instance from namespace text or a namespace alias
Kind: static method of Namespace
Returns: Namespace
| undefined
- a namespace or undefined if it wasn't found.
Param | Type | Description |
---|
text | string | Namespace name text. |
siteInfo | SiteInfo | the site information. |
Namespace.main(siteInfo) ⇒ Namespace
Creates a namespace object for a Main
namespace.
Kind: static method of Namespace
Param | Type | Description |
---|
siteInfo | SiteInfo | the site information. |
Title
Kind: global class
new Title(key, namespace, siteInfo, [fragment])
Creates a new title object with article the dbKey and namespace
Param | Type | Description |
---|
key | string | The article title in a form of the dbKey. |
namespace | Namespace | number | The article namespace. |
siteInfo | SiteInfo | The site metadata. |
[fragment] | string | The fragment of the title. |
title.getPrefixedDBKey() ⇒ string
Returns the normalized article title and namespace.
Kind: instance method of Title
title.getNamespace() ⇒ Namespace
Returns the namespace of an article.
Kind: instance method of Title
Title.newFromText(title, siteInfo) ⇒ Title
Normalize a title according to the rules of
Kind: static method of Title
Returns: Title
- The resulting title object.
Param | Type | Description |
---|
title | string | The page title to normalize. |
siteInfo | SiteInfo | The site information. |
SiteInfo : Object
Information about a wikimedia site required to make correct
normalization.
Kind: global typedef
Properties
Name | Type | Description |
---|
lang | string | Site language code. |
legaltitlechars | string | A perl-like regex for characters allowed in the page title. |
case | string | Whether to capitalize the first letter of the title. Could be obtained from the general section of the siteInfo php API response. |
namespaces | Object | Site namespaces info in the same format as returned by PHP api. |
namespacealiases | Object | Site namespace aliases in the same format as returned by PHP api. |
Usage
The library returns a Bluebird promise of a normalized title.
Wiki-specific rules are fetched from the api, and
cached within the Normalizer
instance, so reusing the instance is highly recommended.
var result = Title.fromPrefixedText('some_title', {
lang: 'en',
legaltitlechars: " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+",
namespaces: {
"0": {
id: 0,
case: "first-letter",
content: "",
"*": ""
},
}
});
console.log(result.getPrefixedDBKey());
Bug reporting
For bug reporting please use Phabricator ]
and mark the bugs with Servises
label or contuct directly in IRC in the #wikimedia-services channel.