Jump to content

User:Harej/sandbox

From Wikitech

{

 "$schema": "http://json-schema.org/draft-04/schema#",
 "id": "http://tools.wmflabs.org/toolhub/schema/1.1.0-draft05",
 "title": "Wikimedia Tool",
 "description": "A tool is a piece of software that helps facilitate contribution toward, or consumption of, Wikimedia projects and associated data, not including the core wiki software and its extensions",
 "version": "1.1.0-draft06",
 "authors": [
   "Hay Kranen",
   "James Hare"
 ],
 "definitions": {
   "tool": {
     "type": "object",
     "properties": {
       "name": {
         "type": "string",
         "description": "Unique identifier for tools. Must be unique for every tool. It is recommended you prefix your tool names to reduce the risk of clashes."
       },
       "title": {
         "type": "string",
         "description": "Human readable tool name. Recommended limit of 25 characters."
       },
       "subtitle": {
         "type": "string",
         "maxLength": 250,
         "description": "Longer than the full title but shorter than the description. It should add some additional context to the title."
       },
       "wikidata_item": {
         "type": "string",
         "pattern": "^Q%5Cd+$",
         "description": "The Wikidata item ID for this tool."
       },
       "openhub_id": {
         "type": "string",
         "description": "The project ID on OpenHub. Given a URL https://openhub.net/p/foo, the project ID is `foo`."
       },
       "description": {
         "type": "string",
         "description": "A longer description of the tool. The recommended length for a description is 3-5 sentences. Future versions of this schema will impose a character limit."
       },
       "url": {
         "type": "string",
         "description": "A direct link to the tool or to instructions on how to use or install the tool."
       },
       "keywords": {
         "type": "string",
         "@commment": "Comma-delineated list of keywords. This parameter is deprecated and will be removed in the next version."
       },
       "author": {
         "type": "string",
         "description": "The primary tool developer."
       },
       "repository": {
         "type": "string",
         "description": "A link to the repository where the tool code is hosted."
       },
       "bot_username": {
         "type": "string",
         "description": "If the tool is a bot, the Wikimedia username of the bot. Do not include 'User:' or similar prefixes."
       },
       "deprecated": {
         "type": "boolean",
         "default": false,
         "description": "If true, the use of this tool is officially discouraged. The `replaced_by` parameter can be used to define a replacement."
       },
       "replaced_by": {
         "type": "string",
         "description": "If this tool is deprecated, this parameter should be used to link to the replacement tool."
       },
       "experimental": {
         "type": "boolean",
         "default": false,
         "description": "If true, this tool is unstable and can change or go offline at any time."
       },
       "for_wikis": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "$ref": "#/definitions/wiki"
             }
           },
           {
             "$ref": "#/definitions/wiki"
           }
         ],
         "default": "*",
         "description": "A string or array of strings describing the wiki(s) this tool can be used on. Use hostnames such as `zh.wiktionary.org`. Use asterisks as wildcards. For example, `*.wikisource.org` means 'this tool works on all Wikisource wikis.' `*` means 'this works on all wikis, including Wikimedia wikis.'"
       },
       "icon": {
         "$ref": "#/definitions/commons_file",
         "description": "A link to a Wikimedia Commons file description page for an icon that depicts the tool."
       },
       "license": {
         "$ref": "https://tools.wmflabs.org/spdx/schema/licenses.json#/definitions/license",
         "description": "The software license the tool code's is available under. Use a standard SPDX license keyword."
       },
       "sponsor": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "type": "array",
             "items": {
               "type": "string"
             }
           }
         ],
         "description": "Organization that sponsored the tool's development."
       },
       "supported_languages": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "$ref": "#/definitions/language"
             }
           },
           {
             "$ref": "#/definitions/language"
           }
         ],
         "default": "en",
         "description": "The language(s) the tool's interface has been translated into. Use ISO 639 language codes like `zh` and `scn`. If not defined it is assumed the tool is only available in English."
       },
       "technology_used": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "type": "array",
             "items": {
               "type": "string"
             }
           }
         ],
         "description": "A string or array of strings listing technologies (programming languages, development frameworks, etc.) used in creating the tool."
       },
       "tool_type": {
         "type": "string",
         "enum": [
           "web app",
           "desktop app",
           "bot",
           "gadget",
           "user script",
           "other"
         ],
         "description": "The manner in which the tool is used. Select one from the list of options."
       },
       "api_url": {
         "type": "string",
         "description": "A link to the tool's API, if available."
       },
       "developer_docs_url": {
         "type": "string",
         "description": "A link to the tool's developer documentation, if available."
       },
       "feedback_url": {
         "type": "string",
         "description": "A link to where tool users can leave feedback."
       },
       "privacy_policy_url": {
         "type": "string",
         "description": "A link to the tool's privacy policy, if available."
       },
       "translate_url": {
         "type": "string",
         "description": "A link to the tool translation interface."
       },
       "bugtracker_url": {
         "type": "string",
         "description": "A link to the tool's bug tracker on GitHub, Bitbucket, Phabricator, etc."
       },
       "toolinfo_version": {
         "type": "integer",
         "default": 1,
         "description": "The major version number of the Toolinfo schema used. The default value assumed is 1, referring to versions 1.0.0 and 1.1.0."
       },
       "toolinfo_language": {
         "$ref": "#/definitions/language",
         "default": "en",
         "description": "The language the toolinfo record is written if, if not the default value of English. Use ISO 639 language codes."
       }
     },
     "required": [
       "name",
       "title",
       "description",
       "url"
     ]
   },
   "wiki": {
     "type": "string",
     "pattern": "^(%5C*|(.*)?%5C.?(mediawiki|wiktionary|wiki(pedia|quote|books|source|news|versity|data|voyage|tech|media|mediafoundation))%5C.org)$"
   },
   "commons_file": {
     "type": "string",
     "pattern": "^https://commons.wikimedia.org/wiki/File:.+%5C..+$"
   },
   "language": {
     "type": "string",
     "pattern": "^(x-.*|[A-Za-z]{2,3}(-.*)?)$"
   }
 },
 "oneOf": [
   {
     "type": "array",
     "items": {
       "$ref": "#/definitions/tool"
     }
   },
   {
     "$ref": "#/definitions/tool"
   }
 ]

}