From 4fd791f3a0b1d2e40ced37f413e0763f5254760c Mon Sep 17 00:00:00 2001 From: squidfunk Date: Sat, 29 Jan 2022 19:14:23 +0100 Subject: [PATCH] Updated JSON schema --- docs/schema.json | 3 + docs/schema/extra.json | 261 ++++++++++++++++++++++++++++++++ docs/schema/plugins.json | 6 + docs/schema/plugins/social.json | 64 ++++++++ docs/schema/plugins/tags.json | 31 ++++ docs/schema/theme.json | 19 ++- mkdocs.yml | 3 +- 7 files changed, 382 insertions(+), 5 deletions(-) create mode 100644 docs/schema/extra.json create mode 100644 docs/schema/plugins/social.json create mode 100644 docs/schema/plugins/tags.json diff --git a/docs/schema.json b/docs/schema.json index 5fd1ff386..2e225e394 100644 --- a/docs/schema.json +++ b/docs/schema.json @@ -112,6 +112,9 @@ "markdown_extensions": { "$ref": "schema/extensions.json" }, + "extra": { + "$ref": "schema/extra.json" + }, "nav": { "$ref": "schema/nav.json" } diff --git a/docs/schema/extra.json b/docs/schema/extra.json new file mode 100644 index 000000000..f992d3784 --- /dev/null +++ b/docs/schema/extra.json @@ -0,0 +1,261 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Extra configuration", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/", + "type": "object", + "properties": { + "homepage": { + "title": "Homepage link (when clicking on logo)", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#logo", + "type": "string" + }, + "analytics": { + "title": "Analytics provider", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics", + "type": "object", + "properties": { + "provider": { + "title": "Analytics provider", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics", + "oneOf": [ + { + "enum": [ + "google" + ] + }, + { + "type": "string" + } + ] + }, + "property": { + "oneOf": [ + { + "title": "Google Analytics 4", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics", + "pattern": "^G-\\w{10}$" + }, + { + "title": "Universal Analytics", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics", + "pattern": "^UA-\\w{8}-\\w$" + }, + { + "title": "Unknown property", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics", + "type": "string" + } + ] + }, + "feedback": { + "title": "Was this page helpful?", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful", + "type": "object", + "properties": { + "title": { + "title": "Feedback widget title", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful", + "type": "string", + "default": "Was this page helpful?" + }, + "ratings": { + "title": "Feedback rating", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful", + "type": "array", + "items": { + "type": "object", + "properties": { + "icon": { + "title": "Feedback rating icon", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#feedback-rating-icon", + "type": "string" + }, + "name": { + "title": "Feedback rating name", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#feedback-rating-name", + "type": "string" + }, + "data": { + "title": "Feedback rating data", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#feedback-rating-data", + "type": "number" + }, + "note": { + "title": "Feedback rating data", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#feedback-rating-note", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "icon", + "name", + "data", + "note" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "title" + ] + } + }, + "additionalProperties": false, + "required": [ + "provider", + "property" + ] + }, + "consent": { + "title": "Cookie consent", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#cookie-consent", + "type": "object", + "properties": { + "title": { + "title": "Cookie consent title", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#cookie-consent", + "type": "string", + "default": "Cookie consent" + }, + "description": { + "title": "Cookie consent description", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#cookie-consent", + "type": "string" + }, + "cookies": { + "title": "Cookies", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#cookie-consent", + "type": "object", + "properties": { + "analytics": { + "title": "Cookie", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#cookie-consent", + "oneOf": [ + { + "type": "object", + "properties": { + "name": { + "title": "Cookie name", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#cookie-consent", + "type": "string" + }, + "checked": { + "title": "Initial state", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#cookie-consent", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + { + "type": "string" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "title", + "description" + ] + }, + "social": { + "title": "Social links", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-footer/#social-links", + "type": "array", + "items": { + "type": "object", + "properties": { + "icon": { + "title": "Social link icon", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-footer/#social-icon", + "type": "string" + }, + "link": { + "title": "Social link", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-footer/#social-link", + "type": "string" + }, + "name": { + "title": "Social link name", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-footer/#social-name", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "icon", + "link" + ] + } + }, + "alternate": { + "title": "Site language selector", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#site-language-selector", + "type": "array", + "items": { + "title": "Alternate language", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#site-language-selector", + "type": "object", + "properties": { + "name": { + "title": "Alternate language name", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#language-name", + "type": "string" + }, + "link": { + "title": "Alternate language link", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#language-link", + "type": "string" + }, + "lang": { + "title": "Alternate language code (ISO 639-1)", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#language-lang", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "link", + "lang" + ] + } + }, + "version": { + "title": "Versioning", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/#versioning", + "type": "object", + "properties": { + "provider": { + "title": "Versioning provider", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/#versioning", + "enum": [ + "mike" + ] + }, + "default": { + "title": "Default version", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/#version-warning", + "default": "stable" + } + } + }, + "generator": { + "title": "Generator notice", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-footer/#generator-notice", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false +} diff --git a/docs/schema/plugins.json b/docs/schema/plugins.json index 8a4d3593b..d8461bdd0 100644 --- a/docs/schema/plugins.json +++ b/docs/schema/plugins.json @@ -13,6 +13,12 @@ }, { "$ref": "plugins/search.json" + }, + { + "$ref": "plugins/social.json" + }, + { + "$ref": "plugins/tags.json" } ] }, diff --git a/docs/schema/plugins/social.json b/docs/schema/plugins/social.json new file mode 100644 index 000000000..22a9517d8 --- /dev/null +++ b/docs/schema/plugins/social.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Built-in social plugin", + "oneOf": [ + { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/", + "enum": [ + "social" + ] + }, + { + "type": "object", + "properties": { + "social": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/", + "type": "object", + "properties": { + "cards": { + "title": "Social card generation", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#cards", + "type": "boolean" + }, + "cards_color": { + "title": "Social card color palette", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#cards-color", + "type": "object", + "properties": { + "fill": { + "title": "Background fill color", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#cards-color", + "type": "string" + }, + "text": { + "title": "Foreground text color", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#cards-color", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "fill", + "text" + ] + }, + "cards_font": { + "title": "Social card font", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#cards-font", + "type": "string", + "default": "Roboto" + }, + "cards_directory": { + "title": "Social card directory", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#cards-directory", + "type": "string", + "default": "assets/images/social" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] +} diff --git a/docs/schema/plugins/tags.json b/docs/schema/plugins/tags.json new file mode 100644 index 000000000..b24dd29a6 --- /dev/null +++ b/docs/schema/plugins/tags.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "title": "Built-in tags plugin", + "oneOf": [ + { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/", + "enum": [ + "tags" + ] + }, + { + "type": "object", + "properties": { + "tags": { + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/", + "type": "object", + "properties": { + "tags_file": { + "title": "Markdown file to render tags index", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/#tags-file", + "pattern": "\\.md$", + "default": "tags.md" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] +} diff --git a/docs/schema/theme.json b/docs/schema/theme.json index 5639c076f..15904a78f 100644 --- a/docs/schema/theme.json +++ b/docs/schema/theme.json @@ -364,7 +364,7 @@ "pattern": "\\.(ico|png|svg|jpe?g)$" }, "logo": { - "title": "Logo (Image)", + "title": "Logo", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#logo", "pattern": "\\.(png|svg|jpe?g)$" }, @@ -374,10 +374,16 @@ "type": "object", "properties": { "logo": { - "title": "Logo (Icon)", + "title": "Logo icon", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#logo", "type": "string", "default": "material/library" + }, + "repo": { + "title": "Repository icon", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#repository-icon", + "type": "string", + "default": "fontawesome/brands/git-alt" } } }, @@ -387,9 +393,16 @@ "type": "array", "items": { "oneOf": [ + { + "title": "Mark as read", + "markdownDescription": "", + "enum": [ + "announce.dismiss" + ] + }, { "title": "Code annotations", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-annotations", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-header/#mark-as-read", "enum": [ "content.code.annotate" ] diff --git a/mkdocs.yml b/mkdocs.yml index 427970415..a98122323 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -87,8 +87,7 @@ theme: # Plugins plugins: - - search: - lang: en + - search - redirects: redirect_maps: changelog/insiders.md: insiders/changelog.md