Expand all

ve.dm.MWTemplateSpecModel

Constructor

new ve.dm.MWTemplateSpecModel(template) #

Holds a mixture of:

  • A copy of a template's specification as it is documented via TemplateData.
  • Undocumented parameters that appear in a template invocation, #fillFromTemplate.
  • Documented aliases are also considered valid, known parameter names. Use #isParameterAlias to differentiate between the two.

Therefore, this is not the original specification but an accessor to the documentation for an individual template invocation. It's possibly different for every invocation.

Meant to be in a 1:1 relationship to ve.dm.MWTemplateModel.

The actual, unmodified specification can be found in the #templateData property and the local specCache in ve.dm.MWTransclusionModel.

See https://github.com/wikimedia/mediawiki-extensions-TemplateData/blob/master/Specification.md for the latest version of the TemplateData specification.

Parameters:

Name Type Description
template ve.dm.MWTemplateModel
Source:

Holds a mixture of:

  • A copy of a template's specification as it is documented via TemplateData.

Properties

aliases #

Properties:

Name Type Description
aliases Object.<string, string>

Maps aliases to primary parameter names

Source:

seenParameterNames #

Properties:

Name Type Description
seenParameterNames Object.<string, boolean>

Keeps track of any parameter from any source and in which order they have been seen first. Includes parameters that have been removed during the lifetime of this object, i.e. #fillFromTemplate doesn't remove parameters that have been seen before. The order is typically but not necessarily the original order in which the parameters appear in the template. Aliases are resolved and don't appear on their original position any more.

Source:

templateData #

Properties:

Name Type Description
templateData Object

Documentation as provided by the TemplateData API

Source:

Methods

fillFromTemplate() #

Adds all (possibly undocumented) parameters from the linked template to the list of known parameters, #getKnownParameterNames. This should be called every time a parameter is added to the template.

Source:

Adds all (possibly undocumented) parameters from the linked template to the list of known parameters, #getKnownParameterNames.

getCanonicalParameterOrder() → {Array.<string>} #

Same as #getKnownParameterNames, but in a canonical order that's always the same, unrelated to how the parameters appear in the wikitext. Primary parameter names documented via TemplateData are first, in their documented order. Undocumented parameters are sorted with numeric names first, followed by alphabetically sorted names.

The returned array is a copy, i.e. it's safe to manipulate.

Returns:

Type
Array.<string>
Source:

Same as #getKnownParameterNames, but in a canonical order that's always the same, unrelated to how the parameters appear in the wikitext.

getDescription([languageCode]) → {string|null} #

Parameters:

Name Type Attributes Description
languageCode string optional

Returns:

Template description or null if not available

Type
string | null
Source:

getDocumentedParameterOrder() → {Array.<string>} #

Preferred order of parameters via TemplateData, without aliases or undocumented parameters. Empty if the template is not documented. Otherwise the explicit paramOrder if given, or the order of parameters as they appear in TemplateData. Returns a copy, i.e. it's safe to manipulate the array.

Returns:

Preferred order of parameters via TemplateData, if given

Type
Array.<string>
Source:
Preferred order of parameters via TemplateData, without aliases or undocumented parameters.

getKnownParameterNames() → {Array.<string>} #

Get all known primary parameter names, without aliases, in their original order as they became known (usually but not necessarily the order in which they appear in the template). This still includes undocumented parameters that have been part of the template at some point during the lifetime of this object, but have been removed from the linked ve.dm.MWTemplateModel in the meantime.

The returned array is a copy, i.e. it's safe to manipulate.

Returns:

Primary parameter names

Type
Array.<string>
Source:

Get all known primary parameter names, without aliases, in their original order as they became known (usually but not necessarily the order in which they appear in the template).

getLabel() → {string} #

Returns:

Normalized template name without the "Template:" namespace prefix, if possible. Otherwise the unnormalized template name as used in the wikitext. Might even be a string like {{example}} when a template name is dynamically generated.

Type
string
Source:

