{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/read-the-docs/latest.json",
  "title": "Read the Docs",
  "description": "Read the Docs configuration file.",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/readthedocs/readthedocs.org/master/readthedocs/rtd_tests/fixtures/spec/v2/schema.json",
    "sourceSha256": "53020b9663de49ea6a1cebc25a09d5f494ad61d5662cb19edd7c56fd4ff14b34",
    "fileMatch": [
      "readthedocs.yml",
      "readthedocs.yaml",
      ".readthedocs.yml",
      ".readthedocs.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "version": {
      "title": "Version",
      "description": "The version of the spec to use.",
      "type": "number",
      "enum": [
        2
      ]
    },
    "formats": {
      "title": "Formats",
      "description": "Formats of the documentation to be built.",
      "anyOf": [
        {
          "type": "array",
          "items": {
            "enum": [
              "htmlzip",
              "pdf",
              "epub"
            ]
          }
        },
        {
          "enum": [
            "all"
          ]
        }
      ],
      "default": []
    },
    "conda": {
      "title": "Conda",
      "description": "Configuration for Conda support.",
      "type": "object",
      "properties": {
        "environment": {
          "title": "Environment",
          "description": "The path to the Conda environment file from the root of the project.",
          "type": "string"
        }
      },
      "required": [
        "environment"
      ]
    },
    "build": {
      "title": "Build",
      "description": "Configuration for the documentation build process.",
      "type": "object",
      "properties": {
        "os": {
          "title": "Operating System",
          "description": "Operating system to be used in the build.",
          "enum": [
            "ubuntu-20.04",
            "ubuntu-22.04",
            "ubuntu-24.04",
            "ubuntu-26.04",
            "ubuntu-lts-latest"
          ]
        },
        "jobs": {
          "title": "Build jobs",
          "description": "Run custom commands at any point in the build process",
          "type": "object",
          "properties": {
            "post_checkout": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "pre_system_dependencies": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "post_system_dependencies": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "pre_create_environment": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "create_environment": {
              "description": "Override the default environment creation process.",
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "post_create_environment": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "pre_install": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "install": {
              "description": "Override the default installation process.",
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "post_install": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "pre_build": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            },
            "build": {
              "description": "Override the default build process.",
              "type": "object",
              "properties": {
                "html": {
                  "type": "array",
                  "items": {
                    "title": "Custom commands",
                    "type": "string"
                  }
                },
                "htmlzip": {
                  "type": "array",
                  "items": {
                    "title": "Custom commands",
                    "type": "string"
                  }
                },
                "pdf": {
                  "type": "array",
                  "items": {
                    "title": "Custom commands",
                    "type": "string"
                  }
                },
                "epub": {
                  "type": "array",
                  "items": {
                    "title": "Custom commands",
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "post_build": {
              "type": "array",
              "items": {
                "title": "Custom commands",
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "tools": {
          "title": "Tools",
          "description": "Tools and their version to be used in the build.",
          "type": "object",
          "properties": {
            "python": {
              "enum": [
                "2.7",
                "3",
                "3.6",
                "3.7",
                "3.8",
                "3.9",
                "3.10",
                "3.11",
                "3.12",
                "3.13",
                "3.14",
                "latest",
                "miniconda3-4.7",
                "miniconda3-3.12-24.1",
                "miniconda3-3.12-24.9",
                "miniconda-latest",
                "mambaforge-4.10",
                "mambaforge-22.9",
                "mambaforge-23.11",
                "mambaforge-latest",
                "miniforge3-25.11",
                "miniforge3-latest"
              ]
            },
            "nodejs": {
              "enum": [
                "14",
                "16",
                "18",
                "19",
                "20",
                "22",
                "23",
                "24",
                "25",
                "latest"
              ]
            },
            "ruby": {
              "enum": [
                "3.3",
                "3.4",
                "latest"
              ]
            },
            "rust": {
              "enum": [
                "1.55",
                "1.61",
                "1.64",
                "1.70",
                "1.75",
                "1.78",
                "1.82",
                "1.86",
                "1.91",
                "latest"
              ]
            },
            "golang": {
              "enum": [
                "1.17",
                "1.18",
                "1.19",
                "1.20",
                "1.21",
                "1.22",
                "1.23",
                "1.24",
                "1.25",
                "latest"
              ]
            }
          },
          "minProperties": 1,
          "additionalProperties": false
        },
        "apt_packages": {
          "title": "APT Packages",
          "description": "List of packages to be installed with apt-get.",
          "type": "array",
          "items": {
            "title": "APT Package",
            "type": "string"
          },
          "default": []
        },
        "commands": {
          "title": "Build commands",
          "description": "Override the whole build process with custom commands. When using this option, none of the commands from build.jobs will be executed.",
          "type": "array",
          "items": {
            "title": "Custom commands",
            "type": "string"
          }
        }
      },
      "required": [
        "os"
      ],
      "anyOf": [
        {
          "required": [
            "tools"
          ]
        },
        {
          "required": [
            "commands"
          ]
        }
      ],
      "additionalProperties": false
    },
    "python": {
      "title": "Python",
      "description": "Configuration of the Python environment to be used.",
      "type": "object",
      "properties": {
        "install": {
          "title": "Install",
          "description": "Installation of packages and requirements.",
          "type": "array",
          "items": {
            "anyOf": [
              {
                "properties": {
                  "requirements": {
                    "title": "Requirements",
                    "description": "The path to the requirements file from the root of the project.",
                    "type": "string"
                  }
                },
                "required": [
                  "requirements"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "path": {
                    "title": "Path",
                    "description": "The path to the project to be installed",
                    "type": "string"
                  },
                  "method": {
                    "title": "Method",
                    "description": "Install using python setup.py install or pip.",
                    "enum": [
                      "pip",
                      "setuptools"
                    ],
                    "default": "pip"
                  },
                  "extra_requirements": {
                    "title": "Extra Requirements",
                    "description": "Extra requirements sections to install in addition to the package dependencies.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "default": []
                  }
                },
                "required": [
                  "path"
                ],
                "type": "object"
              }
            ]
          }
        }
      },
      "additionalProperties": false
    },
    "sphinx": {
      "title": "Sphinx",
      "description": "Configuration for sphinx documentation.",
      "type": "object",
      "properties": {
        "builder": {
          "title": "Builder",
          "description": "The builder type for the sphinx documentation.",
          "enum": [
            "html",
            "dirhtml",
            "singlehtml"
          ],
          "default": "html"
        },
        "configuration": {
          "title": "Configuration",
          "description": "The path to the conf.py file.",
          "type": "string"
        },
        "fail_on_warning": {
          "title": "Fail on Warning",
          "description": "Add the -W option to sphinx-build.",
          "type": "boolean",
          "default": false
        }
      },
      "required": [
        "configuration"
      ],
      "additionalProperties": false
    },
    "mkdocs": {
      "title": "mkdocs",
      "description": "Configuration for mkdocs documentation.",
      "type": "object",
      "properties": {
        "configuration": {
          "title": "Configuration",
          "description": "The path to the mkdocs.yml file.",
          "type": "string"
        },
        "fail_on_warning": {
          "title": "Fail on Warning",
          "description": "Add the --strict option to mkdocs build.",
          "type": "boolean",
          "default": false
        }
      },
      "required": [
        "configuration"
      ],
      "additionalProperties": false
    },
    "submodules": {
      "title": "Submodules",
      "description": "Submodules configuration.",
      "type": "object",
      "properties": {
        "include": {
          "title": "Include",
          "description": "List of submodules to be included.",
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "enum": [
                "all"
              ]
            }
          ],
          "default": []
        },
        "exclude": {
          "title": "Exclude",
          "description": "List of submodules to be ignored.",
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "enum": [
                "all"
              ]
            }
          ],
          "default": []
        },
        "recursive": {
          "title": "Recursive",
          "description": "Do a recursive clone?",
          "type": "boolean",
          "default": false
        }
      },
      "additionalProperties": false
    },
    "search": {
      "title": "search",
      "type": "object",
      "properties": {
        "ranking": {
          "title": "Ranking",
          "description": "Map of patterns to ranks.",
          "additionalProperties": {
            "type": "number",
            "minimum": -10,
            "maximum": 10
          }
        },
        "ignore": {
          "title": "Ignore",
          "description": "List of patterns.",
          "type": "array",
          "items": {
            "title": "Pattern",
            "type": "string"
          },
          "default": [
            "search.html",
            "search/index.html",
            "404.html",
            "404/index.html"
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "version"
  ],
  "$comment": "https://docs.readthedocs.io/en/stable/config-file/index.html",
  "additionalProperties": false
}
