mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData
synced 2024-12-01 02:46:15 +00:00
4f01e7c8b0
Also, move spec.templatedata.json to spec.templatedata.txt, because it's not now (and has never been) valid JSON and is triping json-lint, blocking merge. Change-Id: I46d6d91b71a054b4523639252d7e6a3a181d84e5
121 lines
3.8 KiB
Plaintext
121 lines
3.8 KiB
Plaintext
/*
|
|
Specification for the JSON descriptor as used in the
|
|
TemplateData extension for MediaWiki.
|
|
|
|
Author: Timo Tijhof
|
|
Author: Trevor Parscal
|
|
|
|
Property names listed in brackets (e.g. [foo]) are optional. This means
|
|
they may be omitted from the object. If a null value is allowed, this will
|
|
be explicitly specified.
|
|
|
|
@structure {Object} Root
|
|
@property {null|InterfaceText} [description]
|
|
@property {Object} params Contains all parameters.
|
|
Keyed by parameter name, contains #Param objects.
|
|
@property {Array} [paramOrder] The logical order in which parameters should be
|
|
displayed. The array contains each parameter key exactly once.
|
|
@property {Array} sets List of groups of parameters that should be used
|
|
together. A parameter can be in multiple sets. Not every parameter has to be
|
|
in a set. The array contains #Set objects.
|
|
|
|
@structure {Object} Param
|
|
@property {null|InterfaceText} [label] Defaults to key of object in `Root.params`.
|
|
@property {boolean} [required=false]
|
|
@property {null|InterfaceText} [description]
|
|
@property {boolean|string} [deprecated=false] Tooltip for the user detailing
|
|
the intent for the deprecated parameters.
|
|
@property {Array} [aliases] List of aliases.
|
|
An alias is an alternative name for the parameter that may be used instead of
|
|
(not in addition to) the primary name. Aliases are not documented in a
|
|
separate Param object. If they need more information, they should be in their
|
|
own property marked "deprecated".
|
|
@property {string} [default] The default value or description thereof.
|
|
@property {Type} [type] The type of the expected parameter value.
|
|
@property {string} [inherits] Key to another object in `Root.params`.
|
|
The current Param object will inherit from that one, with local properties
|
|
overriding the inherited ones.
|
|
|
|
@structure {Object} Set
|
|
@property {InterfaceText} label Label of this set.
|
|
@property {Array} params One or more parameter keys.
|
|
|
|
@structure {string} Type
|
|
One of the following:
|
|
- unknown
|
|
When no type is specified.
|
|
- string
|
|
Any textual value.
|
|
- number
|
|
Any numerical value (without decimal points or thousand separators).
|
|
- wiki-page-name
|
|
A valid MediaWiki page name for the current wiki. Doesn't have to exist,
|
|
but if not, should be a valid page name to create.
|
|
- wiki-user-name
|
|
A valid MediaWiki user name for the current wiki. Doesn't have to exist,
|
|
but if not should be a valid user name to create.
|
|
- content
|
|
Page content (such as text style, links and images etc.).
|
|
- unbalanced-wikitext
|
|
Raw wikitext that should not be treated as standalone content because it
|
|
is unbalanced (eg. templates concatenating incomplete wikitext as a bigger
|
|
whole such as {{echo|before=<u>|after=</u>}})
|
|
- line
|
|
Short text field - use for names, labels, and other short-form fields.
|
|
|
|
@structure {string|Object} InterfaceText
|
|
A free-form string (no wikitext) in the content-language of the wiki, or,
|
|
an object containing those strings keyed by language code.
|
|
|
|
|
|
Examples:
|
|
*/
|
|
|
|
/**
|
|
* [[Template:Unsigned]]
|
|
*
|
|
* Example usage:
|
|
* {{unsigned|JohnDoe|2012-10-18}}
|
|
* {{unsigned|user=JohnDoe|year=2012|month=10|day=18|comment=blabla}}
|
|
*/
|
|
{
|
|
"description": "Label unsigned comments in a conversation.",
|
|
"params": {
|
|
"user": {
|
|
"label": "User's name",
|
|
"type": "wiki-user-name",
|
|
"required": true,
|
|
"description": "User name of person who forgot to sign their comment.",
|
|
"aliases": ["1"]
|
|
},
|
|
"date": {
|
|
"label": "Date",
|
|
"description": {
|
|
"en": "Timestamp of when the comment was posted, in YYYY-MM-DD format."
|
|
},
|
|
"aliases": ["2"]
|
|
},
|
|
"year": {
|
|
"label": "Year",
|
|
"type": "number"
|
|
},
|
|
"month": {
|
|
"label": "Month",
|
|
"inherits": "year"
|
|
},
|
|
"day": {
|
|
"label": "Day",
|
|
"inherits": "year"
|
|
},
|
|
"comment": {
|
|
"required": false
|
|
}
|
|
},
|
|
"sets": [
|
|
{
|
|
"label": "Date",
|
|
"params": ["year", "month", "day"]
|
|
}
|
|
]
|
|
}
|