getParameterAliases(name) → {Array.<string>} #

Warning, this does not return a copy. Don't manipulate the returned array.

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Alternate parameter names

Type
Array.<string>
Source:
Warning, this does not return a copy.

getParameterAutoValue(name) → {string} #

The auto-value will be used by the template in case the user doesn't provide a value. In VisualEditor this is only for documentation and should not appear in a serialization.

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
string
Source:
The auto-value will be used by the template in case the user doesn't provide a value.

getParameterDefaultValue(name) → {string} #

The default value will be placed in the input field when the parameter is added. The user can edit or even remove it.

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

e.g. "{{PAGENAME}}"

Type
string
Source:
The default value will be placed in the input field when the parameter is added.

getParameterDeprecationDescription(name) → {string} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Explaining of why parameter is deprecated, empty if parameter is either not deprecated or no description has been specified

Type
string
Source:

getParameterDescription(name, [languageCode]) → {string|null} #

Parameters:

Name Type Attributes Description
name string

Parameter name or alias

languageCode string optional

Returns:

Type
string | null
Source:

getParameterExampleValue(name, [languageCode]) → {string|null} #

Parameters:

Name Type Attributes Description
name string

Parameter name or alias

languageCode string optional

Returns:

Type
string | null
Source:

getParameterLabel(name, [languageCode]) → {string} #

Parameters:

Name Type Attributes Description
name string

Parameter name or alias

languageCode string optional

Returns:

Descriptive label of the parameter, if given. Otherwise the alias or parameter name as is.

Type
string
Source:

getParameterSuggestedValues(name) → {Array.<string>} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
Array.<string>
Source:

getParameterType(name) → {string} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

e.g. "string"

Type
string
Source:

getPrimaryParameterName(name) → {string} #

Get the parameter name, resolving an alias.

If a parameter is not an alias of another, the output will be the same as the input.

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
string
Source:
Get the parameter name, resolving an alias.

getUndocumentedParameterNames() → {Array.<string>} #

The returned array is a copy, i.e. it's safe to manipulate.

Returns:

Type
Array.<string>
Source:
The returned array is a copy, i.e.

isDocumented() → {boolean} #

True it the template does have any user-provided documentation. Note that undocumented templates can still have auto-detected params and a paramOrder, while documented templates might not have params. Use #getDocumentedParameterOrder.length to differentiate.

Returns:

Type
boolean
Source:
True it the template does have any user-provided documentation.

isKnownParameterOrAlias(name) → {boolean} #

Check if a parameter name or alias was seen before. This includes parameters and aliases documented via TemplateData as well as undocumented parameters, e.g. from the original template invocation. When undocumented parameters are removed from the linked ve.dm.MWTemplateModel they are still known and will still be offered via #getKnownParameterNames for the lifetime of this object.

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
boolean
Source:
Check if a parameter name or alias was seen before.

isParameterAlias(name) → {boolean} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
boolean
Source:

isParameterDeprecated(name) → {boolean} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
boolean
Source:

isParameterDocumented(name) → {boolean} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
boolean
Source:

isParameterRequired(name) → {boolean} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
boolean
Source:

isParameterSuggested(name) → {boolean} #

Parameters:

Name Type Description
name string

Parameter name or alias

Returns:

Type
boolean
Source:

setTemplateData(data) #

Template spec data is available from the TemplateData extension's API.

Parameters:

Name Type Description
data ve.dm.MWTemplatePageMetadata
Source:
Template spec data is available from the TemplateData extension's API.

getLocalValue(stringOrObject, [languageCode]) → {string|null|undefined}privatestatic #

Parameters:

Name Type Attributes Description
stringOrObject string | Object.<string, string> | null
languageCode string optional

Returns:

Type
string | null | undefined
Source:

Type Definitions

Set #

Type:

Properties:

Name Type Description
label string | Object.<string, string>

A brief name for the parameter set.

params Array.<string>

One or more names of parameters to include in the set.

Source: