Updated JSON schema

This commit is contained in:
squidfunk 2022-01-29 18:19:42 +01:00
parent ffc3697ff8
commit e7f1519308
8 changed files with 416 additions and 57 deletions

View File

@ -1,11 +1,16 @@
{ {
"$schema": "https://json-schema.org/draft-07/schema", "$schema": "https://json-schema.org/draft-07/schema",
"title": "Material for MkDocs", "title": "Material for MkDocs",
"markdownDescription": "Configuration syntax", "markdownDescription": "Configuration",
"type": "object", "type": "object",
"properties": { "properties": {
"INHERIT": {
"title": "Inherit from configuration",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#configuration-inheritance",
"pattern": "\\.yml$"
},
"site_name": { "site_name": {
"title": "Site name set in header, title and drawer", "title": "Site name, used in header, title and drawer",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_name", "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_name",
"type": "string" "type": "string"
}, },
@ -15,15 +20,89 @@
"type": "string" "type": "string"
}, },
"site_author": { "site_author": {
"title": "Site author, set as meta tag", "title": "Site author, used in document head",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_author", "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_author",
"type": "string" "type": "string"
}, },
"site_description": { "site_description": {
"title": "Site description, set as meta tag and in social cards", "title": "Site description, used in document head and in social cards",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_description", "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_description",
"type": "string" "type": "string"
}, },
"repo_name": {
"title": "Repository name, used in header",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#repository-name",
"type": "string"
},
"repo_url": {
"title": "Repository URL",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#repository",
"type": "string"
},
"edit_uri": {
"title": "Path from repository root to directory containing Markdown",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#edit-button",
"type": "string"
},
"copyright": {
"title": "Copyright, used in footer",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-footer/#copyright-notice",
"type": "string"
},
"docs_dir": {
"title": "Directory containing the Markdown sources",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#docs_dir",
"type": "string",
"default": "docs"
},
"site_dir": {
"title": "Directory containing the HTML output",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#site_dir",
"type": "string",
"default": "site"
},
"use_directory_urls": {
"title": "Pages are located in their own directories",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#use_directory_urls",
"type": "boolean",
"default": false
},
"extra_templates": {
"title": "Additional HTML files to include",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#extra_templates",
"type": "array",
"items": {
"title": "Path to HTML file",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#extra_templates",
"pattern": "\\.html$"
},
"uniqueItems": true,
"minItems": 1
},
"extra_css": {
"title": "Additional CSS files to include",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#additional-css",
"type": "array",
"items": {
"title": "Path to CSS file",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#additional-css",
"pattern": "\\.css$"
},
"uniqueItems": true,
"minItems": 1
},
"extra_javascript": {
"title": "Additional JavaScript files to include",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#additional-javascript",
"type": "array",
"items": {
"title": "Path to JavaScript file",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#additional-javascript",
"pattern": "\\.js$"
},
"uniqueItems": true,
"minItems": 1
},
"theme": { "theme": {
"$ref": "schema/theme.json" "$ref": "schema/theme.json"
}, },
@ -32,10 +111,10 @@
}, },
"markdown_extensions": { "markdown_extensions": {
"$ref": "schema/extensions.json" "$ref": "schema/extensions.json"
},
"nav": {
"$ref": "schema/nav.json"
} }
}, },
"additionalProperties": false, "additionalProperties": false
"required": [
"site_name"
]
} }

View File

