mediawiki-extensions-Templa.../spec.templatedata.txt
James D. Forrester 4f01e7c8b0 Convert en.json back to having tabs, not spaces
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
2014-04-24 15:53:46 -07:00

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"]
}
]
}