1
0
mirror of https://github.com/squidfunk/mkdocs-material.git synced 2024-11-30 18:24:35 +01:00
mkdocs-material/docs/schema/extra.json
2023-11-20 20:21:18 +01:00

440 lines
14 KiB
JSON

{
"$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",
"allOf": [
{
"if": {
"properties": {
"provider": {
"const": "google"
}
}
},
"then": {
"properties": {
"provider": {
"title": "Google Analytics",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
"const": "google"
},
"property": {
"anyOf": [
{
"title": "Google Analytics 4",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
"pattern": "^G-\\w{10}$"
},
{
"title": "Unknown property",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
"type": "string"
}
]
},
"feedback": {
"$ref": "#/$defs/feedback"
}
},
"required": [
"provider",
"property"
],
"additionalProperties": false
}
},
{
"if": {
"properties": {
"provider": {
"type": "string"
}
}
},
"then": {
"properties": {
"provider": {
"title": "Custom analytics provider",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#custom-site-analytics",
"type": "string"
},
"feedback": {
"$ref": "#/$defs/feedback"
}
},
"required": [
"provider"
]
}
}
],
"defaultSnippets": [
{
"label": "feedback (default)",
"body": {
"feedback": {
"title": "${1:Was this page helpful}",
"ratings": [
{
"icon": "${2:material/emoticon-happy-outline}",
"name": "${3:This page was helpful}",
"data": 1,
"note": "${4:Thanks for your feedback!}"
},
{
"icon": "${5:material/emoticon-sad-outline}",
"name": "${6:This page could be improved}",
"data": 0,
"note": "${7:Thanks for your feedback!}"
}
]
}
}
}
]
},
"annotate": {
"title": "Custom selectors for annotations",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#custom-selectors",
"type": "object",
"patternProperties": {
".*": {
"title": "Custom selector",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#custom-selectors",
"type": "array",
"items": {
"type": "string",
"pattern": "^\\.\\w+"
}
}
}
},
"consent": {
"title": "Cookie consent",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#cookie-consent",
"type": "object",
"properties": {
"title": {
"title": "Cookie consent title",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+consent.title",
"type": "string",
"default": "Cookie consent"
},
"description": {
"title": "Cookie consent description",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+consent.description",
"type": "string"
},
"cookies": {
"title": "Cookies",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+consent.cookies",
"type": "object",
"properties": {
"analytics": {
"$ref": "#/$defs/cookie"
},
"github": {
"$ref": "#/$defs/cookie"
}
},
"patternProperties": {
"\\w+": {
"$ref": "#/$defs/cookie"
}
},
"additionalProperties": false,
"defaultSnippets": [
{
"label": "analytics (default)",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+consent.cookies",
"body": {
"analytics": {
"name": "Google Analytics",
"checked": true
}
}
},
{
"label": "github (default)",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+consent.cookies",
"body": {
"analytics": {
"name": "GitHub",
"checked": true
}
}
}
]
},
"actions": {
"title": "Cookie consent actions",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+consent.actions",
"type": "array",
"items": {
"oneOf": [
{
"title": "Button to accept cookies",
"const": "accept"
},
{
"title": "Button to reject cookies",
"const": "reject"
},
{
"title": "Button to manage settings",
"const": "manage"
}
]
},
"uniqueItems": true
}
},
"additionalProperties": false,
"defaultSnippets": [
{
"label": "actions (default)",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+consent.actions",
"body": {
"actions": [
"accept",
"manage"
]
}
}
],
"required": [
"title",
"description"
]
},
"social": {
"title": "Social links",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-footer/#social-links",
"type": "array",
"items": {
"title": "Social link",
"type": "object",
"properties": {
"icon": {
"$ref": "#/$defs/icon"
},
"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/#+alternate.name",
"type": "string"
},
"link": {
"title": "Alternate language link",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#+alternate.link",
"type": "string"
},
"lang": {
"title": "Alternate language code (ISO 639-1)",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#+alternate.lang",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"name",
"link",
"lang"
]
}
},
"tags": {
"title": "Tag identifiers",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/#tag-icons-and-identifiers",
"type": "object",
"patternProperties": {
".*": {
"title": "Tag identifier mapping",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/#tag-icons-and-identifiers",
"pattern": "^[\\w-]+$"
}
}
},
"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",
"const": "mike"
},
"default": {
"title": "Default version",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/#version-warning",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"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": true,
"$defs": {
"cookie": {
"title": "Cookie",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#cookie-consent",
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"title": "Cookie name",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#cookie-consent",
"type": "string"
},
"checked": {
"title": "Initial state",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#cookie-consent",
"type": "boolean",
"default": true
}
},
"additionalProperties": false,
"required": [
"name"
]
},
{
"title": "Cookie name",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#cookie-consent",
"type": "string"
}
]
},
"icon": {
"anyOf": [
{
"$ref": "assets/icons.json"
},
{
"title": "Unknown icon",
"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 ratings",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful",
"type": "array",
"items": {
"title": "Feedback rating",
"type": "object",
"properties": {
"icon": {
"$ref": "#/$defs/icon"
},
"name": {
"title": "Feedback rating name",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.name",
"type": "string"
},
"data": {
"title": "Feedback rating data",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.data",
"type": "number"
},
"note": {
"title": "Feedback rating data",
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.note",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"icon",
"name",
"data",
"note"
]
}
}
},
"additionalProperties": false,
"required": [
"title"
]
}
},
"defaultSnippets": [
{
"label": "analytics (default)",
"body": {
"analytics": {
"provider": "${1:google}",
"property": "${2:G-XXXXXXXXXX}"
}
}
}
]
}