@ -92,7 +92,8 @@
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-permalink", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-permalink",
"type": "string" "type": "string"
} }
] ],
"default": true
}, },
"permalink_title": { "permalink_title": {
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-permalink-title", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#toc-permalink-title",
@ -401,7 +402,7 @@
{ {
"oneOf": [ "oneOf": [
{ {
"title": "˘ark Python Markdown Extensions", "title": "Mark Python Markdown Extensions",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde",
"enum": [ "enum": [
"pymdownx.mark" "pymdownx.mark"
@ -411,7 +412,7 @@
"type": "object", "type": "object",
"properties": { "properties": {
"pymdownx.mark": { "pymdownx.mark": {
"title": "˘ark Python Markdown Extensions", "title": "Mark Python Markdown Extensions",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde",
"type": "object", "type": "object",
"properties": { "properties": {

34
docs/schema/nav.json Normal file
View File

@ -0,0 +1,34 @@
{
"$schema": "https://json-schema.org/draft-07/schema",
"title": "Navigation tree",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#nav",
"type": "array",
"items": {
"oneOf": [
{
"title": "Navigation item",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#nav",
"pattern": "\\.md$"
},
{
"type": "object",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#nav",
"patternProperties": {
".*": {
"oneOf": [
{
"title": "Navigation item",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#nav",
"pattern": "\\.md$"
},
{
"$ref": "#"
}
]
}
}
}
]
},
"additionalItems": false
}

View File

@ -1,7 +1,6 @@
{ {
"$schema": "https://json-schema.org/draft-07/schema", "$schema": "https://json-schema.org/draft-07/schema",
"title": "Minify plugin", "title": "Minify plugin",
"description": "Configuration syntax",
"type": "object", "type": "object",
"properties": { "properties": {
"minify": { "minify": {
@ -17,36 +16,47 @@
}, },
"properties": { "properties": {
"minify_html": { "minify_html": {
"description": "Minify HTML files", "title": "Minify HTML files",
"type": "boolean" "markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"type": "boolean",
"default": true
}, },
"minify_js": { "minify_js": {
"description": "Minify JS files", "title": "Minify JavaScript files",
"type": "boolean" "markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"type": "boolean",
"default": true
}, },
"minify_css": { "minify_css": {
"description": "Minify CSS files", "title": "Minify CSS files",
"type": "boolean" "markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"type": "boolean",
"default": true
}, },
"htmlmin_opts": { "htmlmin_opts": {
"description": "Options for HTML minifier", "title": "Options for HTML minifier",
"markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"type": "object" "type": "object"
}, },
"js_files": { "js_files": {
"description": "List of JS files to minify", "title": "JavaScript files to minify",
"markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"type": "array", "type": "array",
"items": { "items": {
"description": "JS file to minify", "title": "Path to JavaScript file",
"markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"pattern": "\\.js$" "pattern": "\\.js$"
}, },
"uniqueItems": true, "uniqueItems": true,
"minItems": 1 "minItems": 1
}, },
"css_files": { "css_files": {
"description": "List of CSS files to minify", "title": "CSS files to minify",
"markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"type": "array", "type": "array",
"items": { "items": {
"description": "CSS file to minify", "title": "Path to CSS file",
"markdownDescription": "https://github.com/byrnereese/mkdocs-minify-plugin#options",
"pattern": "\\.css$" "pattern": "\\.css$"
}, },
"uniqueItems": true, "uniqueItems": true,

View File

@ -1,7 +1,6 @@
{ {
"$schema": "https://json-schema.org/draft-07/schema", "$schema": "https://json-schema.org/draft-07/schema",
"title": "Redirects plugin", "title": "Redirects plugin",
"description": "Configuration syntax",
"type": "object", "type": "object",
"properties": { "properties": {
"redirects": { "redirects": {
@ -9,19 +8,20 @@
"type": "object", "type": "object",
"properties": { "properties": {
"redirect_maps": { "redirect_maps": {
"description": "Internal and external redirects", "title": "Mapping of Markdown files",
"markdownDescription": "https://github.com/datarobot/mkdocs-redirects#using",
"type": "object", "type": "object",
"patternProperties": { "patternProperties": {
"\\.md$": { "\\.md$": {
"oneOf": [ "oneOf": [
{ {
"description": "Internal redirect", "title": "Internal redirect",
"type": "string", "markdownDescription": "https://github.com/datarobot/mkdocs-redirects#using",
"pattern": "\\.md$" "pattern": "\\.md$"
}, },
{ {
"description": "External redirect", "title": "External redirect",
"type": "string", "markdownDescription": "https://github.com/datarobot/mkdocs-redirects#using",
"pattern": "^https?:" "pattern": "^https?:"
} }
] ]

View File

@ -1,7 +1,6 @@
{ {
"$schema": "https://json-schema.org/draft-07/schema", "$schema": "https://json-schema.org/draft-07/schema",
"title": "Built-in search plugin", "title": "Built-in search plugin",
"description": "Configuration syntax",
"oneOf": [ "oneOf": [
{ {
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/",
@ -18,7 +17,9 @@
"properties": { "properties": {
"lang": { "lang": {
"oneOf": [ "oneOf": [
{ "$ref": "#/definitions/lang" }, {
"$ref": "#/definitions/lang"
},
{ {
"type": "array", "type": "array",
"items": { "items": {
@ -27,9 +28,11 @@
"uniqueItems": true, "uniqueItems": true,
"minItems": 1 "minItems": 1
} }
] ],
"default": "en"
}, },
"separator": { "separator": {
"title": "Separator for indexing and query tokenization",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-separator", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-separator",
"type": "string" "type": "string"
} }
@ -42,118 +45,119 @@
], ],
"definitions": { "definitions": {
"lang": { "lang": {
"title": "Site search language",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-lang", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-lang",
"oneOf": [ "oneOf": [
{ {
"description": "Arabic", "title": "Site search language: Arabic",
"enum": [ "enum": [
"ar" "ar"
] ]
}, },
{ {
"description": "Danish", "title": "Site search language: Danish",
"enum": [ "enum": [
"da" "da"
] ]
}, },
{ {
"description": "German", "title": "Site search language: German",
"enum": [ "enum": [
"de" "de"
] ]
}, },
{ {
"description": "Dutch", "title": "Site search language: Dutch",
"enum": [ "enum": [
"du" "du"
] ]
}, },
{ {
"description": "English", "title": "Site search language: English",
"enum": [ "enum": [
"en" "en"
] ]
}, },
{ {
"description": "Spanish", "title": "Site search language: Spanish",
"enum": [ "enum": [
"es" "es"
] ]
}, },
{ {
"description": "Finnish", "title": "Site search language: Finnish",
"enum": [ "enum": [
"fi" "fi"
] ]
}, },
{ {
"description": "French", "title": "Site search language: French",
"enum": [ "enum": [
"fr" "fr"
] ]
}, },
{ {
"description": "Hungarian", "title": "Site search language: Hungarian",
"enum": [ "enum": [
"hu" "hu"
] ]
}, },
{ {
"description": "Italian", "title": "Site search language: Italian",
"enum": [ "enum": [
"it" "it"
] ]
}, },
{ {
"description": "Japanese", "title": "Site search language: Japanese",
"enum": [ "enum": [
"ja" "ja"
] ]
}, },
{ {
"description": "Norwegian", "title": "Site search language: Norwegian",
"enum": [ "enum": [
"no" "no"
] ]
}, },
{ {
"description": "Portuguese", "title": "Site search language: Portuguese",
"enum": [ "enum": [
"pt" "pt"
] ]
}, },
{ {
"description": "Romanian", "title": "Site search language: Romanian",
"enum": [ "enum": [
"ro" "ro"
] ]
}, },
{ {
"description": "Russian", "title": "Site search language: Russian",
"enum": [ "enum": [
"ru" "ru"
] ]
}, },
{ {
"description": "Swedish", "title": "Site search language: Swedish",
"enum": [ "enum": [
"sv" "sv"
] ]
}, },
{ {
"description": "Thai", "title": "Site search language: Thai",
"enum": [ "enum": [
"th" "th"
] ]
}, },
{ {
"description": "Turkish", "title": "Site search language: Turkish",
"enum": [ "enum": [
"tr" "tr"
] ]
}, },
{ {
"description": "Vietnamese", "title": "Site search language: Vietnamese",
"enum": [ "enum": [
"vi" "vi"
] ]

View File

@ -16,18 +16,22 @@
{ {
"type": "null" "type": "null"
} }
] ],
"default": "material"
}, },
"custom_dir": { "custom_dir": {
"title": "Directory with theme overrides", "title": "Directory with theme overrides",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#setup-and-theme-structure", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#setup-and-theme-structure",
"type": "string" "type": "string",
"default": "overrides"
}, },
"static_templates": { "static_templates": {
"title": "Static templates to render", "title": "Static templates to render",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#static_templates", "markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#static_templates",
"type": "array", "type": "array",
"items": { "items": {
"title": "Path to HTML file",
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#static_templates",
"pattern": "\\.html$" "pattern": "\\.html$"
}, },
"uniqueItems": true, "uniqueItems": true,
@ -343,8 +347,40 @@
"zh-TW" "zh-TW"
] ]
} }
],
"default": "en"
},
"direction": {
"title": "Directionality",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#directionality",
"enum": [
"ltr",
"rtl"
] ]
}, },
"favicon": {
"title": "Favicon",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#favicon",
"pattern": "\\.(ico|png|svg|jpe?g)$"
},
"logo": {
"title": "Logo (Image)",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#logo",
"pattern": "\\.(png|svg|jpe?g)$"
},
"icon": {
"title": "Icons",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/",
"type": "object",
"properties": {
"logo": {
"title": "Logo (Icon)",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#logo",
"type": "string",
"default": "material/library"
}
}
},
"features": { "features": {
"title": "Feature flags", "title": "Feature flags",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/",
@ -461,6 +497,127 @@
"uniqueItems": true, "uniqueItems": true,
"minItems": 1 "minItems": 1
}, },
"palette": {
"oneOf": [
{
"title": "Color palette",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/",
"type": "object",
"properties": {
"scheme": {
"$ref": "#/definitions/scheme"
},
"primary": {
"$ref": "#/definitions/primary"
},
"accent": {
"$ref": "#/definitions/accent"
}
},
"additionalProperties": false
},
{
"title": "Color palette",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/",
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"$ref": "#/definitions/scheme"
},
"primary": {
"$ref": "#/definitions/primary"
},
"accent": {
"$ref": "#/definitions/accent"
},
"media": {
"title": "System preference",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#system-preference",
"oneOf": [
{
"enum": [
"\"(prefers-color-scheme: light)\"",
"\"(prefers-color-scheme: dark)\""
]
},
{
"type": "string"
}
]
},
"toggle": {
"title": "Color palette toggle",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#color-palette-toggle",
"properties": {
"icon": {
"title": "Color palette toggle icon",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#toggle-icon",
"type": "string"
},
"name": {
"title": "Color palette toggle name",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#toggle-name",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"icon",
"name"
]
}
},
"additionalProperties": false,
"required": [
"toggle"
]
},
"uniqueItems": true,
"minItems": 1
}
],
"default": {
"scheme": "default",
"primary": "indigo",
"accent": "indigo"
}
},
"font": {
"oneOf": [
{
"title": "Google Fonts",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-fonts/",
"properties": {
"text": {
"title": "Regular font",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-fonts/#regular-font",
"type": "string",
"default": "Roboto"
},
"code": {
"title": "Monospaced font",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-fonts/#monospaced-font",
"type": "string",
"default": "Roboto Mono"
}
},
"additionalProperties": false,
"required": [
"text",
"code"
]
},
{
"title": "Disable Google Fonts",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-fonts/#autoloading",
"enum": [
false
]
}
]
},
"include_search_page": { "include_search_page": {
"title": "Only necessary when installing from git", "title": "Only necessary when installing from git",
"markdownDescription": "Must be set to `false`", "markdownDescription": "Must be set to `false`",
@ -479,5 +636,76 @@
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"name" "name"
] ],
"definitions": {
"scheme": {
"title": "Color scheme",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#color-scheme",
"oneOf": [
{
"enum": [
"default",
"slate"
]
},
{
"type": "string"
}
]
},
"primary": {
"title": "Primary color",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#primary-color",
"enum": [
"red",
"pink",
"purple",
"deep purple",
"indigo",
"blue",
"light blue",
"cyan",
"teal",
"green",
"light green",
"lime",
"yellow",
"amber",
"orange",
"deep orange",
"brown",
"grey",
"blue grey",
"black",
"white"
]
},
"accent": {
"title": "Accent color",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#accent-color",
"enum": [
"red",
"pink",
"purple",
"deep purple",
"indigo",
"blue",
"light blue",
"cyan",
"teal",
"green",
"light green",
"lime",
"yellow",
"amber",
"orange",
"deep orange",
"brown",
"grey",
"blue-grey",
"black",
"white"
]
}
}
} }

View File

@ -83,11 +83,12 @@ theme:
code: Roboto Mono code: Roboto Mono
favicon: assets/favicon.png favicon: assets/favicon.png
icon: icon:
logo: logo logo: material/library
# Plugins # Plugins
plugins: plugins:
- search - search:
lang: en
- redirects: - redirects:
redirect_maps: redirect_maps:
changelog/insiders.md: insiders/changelog.md changelog/insiders.md: insiders/changelog.md
@ -158,9 +159,11 @@ markdown_extensions:
# Page tree # Page tree
nav: nav:
- Home: index.md - Home: index.mds
- Getting started: - Getting started:
- abcs.md
- Installation: getting-started.md - Installation: getting-started.md
- Installation: getting-started.mds
- Creating your site: creating-your-site.md - Creating your site: creating-your-site.md
- Publishing your site: publishing-your-site.md - Publishing your site: publishing-your-site.md
- Customization: customization.md - Customization: customization.md