{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/mkdocs-1.6.json",
  "definitions": {
    "validationValues": {
      "type": "string",
      "enum": ["warn", "info", "ignore"]
    },
    "validationAbsoluteLinkValues": {
      "type": "string",
      "enum": ["warn", "info", "ignore", "relative_to_docs"]
    }
  },
  "description": "JSON schema for MkDocs configuration file",
  "title": "MkDocs Configuration",
  "type": "object",
  "properties": {
    "site_name": {
      "description": "This is a required setting, and should be a string that is used as the main title for the project documentation.\nhttps://www.mkdocs.org/user-guide/configuration/#site_name",
      "type": "string"
    },
    "site_url": {
      "description": "Set the canonical URL of the site. This will add a link tag with the canonical URL to the head section of each HTML page. If the 'root' of the MkDocs site will be within a subdirectory of a domain, be sure to include that subdirectory in the setting (https://example.com/foo/).\nhttps://www.mkdocs.org/user-guide/configuration/#site_url",
      "type": "string"
    },
    "repo_url": {
      "description": "When set, provides a link to your repository (GitHub, Bitbucket, GitLab, ...) on each page.\nhttps://www.mkdocs.org/user-guide/configuration/#repo_url",
      "type": "string"
    },
    "repo_name": {
      "description": "When set, provides the name for the link to your repository on each page.\nhttps://www.mkdocs.org/user-guide/configuration/#repo_name",
      "type": "string"
    },
    "edit_uri": {
      "description": "The path from the base repo_url to the docs directory when directly viewing a page, accounting for specifics of the repository host (e.g. GitHub, Bitbucket, etc), the branch, and the docs directory itself.\nhttps://www.mkdocs.org/user-guide/configuration/#edit_uri",
      "type": "string"
    },
    "edit_uri_template": {
      "description": "The more flexible variant of edit_uri.\nhttps://www.mkdocs.org/user-guide/configuration/#edit_uri_template",
      "type": "string"
    },
    "site_description": {
      "description": "Set the site description. This will add a meta tag to the generated HTML header.\nhttps://www.mkdocs.org/user-guide/configuration/#site_description",
      "type": "string"
    },
    "site_author": {
      "description": "Set the name of the author. This will add a meta tag to the generated HTML header.\nhttps://www.mkdocs.org/user-guide/configuration/#site_author",
      "type": "string"
    },
    "copyright": {
      "description": "Set the copyright information to be included in the documentation by the theme.\nhttps://www.mkdocs.org/user-guide/configuration/#copyright",
      "type": "string"
    },
    "remote_branch": {
      "default": "gh-pages",
      "description": "Set the remote branch to commit to when using gh-deploy to deploy to GitHub Pages. This option can be overridden by a command line option in gh-deploy.\nhttps://www.mkdocs.org/user-guide/configuration/#remote_branch",
      "type": "string"
    },
    "remote_name": {
      "default": "origin",
      "description": "Set the remote name to push to when using gh-deploy to deploy to GitHub Pages. This option can be overridden by a command line option in gh-deploy.\nhttps://www.mkdocs.org/user-guide/configuration/#remote_name",
      "type": "string"
    },
    "nav": {
      "description": "This setting is used to determine the format and layout of the global navigation for the site.\nhttps://www.mkdocs.org/user-guide/configuration/#nav",
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "object"
          },
          {
            "type": "string"
          }
        ]
      }
    },
    "exclude_docs": {
      "description": "This config defines patterns of files (under docs_dir) to not be picked up into the built site.\nhttps://www.mkdocs.org/user-guide/configuration/#exclude_docs",
      "type": "string"
    },
    "draft_docs": {
      "description": "This config defines patterns of files (under docs_dir) to be treated as a draft. Draft files are available during mkdocs serve and include a \"DRAFT\" mark but will not be included in the build. To prevent this effect and make \"serve\" behave the same as \"build\", you can run mkdocs serve --clean.\nhttps://www.mkdocs.org/user-guide/configuration/#draft_docs",
      "type": "string"
    },
    "not_in_nav": {
      "description": "If you want to include some docs into the site but intentionally exclude them from the nav, normally MkDocs warns about this.\nhttps://www.mkdocs.org/user-guide/configuration/#not_in_nav",
      "type": "string"
    },
    "validation": {
      "description": "Configure the strictness of MkDocs' diagnostic messages when validating links to documents.\nhttps://www.mkdocs.org/user-guide/configuration/#validation",
      "type": "object",
      "properties": {
        "nav": {
          "type": "object",
          "properties": {
            "omitted_files": {
              "$ref": "#/definitions/validationValues",
              "default": "info"
            },
            "not_found": {
              "$ref": "#/definitions/validationValues",
              "default": "warn"
            },
            "absolute_links": {
              "$ref": "#/definitions/validationValues",
              "default": "info"
            }
          }
        },
        "links": {
          "type": "object",
          "properties": {
            "not_found": {
              "$ref": "#/definitions/validationValues",
              "default": "warn"
            },
            "anchors": {
              "$ref": "#/definitions/validationValues",
              "default": "info"
            },
            "absolute_links": {
              "$ref": "#/definitions/validationAbsoluteLinkValues",
              "default": "info"
            },
            "unrecognized_links": {
              "$ref": "#/definitions/validationValues",
              "default": "info"
            }
          }
        },
        "omitted_files": {
          "$ref": "#/definitions/validationValues"
        },
        "not_found": {
          "$ref": "#/definitions/validationValues"
        },
        "absolute_links": {
          "$ref": "#/definitions/validationAbsoluteLinkValues"
        },
        "anchors": {
          "$ref": "#/definitions/validationValues"
        },
        "unrecognized_links": {
          "$ref": "#/definitions/validationValues"
        }
      }
    },
    "theme": {
      "description": "Sets the theme and theme specific configuration of your documentation site.\nhttps://www.mkdocs.org/user-guide/configuration/#theme",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "default": "mkdocs",
              "description": "The string name of a known installed theme, or null if using a local custom theme.",
              "type": ["string", "null"]
            },
            "locale": {
              "default": "en",
              "description": "A code representing the language of your site.",
              "type": "string"
            },
            "custom_dir": {
              "description": "A directory containing a custom theme. This can either be a relative directory, in which case it is resolved relative to the directory containing your configuration file or it can be an absolute directory path from the root of your local file system.",
              "type": "string"
            },
            "static_templates": {
              "description": "A list of templates to render as static pages. The templates must be located in either the theme's template directory or in the custom_dir defined in the theme configuration.",
              "type": "array"
            }
          }
        },
        {
          "default": "mkdocs",
          "type": "string"
        }
      ]
    },
    "docs_dir": {
      "default": "docs",
      "description": "The directory containing the documentation source markdown files. This can either be a relative directory, in which case it is resolved relative to the directory containing your configuration file, or it can be an absolute directory path from the root of your local file system.\nhttps://www.mkdocs.org/user-guide/configuration/#docs_dir",
      "type": "string"
    },
    "site_dir": {
      "default": "site",
      "description": "The directory where the output HTML and other files are created. This can either be a relative directory, in which case it is resolved relative to the directory containing your configuration file, or it can be an absolute directory path from the root of your local file system.\nhttps://www.mkdocs.org/user-guide/configuration/#site_dir",
      "type": "string"
    },
    "extra_css": {
      "default": [],
      "description": "Set a list of CSS files (relative to docs_dir) to be included by the theme, typically as <link> tags.\nhttps://www.mkdocs.org/user-guide/configuration/#extra_css",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "extra_javascript": {
      "default": [],
      "description": "Set a list of JavaScript files in your docs_dir to be included by the theme, as <script> tags.\nhttps://www.mkdocs.org/user-guide/configuration/#extra_javascript",
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "async": {
                "type": "boolean"
              },
              "defer": {
                "type": "boolean"
              }
            },
            "required": ["path"]
          }
        ]
      }
    },
    "extra_templates": {
      "default": [],
      "description": "Set a list of templates in your docs_dir to be built by MkDocs. To see more about writing templates for MkDocs read the documentation about [custom themes] and specifically the section about the [available variables] to templates. See the example in extra_css for usage.\nhttps://www.mkdocs.org/user-guide/configuration/#extra_templates",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "extra": {
      "default": {},
      "description": "A set of key-value pairs, where the values can be any valid YAML construct, that will be passed to the template. This allows for great flexibility when creating custom themes.\nhttps://www.mkdocs.org/user-guide/configuration/#extra",
      "type": "object"
    },
    "watch": {
      "description": "Determines additional directories to watch when running mkdocs serve.\nhttps://www.mkdocs.org/user-guide/configuration/#watch",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "use_directory_urls": {
      "default": true,
      "description": "This setting controls the style used for linking to pages within the documentation.\nhttps://www.mkdocs.org/user-guide/configuration/#use_directory_urls",
      "type": "boolean"
    },
    "strict": {
      "default": false,
      "description": "Determines how warnings are handled. Set to true to halt processing when a warning is raised. Set to false to print a warning and continue processing.\nhttps://www.mkdocs.org/user-guide/configuration/#strict",
      "type": "boolean"
    },
    "dev_addr": {
      "default": "127.0.0.1:8000",
      "description": "Determines the address used when running mkdocs serve. Must be of the format IP:PORT.\nhttps://www.mkdocs.org/user-guide/configuration/#dev_addr",
      "type": "string"
    },
    "markdown_extensions": {
      "default": [],
      "description": "This setting lets you enable a list of extensions beyond the ones that MkDocs uses by default (meta, toc, tables, and fenced_code).\nhttps://www.mkdocs.org/user-guide/configuration/#markdown_extensions",
      "anyOf": [
        {
          "type": "array"
        },
        {
          "type": "object"
        }
      ]
    },
    "hooks": {
      "description": "A list of paths to Python scripts (relative to mkdocs.yml) that are loaded and used as plugin instances.\nhttps://www.mkdocs.org/user-guide/configuration/#hooks",
      "type": "array"
    },
    "plugins": {
      "default": ["search"],
      "description": "A list of plugins (with optional configuration settings) to use when building the site. See the Plugins documentation for full details.\nhttps://www.mkdocs.org/user-guide/configuration/#plugins",
      "anyOf": [
        {
          "type": "array"
        },
        {
          "type": "object"
        }
      ]
    },
    "INHERIT": {
      "description": "Define the parent for a configuration file. The path must be relative to the location of the primary file.\nhttps://www.mkdocs.org/user-guide/configuration/#configuration-inheritance",
      "type": "string"
    }
  },
  "required": ["site_name"]
}
