catppuccin/resources/ports.schema.json

310 lines
8.7 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"categories": {
"$id": "#category-definitions",
"title": "Category Definitions",
"description": "The categories listed in the README.",
"type": "array",
"items": {
"$id": "#category-definitions/item",
"title": "Category Item",
"type": "object",
"required": [
"key",
"name",
"description",
"emoji"
],
"additionalProperties": false,
"properties": {
"key": {
"$id": "#category-definitions/category/key",
"title": "key",
"type": "string",
"$ref": "#/$defs/category"
},
"name": {
"$id": "#category-definitions/category/name",
"title": "Name",
"type": "string"
},
"description": {
"$id": "#category-definitions/category/description",
"title": "Description",
"type": "string"
},
"emoji": {
"$id": "#category-definitions/category/emoji",
"title": "Emoji",
"type": "string"
}
}
}
},
"ports": {
"$id": "#ports",
"title": "Ports",
"type": "object",
"description": "All ports in the Catppuccin organisation.",
"patternProperties": {
"[A-Za-z0-9_\\-]": {
"$id": "#ports/port",
"title": "Port",
"type": "object",
"description": "The GitHub repository name of the port.",
"examples": [
"nvim"
],
"required": [
"categories",
"name",
"platform"
],
"additionalProperties": false,
"properties": {
"name": {
"$id": "#ports/port/name",
"title": "Name",
"description": "The name of the software the port is for.",
"type": "string",
"examples": [
"Neovim"
]
},
"categories": {
"$id": "#ports/port/categories",
"title": "Categories",
"description": "The categories that fit the port the most, the first category is the primary category which the port will be listed under on the README.",
"$ref": "#/$defs/categories"
},
"platform": {
"$id": "#ports/port/platform",
"title": "Platform",
"description": "The platforms the port supports. Either an array of supported operating systems or \"agnostic\" (indicating support for all platforms).",
"oneOf": [
{
"type": "array",
"items": {
"$id": "#ports/port/platform/os",
"title": "Operating Systems",
"type": "string",
"enum": [
"android",
"ios",
"linux",
"macos",
"windows"
],
"examples": [
[
"linux",
"macos",
"windows"
],
[
"android",
"ios"
]
]
}
},
{
"type": "string",
"enum": [
"agnostic"
]
}
]
},
"color": {
"$ref": "#/$defs/color"
},
"icon": {
"$ref": "#/$defs/icon"
},
"alias": {
"$id": "#ports/port/alias",
"title": "Alias",
"description": "If another port provides the theme for this port, provide the name of the other port here (e.g. `vscode` for `azuredatastudio`, where Azure Data Studio uses the VS Code theme).",
"type": "string"
},
"url": {
"$id": "#ports/port/url",
"title": "URL",
"description": "If the port is hosted on a specific URL, provide it here.",
"examples": [
"https://github.com/catppuccin/vscode/tree/compiled"
],
"type": "string"
},
"links": {
"$id": "#ports/port/links",
"title": "Links",
"description": "Links to the port on marketplaces, app stores; documentation, preview pages, etc.",
"type": "array",
"items": {
"$id": "#ports/port/links/item",
"title": "Link",
"type": "object",
"required": [
"name",
"url"
],
"additionalProperties": false,
"properties": {
"name": {
"$id": "#ports/port/links/link/name",
"title": "Name",
"type": "string"
},
"color": {
"$ref": "#/$defs/color"
},
"icon": {
"$ref": "#/$defs/icon"
},
"url": {
"$id": "#ports/port/links/link/url",
"title": "URL",
"type": "string"
}
}
}
},
"upstreamed": {
"$id": "#ports/port/upstreamed",
"title": "Upstreamed",
"description": "Boolean indicating whether the port has been upstreamed.",
"type": "boolean"
}
}
}
}
},
"showcases": {
"$id": "#showcases",
"title": "Showcases",
"type": "array",
"description": "Each showcase listed in the README",
"items": {
"$id": "#showcase/item",
"title": "Showcase item",
"type": "object",
"required": [
"title",
"link",
"description"
],
"additionalProperties": false,
"properties": {
"title": {
"$id": "#showcase/showcase/title",
"title": "title",
"type": "string"
},
"link": {
"$id": "#showcase/showcase/link",
"title": "Link",
"type": "string"
},
"description": {
"$id": "#showcase/showcase/description",
"title": "Link",
"type": "string"
}
}
}
}
},
"$defs": {
"icon": {
"$id": "#icon",
"title": "Icon",
"description": "The icon to use on the website. This should be the same name as the SVG file on https://simpleicons.org/. If a `.svg` suffix is present, it's taken from the local website repository resources.",
"type": "string",
"examples": [
"neovim",
"neovim.svg"
]
},
"color": {
"$id": "#color",
"title": "Color",
"description": "The fill color for the icon on the website.",
"type": "string",
"enum": [
"rosewater",
"flamingo",
"pink",
"mauve",
"red",
"maroon",
"peach",
"yellow",
"green",
"teal",
"sky",
"sapphire",
"blue",
"lavender",
"text"
],
"examples": [
"pink"
]
},
"categories": {
"$id": "#categories",
"type": "array",
"minItems": 1,
"maxItems": 3,
"items": {
"$ref": "#/$defs/category"
}
},
"category": {
"$id": "#category",
"type": "string",
"enum": [
"3d_modelling",
"analytics",
"application_launcher",
"artificial_intelligence",
"boot_loader",
"browser",
"browser_extension",
"cli",
"code_editor",
"desktop_environment",
"development",
"discussion_forum",
"document_viewer",
"education",
"email_client",
"entertainment",
"file_manager",
"game",
"game_development",
"health_and_fitness",
"library",
"music",
"note_taking",
"notification_daemon",
"photo_and_video",
"productivity",
"search_engine",
"self_hosted",
"social_networking",
"system",
"terminal",
"translation_tool",
"userstyle",
"wiki",
"window_manager"
]
}
}
}