From 8a1e52aa4a28c7cbd01194501c2829fbe06decb3 Mon Sep 17 00:00:00 2001 From: squidfunk Date: Sat, 29 Jan 2022 16:12:25 +0100 Subject: [PATCH] Added JSON schema --- docs/schema.json | 41 ++ docs/schema/extensions.json | 669 +++++++++++++++++++++++++++++ docs/schema/plugins.json | 21 + docs/schema/plugins/minify.json | 60 +++ docs/schema/plugins/redirects.json | 37 ++ docs/schema/plugins/search.json | 165 +++++++ docs/schema/theme.json | 483 +++++++++++++++++++++ 7 files changed, 1476 insertions(+) create mode 100644 docs/schema.json create mode 100644 docs/schema/extensions.json create mode 100644 docs/schema/plugins.json create mode 100644 docs/schema/plugins/minify.json create mode 100644 docs/schema/plugins/redirects.json create mode 100644 docs/schema/plugins/search.json create mode 100644 docs/schema/theme.json diff --git a/docs/schema.json b/docs/schema.json new file mode 100644 index 000000000..1a7994b93 --- /dev/null +++ b/docs/schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Material for MkDocs", + "markdownDescription": "Configuration syntax", + "type": "object", + "properties": { + "site_name": { + "title": "Site name – set in header, title and drawer", + "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_name", + "type": "string" + }, + "site_url": { + "title": "Site URL", + "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_url", + "type": "string" + }, + "site_author": { + "title": "Site author, set as meta tag", + "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_author", + "type": "string" + }, + "site_description": { + "title": "Site description, set as meta tag and in social cards", + "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_description", + "type": "string" + }, + "theme": { + "$ref": "schema/theme.json" + }, + "plugins": { + "$ref": "schema/plugins.json" + }, + "markdown_extensions": { + "$ref": "schema/extensions.json" + } + }, + "additionalProperties": false, + "required": [ + "site_name" + ] +} diff --git a/docs/schema/extensions.json b/docs/schema/extensions.json new file mode 100644 index 000000000..23ada55f0 --- /dev/null +++ b/docs/schema/extensions.json @@ -0,0 +1,669 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Markdown extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/", + "type": "array", + "items": { + "oneOf": [ + { + "title": "Abbreviations – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#abbreviations", + "enum": [ + "abbr" + ] + }, + { + "title": "Admonition – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#admonition", + "enum": [ + "admonition" + ] + }, + { + "title": "Attribute Lists – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#attribute-lists", + "enum": [ + "attr_list" + ] + }, + { + "title": "Definition Lists – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#definition-lists", + "enum": [ + "def_list" + ] + }, + { + "title": "Footnotes – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#footnotes", + "enum": [ + "footnotes" + ] + }, + { + "title": "Metadata – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#metadata", + "enum": [ + "meta" + ] + }, + { + "title": "Markdown in HTML – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#markdown-in-html", + "enum": [ + "md_in_html" + ] + }, + { + "title": "Tables – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#tables", + "enum": [ + "tables" + ] + }, + { + "oneOf": [ + { + "title": "Table Of Contents – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#table-of-contents", + "enum": [ + "toc" + ] + }, + { + "type": "object", + "properties": { + "toc": { + "title": "Table Of Contents – Python Markdown", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#table-of-contents", + "type": "object", + "properties": { + "title": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-title", + "type": "string" + }, + "permalink": { + "oneOf": [ + { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-permalink", + "type": "boolean" + }, + { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-permalink", + "type": "string" + } + ] + }, + "permalink_title": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-permalink-title", + "type": "string" + }, + "slugify": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-slugify", + "type": "string" + }, + "toc_depth": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-depth", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "oneOf": [ + { + "title": "Arithmatex – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#arithmatex", + "enum": [ + "pymdownx.arithmatex" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.arithmatex": { + "title": "Arithmatex – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#arithmatex", + "type": "object", + "properties": { + "generic": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/arithmatex/#options", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "oneOf": [ + { + "title": "BetterEm – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#betterem", + "enum": [ + "pymdownx.betterem" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.betterem": { + "title": "BetterEm – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#betterem", + "type": "object", + "properties": { + "smart_enable": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/betterem/#options", + "enum": [ + "all", + "asterisk", + "underscore", + "none" + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "oneOf": [ + { + "title": "Caret – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", + "enum": [ + "pymdownx.caret" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.caret": { + "title": "Caret – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", + "type": "object", + "properties": { + "smart_insert": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/caret/#options", + "type": "boolean" + }, + "insert": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/caret/#options", + "type": "boolean" + }, + "superscript": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/caret/#options", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "oneOf": [ + { + "title": "Critic – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#critic", + "enum": [ + "pymdownx.critic" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.critic": { + "title": "Critic – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#critic", + "type": "object", + "properties": { + "mode": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#critic-mode", + "enum": [ + "view", + "accept", + "reject" + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "title": "Details – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#details", + "enum": [ + "pymdownx.details" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.emoji": { + "title": "Emoji – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#emoji", + "type": "object", + "properties": { + "emoji_generator": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/emoji/#options", + "type": "string" + }, + "emoji_index": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/emoji/#options", + "type": "string" + }, + "options": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#custom-icons", + "type": "object", + "properties": { + "custom_icons": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#custom-icons", + "type": "array", + "items": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#custom-icons", + "type": "string" + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "emoji_generator", + "emoji_index" + ] + } + }, + "additionalProperties": false + }, + { + "oneOf": [ + { + "title": "Highlight – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight", + "enum": [ + "pymdownx.highlight" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.highlight": { + "title": "Highlight – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight", + "type": "object", + "properties": { + "use_pygments": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight-use-pygments", + "type": "boolean" + }, + "auto_title": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight-auto-title", + "type": "boolean" + }, + "auto_title_map": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/highlight/#options", + "type": "object" + }, + "linenums": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight-linenums", + "type": "boolean" + }, + "linenums_style": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight-linenums-style", + "enum": [ + "inline", + "pymdownx-inline", + "table" + ] + }, + "anchor_linenums": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight-anchor-linenums", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "title": "InlineHilite – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#inlinehilite", + "enum": [ + "pymdownx.inlinehilite" + ] + }, + { + "title": "Keys – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#keys", + "enum": [ + "pymdownx.keys" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.magiclink": { + "title": "MagicLink – Python Markdown Extensions", + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/", + "type": "object", + "properties": { + "user": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/#options", + "type": "string" + }, + "repo": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/#options", + "type": "string" + }, + "repo_url_shorthand": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/#options", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "oneOf": [ + { + "title": "˘ark – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", + "enum": [ + "pymdownx.mark" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.mark": { + "title": "˘ark – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", + "type": "object", + "properties": { + "smart_mark": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "oneOf": [ + { + "title": "SmartSymbols – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#smartsymbols", + "enum": [ + "pymdownx.smartsymbols" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.smartsymbols": { + "title": "SmartSymbols – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#smartsymbols", + "type": "object", + "properties": { + "smart_mark": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "trademark": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "copyright": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "registered": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "care_of": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "plusminus": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "arrows": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "notequal": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "fractions": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + }, + "ordinal_numbers": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/mark/#options", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "oneOf": [ + { + "title": "Snippets – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#snippets", + "enum": [ + "pymdownx.snippets" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.snippets": { + "title": "Snippets – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#snippets", + "type": "object", + "properties": { + "base_path": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/snippets/#options", + "type": "string" + }, + "auto_append": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/snippets/#options", + "type": "array", + "items": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/snippets/#options", + "type": "string" + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "oneOf": [ + { + "title": "SuperFences – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#superfences", + "enum": [ + "pymdownx.superfences" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.superfences": { + "title": "SuperFences – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#superfences", + "type": "object", + "properties": { + "custom_fences": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#superfences-custom-fences", + "type": "array", + "items": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#superfences-custom-fences", + "type": "object", + "properties": { + "name": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/superfences/#custom-fences", + "type": "string" + }, + "class": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/superfences/#custom-fences", + "type": "string" + }, + "format": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/superfences/#custom-fences", + "type": "string" + } + }, + "additionalProperties": false + }, + "minItems": 1 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + }, + { + "type": "object", + "properties": { + "pymdownx.tabbed": { + "title": "Tabbed – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#tabbed", + "type": "object", + "properties": { + "alternate_style": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#tabbed-alternate-style", + "enum": [ + true + ] + } + }, + "additionalProperties": false, + "required": [ + "alternate_style" + ] + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "pymdownx.tasklist": { + "title": "Tasklist – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#tasklist", + "type": "object", + "properties": { + "custom_checkbox": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#tasklist-custom-checkbox", + "type": "boolean" + }, + "clickable_checkbox": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#tasklist-clickable-checkbox", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "oneOf": [ + { + "title": "Tilde – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", + "enum": [ + "pymdownx.tilde" + ] + }, + { + "type": "object", + "properties": { + "pymdownx.tilde": { + "title": "Tilde – Python Markdown Extensions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", + "type": "object", + "properties": { + "smart_delete": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/tilde/#options", + "type": "boolean" + }, + "delete": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/tilde/#options", + "type": "boolean" + }, + "subscript": { + "markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/tilde/#options", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + } + ] + }, + "uniqueItems": true, + "minItems": 1 +} diff --git a/docs/schema/plugins.json b/docs/schema/plugins.json new file mode 100644 index 000000000..8a4d3593b --- /dev/null +++ b/docs/schema/plugins.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Plugins", + "markdownDescription": "https://www.mkdocs.org/dev-guide/plugins/", + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "plugins/minify.json" + }, + { + "$ref": "plugins/redirects.json" + }, + { + "$ref": "plugins/search.json" + } + ] + }, + "uniqueItems": true, + "minItems": 1 +} diff --git a/docs/schema/plugins/minify.json b/docs/schema/plugins/minify.json new file mode 100644 index 000000000..f9b8d1e24 --- /dev/null +++ b/docs/schema/plugins/minify.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Minify plugin", + "description": "Configuration syntax", + "type": "object", + "properties": { + "minify": { + "markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin", + "type": "object", + "dependencies": { + "minify_js": [ + "js_files" + ], + "minify_css": [ + "css_files" + ] + }, + "properties": { + "minify_html": { + "description": "Minify HTML files", + "type": "boolean" + }, + "minify_js": { + "description": "Minify JS files", + "type": "boolean" + }, + "minify_css": { + "description": "Minify CSS files", + "type": "boolean" + }, + "htmlmin_opts": { + "description": "Options for HTML minifier", + "type": "object" + }, + "js_files": { + "description": "List of JS files to minify", + "type": "array", + "items": { + "description": "JS file to minify", + "pattern": "\\.js$" + }, + "uniqueItems": true, + "minItems": 1 + }, + "css_files": { + "description": "List of CSS files to minify", + "type": "array", + "items": { + "description": "CSS file to minify", + "pattern": "\\.css$" + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false +} diff --git a/docs/schema/plugins/redirects.json b/docs/schema/plugins/redirects.json new file mode 100644 index 000000000..c5359baba --- /dev/null +++ b/docs/schema/plugins/redirects.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Redirects plugin", + "description": "Configuration syntax", + "type": "object", + "properties": { + "redirects": { + "markdownDescription": "https://github.com/datarobot/mkdocs-redirects", + "type": "object", + "properties": { + "redirect_maps": { + "description": "Internal and external redirects", + "type": "object", + "patternProperties": { + "\\.md$": { + "oneOf": [ + { + "description": "Internal redirect", + "type": "string", + "pattern": "\\.md$" + }, + { + "description": "External redirect", + "type": "string", + "pattern": "^https?:" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false +} diff --git a/docs/schema/plugins/search.json b/docs/schema/plugins/search.json new file mode 100644 index 000000000..218e235f7 --- /dev/null +++ b/docs/schema/plugins/search.json @@ -0,0 +1,165 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Built-in search plugin", + "description": "Configuration syntax", + "oneOf": [ + { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/", + "enum": [ + "search" + ] + }, + { + "type": "object", + "properties": { + "search": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/", + "type": "object", + "properties": { + "lang": { + "oneOf": [ + { "$ref": "#/definitions/lang" }, + { + "type": "array", + "items": { + "$ref": "#/definitions/lang" + }, + "uniqueItems": true, + "minItems": 1 + } + ] + }, + "separator": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-separator", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ], + "definitions": { + "lang": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-lang", + "oneOf": [ + { + "description": "Arabic", + "enum": [ + "ar" + ] + }, + { + "description": "Danish", + "enum": [ + "da" + ] + }, + { + "description": "German", + "enum": [ + "de" + ] + }, + { + "description": "Dutch", + "enum": [ + "du" + ] + }, + { + "description": "English", + "enum": [ + "en" + ] + }, + { + "description": "Spanish", + "enum": [ + "es" + ] + }, + { + "description": "Finnish", + "enum": [ + "fi" + ] + }, + { + "description": "French", + "enum": [ + "fr" + ] + }, + { + "description": "Hungarian", + "enum": [ + "hu" + ] + }, + { + "description": "Italian", + "enum": [ + "it" + ] + }, + { + "description": "Japanese", + "enum": [ + "ja" + ] + }, + { + "description": "Norwegian", + "enum": [ + "no" + ] + }, + { + "description": "Portuguese", + "enum": [ + "pt" + ] + }, + { + "description": "Romanian", + "enum": [ + "ro" + ] + }, + { + "description": "Russian", + "enum": [ + "ru" + ] + }, + { + "description": "Swedish", + "enum": [ + "sv" + ] + }, + { + "description": "Thai", + "enum": [ + "th" + ] + }, + { + "description": "Turkish", + "enum": [ + "tr" + ] + }, + { + "description": "Vietnamese", + "enum": [ + "vi" + ] + } + ] + } + } +} + diff --git a/docs/schema/theme.json b/docs/schema/theme.json new file mode 100644 index 000000000..f7ad54b35 --- /dev/null +++ b/docs/schema/theme.json @@ -0,0 +1,483 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Theme configuration", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/", + "type": "object", + "properties": { + "name": { + "title": "Theme name", + "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#name", + "oneOf": [ + { + "enum": [ + "material" + ] + }, + { + "type": "null" + } + ] + }, + "custom_dir": { + "title": "Directory with theme overrides", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#setup-and-theme-structure", + "type": "string" + }, + "static_templates": { + "title": "Static templates to render", + "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#static_templates", + "type": "array", + "items": { + "pattern": "\\.html$" + }, + "uniqueItems": true, + "minItems": 1 + }, + "language": { + "title": "Site language", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/", + "oneOf": [ + { + "title": "Site language: Afrikaans", + "enum": [ + "af" + ] + }, + { + "title": "Site language: Arabic", + "enum": [ + "ar" + ] + }, + { + "title": "Site language: Bulgarian", + "enum": [ + "bg" + ] + }, + { + "title": "Site language: Bengali (Bangla)", + "enum": [ + "bn" + ] + }, + { + "title": "Site language: Catalan", + "enum": [ + "ca" + ] + }, + { + "title": "Site language: Czech", + "enum": [ + "cs" + ] + }, + { + "title": "Site language: Danish", + "enum": [ + "da" + ] + }, + { + "title": "Site language: German", + "enum": [ + "de" + ] + }, + { + "title": "Site language: Greek", + "enum": [ + "el" + ] + }, + { + "title": "Site language: English", + "enum": [ + "en" + ] + }, + { + "title": "Site language: Esperanto", + "enum": [ + "eo" + ] + }, + { + "title": "Site language: Spanish", + "enum": [ + "es" + ] + }, + { + "title": "Site language: Estonian", + "enum": [ + "et" + ] + }, + { + "title": "Site language: Persian (Farsi)", + "enum": [ + "fa" + ] + }, + { + "title": "Site language: Finnish", + "enum": [ + "fi" + ] + }, + { + "title": "Site language: French", + "enum": [ + "fr" + ] + }, + { + "title": "Site language: Galician", + "enum": [ + "gl" + ] + }, + { + "title": "Site language: Hebrew", + "enum": [ + "he" + ] + }, + { + "title": "Site language: Hindi", + "enum": [ + "hi" + ] + }, + { + "title": "Site language: Croatian", + "enum": [ + "hr" + ] + }, + { + "title": "Site language: Hungarian", + "enum": [ + "hu" + ] + }, + { + "title": "Site language: Indonesian", + "enum": [ + "id" + ] + }, + { + "title": "Site language: Icelandic", + "enum": [ + "is" + ] + }, + { + "title": "Site language: Italian", + "enum": [ + "it" + ] + }, + { + "title": "Site language: Japanese", + "enum": [ + "ja" + ] + }, + { + "title": "Site language: Georgian", + "enum": [ + "ka" + ] + }, + { + "title": "Site language: Korean", + "enum": [ + "kr" + ] + }, + { + "title": "Site language: Latvian", + "enum": [ + "lv" + ] + }, + { + "title": "Site language: Mongolian", + "enum": [ + "mn" + ] + }, + { + "title": "Site language: Bahasa Malaysia", + "enum": [ + "ms" + ] + }, + { + "title": "Site language: Burmese", + "enum": [ + "my" + ] + }, + { + "title": "Site language: Dutch", + "enum": [ + "nl" + ] + }, + { + "title": "Site language: Norwegian (Nynorsk)", + "enum": [ + "nn" + ] + }, + { + "title": "Site language: Norwegian", + "enum": [ + "no" + ] + }, + { + "title": "Site language: Polish", + "enum": [ + "pl" + ] + }, + { + "title": "Site language: Portuguese", + "enum": [ + "pt" + ] + }, + { + "title": "Site language: Romanian", + "enum": [ + "ro" + ] + }, + { + "title": "Site language: Russian", + "enum": [ + "ru" + ] + }, + { + "title": "Site language: Serbo-Croatian", + "enum": [ + "sh" + ] + }, + { + "title": "Site language: Sinhalese", + "enum": [ + "si" + ] + }, + { + "title": "Site language: Slovak", + "enum": [ + "sk" + ] + }, + { + "title": "Site language: Slovenian", + "enum": [ + "sl" + ] + }, + { + "title": "Site language: Serbian", + "enum": [ + "sr" + ] + }, + { + "title": "Site language: Swedish", + "enum": [ + "sv" + ] + }, + { + "title": "Site language: Thai", + "enum": [ + "th" + ] + }, + { + "title": "Site language: Turkish", + "enum": [ + "tr" + ] + }, + { + "title": "Site language: Ukrainian", + "enum": [ + "uk" + ] + }, + { + "title": "Site language: Vietnamese", + "enum": [ + "vi" + ] + }, + { + "title": "Site language: Chinese (Simplified)", + "enum": [ + "zh" + ] + }, + { + "title": "Site language: Chinese (Traditional)", + "enum": [ + "zh-Hant" + ] + }, + { + "title": "Site language: Chinese (Taiwanese)", + "enum": [ + "zh-TW" + ] + } + ] + }, + "features": { + "title": "Feature flags", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/", + "type": "array", + "items": { + "oneOf": [ + { + "title": "Code annotations", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-annotations", + "enum": [ + "content.code.annotate" + ] + }, + { + "title": "Linked content tabs", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/content-tabs/#linked-content-tabs", + "enum": [ + "content.tabs.link" + ] + }, + { + "title": "Header hides automatically when scrolling", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-header/#automatic-hiding", + "enum": [ + "header.autohide" + ] + }, + { + "title": "Navigation expansion", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-expansion", + "enum": [ + "navigation.expand" + ] + }, + { + "title": "Section index pages", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#section-index-pages", + "enum": [ + "navigation.indexes" + ] + }, + { + "title": "Instant loading", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#instant-loading", + "enum": [ + "navigation.instant" + ] + }, + { + "title": "Navigation sections", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-sections", + "enum": [ + "navigation.sections" + ] + }, + { + "title": "Navigation tabs", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-tabs", + "enum": [ + "navigation.tabs" + ] + }, + { + "title": "Sticky navigation tabs", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#sticky-navigation-tabs", + "enum": [ + "navigation.tabs.sticky" + ] + }, + { + "title": "Back-to-top button", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#back-to-top-button", + "enum": [ + "navigation.top" + ] + }, + { + "title": "Anchor tracking", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#anchor-tracking", + "enum": [ + "navigation.tracking" + ] + }, + { + "title": "Search higlighting", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-highlighting", + "enum": [ + "search.highlight" + ] + }, + { + "title": "Search sharing", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-sharing", + "enum": [ + "search.share" + ] + }, + { + "title": "Search suggestions", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-suggestions", + "enum": [ + "search.suggest" + ] + }, + { + "title": "Integrated table of contents", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#integrated-table-of-contents", + "enum": [ + "toc.integrate" + ] + } + ] + }, + "uniqueItems": true, + "minItems": 1 + }, + "include_search_page": { + "title": "Only necessary when installing from git", + "markdownDescription": "Must be set to `false`", + "enum": [ + false + ] + }, + "search_index_only": { + "title": "Only necessary when installing from git", + "markdownDescription": "Must be set to `false`", + "enum": [ + true + ] + } + }, + "additionalProperties": false, + "required": [ + "name" + ] +}