Files
mkdocs/pyproject.toml
Waylan Limberg 351b87939d Update mkdocs theme to Bootstrap/Bootswatch 5.3.2
Javascript has been updated to Bootstrap version 5.3.2 and CSS has been
updated to the the Bootswatch Cerulean theme version 5.3.2. Adding support
for a dark mode to the mkdocs theme is now possible.

All local colors (in base.css, extra.css, etc.) are now defined using
Bootstrap variables so that any future color modes (such as dark mode)
will be consistent.

Admonition styles have also been fully fleshed out with all colors being
Bootstrap colors (via variables) rather than our own custom colors.

Note that while Bootstrap version 5 dropped a dependency on jQuery, the
mkdocs theme is still making use of jQuery at this time. However, future
changes could remove the need for this dependency.

Co-authored-by: Oleh Prypin <oleh@pryp.in>
2024-03-16 15:16:34 +01:00

241 lines
6.6 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "mkdocs"
description = "Project documentation with Markdown."
readme = "README.md"
license = "BSD-2-Clause"
authors = [
{name = "Tom Christie", email = "tom@tomchristie.com"},
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Documentation",
"Topic :: Text Processing",
]
dynamic = ["version"]
requires-python = ">=3.8"
dependencies = [
"click >=7.0",
"Jinja2 >=2.11.1",
"markupsafe >=2.0.1",
"Markdown >=3.3.6",
"PyYAML >=5.1",
"watchdog >=2.0",
"ghp-import >=1.0",
"pyyaml_env_tag >=0.1",
"importlib-metadata >=4.4; python_version < '3.10'",
"packaging >=20.5",
"mergedeep >=1.3.4",
"pathspec >=0.11.1",
"mkdocs-get-deps >=0.2.0",
"colorama >=0.4; platform_system == 'Windows'",
]
[project.optional-dependencies]
i18n = [
"babel >=2.9.0",
"setuptools; python_version >= '3.12'" # Workaround: babel doesn't declare its dependency
]
min-versions = [
"click ==7.0",
"Jinja2 ==2.11.1",
"markupsafe ==2.0.1",
"Markdown ==3.3.6",
"PyYAML ==5.1",
"watchdog ==2.0",
"ghp-import ==1.0",
"pyyaml_env_tag ==0.1",
"importlib-metadata ==4.4; python_version < '3.10'",
"packaging ==20.5",
"mergedeep ==1.3.4",
"pathspec ==0.11.1",
"mkdocs-get-deps ==0.2.0",
"colorama ==0.4; platform_system == 'Windows'",
"babel ==2.9.0",
]
[project.urls]
Documentation = "https://www.mkdocs.org/"
Source = "https://github.com/mkdocs/mkdocs"
Issues = "https://github.com/mkdocs/mkdocs/issues"
History = "https://www.mkdocs.org/about/release-notes/"
[project.scripts]
mkdocs = "mkdocs.__main__:cli"
[project.entry-points."mkdocs.themes"]
mkdocs = "mkdocs.themes.mkdocs"
readthedocs = "mkdocs.themes.readthedocs"
[project.entry-points."mkdocs.plugins"]
search = "mkdocs.contrib.search:SearchPlugin"
[tool.hatch.version]
path = "mkdocs/__init__.py"
[tool.hatch.build]
artifacts = ["/mkdocs/**/*.mo"]
[tool.hatch.build.targets.sdist]
include = ["/mkdocs"]
[tool.hatch.build.targets.wheel]
exclude = ["/mkdocs/tests", "*.po", "*.pot", "babel.cfg"]
[tool.hatch.build.hooks.custom]
dependencies = [
"babel",
"setuptools; python_version >= '3.12'" # Workaround: babel doesn't declare its dependency
]
[tool.hatch.env]
requires = ["hatch-mkdocs", "hatch-pip-compile"]
[tool.hatch.envs.default.scripts]
all = [
"hatch run style:fix",
"hatch run types:check",
"hatch run test:test",
"hatch run lint:check",
"hatch run +type=default integration:test",
]
[tool.hatch.envs.test]
features = ["i18n"]
dependencies = [
"coverage",
]
[tool.hatch.envs.test.scripts]
test = 'python -m unittest discover -s mkdocs -p "*tests.py"'
_coverage = [
'coverage run --source=mkdocs --omit "mkdocs/tests/*" -m unittest discover -s mkdocs -p "*tests.py"',
"coverage xml",
"coverage report --show-missing"
]
with-coverage = "test"
[[tool.hatch.envs.test.matrix]]
python = ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy3"]
type = ["default", "min-req"]
[tool.hatch.envs.test.overrides]
matrix.type.features = [
{ value = "min-versions", if = ["min-req"] },
]
matrix.type.scripts = [
{ key = "with-coverage", value = "_coverage", if = ["default"] },
]
[tool.hatch.env.collectors.mkdocs.integration]
path = "mkdocs.yml"
[tool.hatch.envs.integration]
detached = false
[tool.hatch.envs.integration.scripts]
test = "python -m mkdocs.tests.integration"
[[tool.hatch.envs.integration.matrix]]
python = ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy3"]
type = ["default", "no-babel"]
[tool.hatch.envs.integration.overrides]
matrix.type.features = [
{ value = "i18n", if = ["default"] },
]
[tool.hatch.envs.types]
dependencies = [
"mypy",
"babel",
"types-Markdown",
"types-pytz",
"types-PyYAML",
"types-setuptools",
"typing-extensions",
]
[tool.hatch.envs.types.scripts]
check = "mypy mkdocs"
[tool.hatch.envs.style]
type = "pip-compile"
detached = true
dependencies = [
"black",
"isort",
"ruff",
]
[tool.hatch.envs.style.scripts]
check = [
"isort --check-only --diff mkdocs docs",
"black -q --check --diff mkdocs docs",
"lint",
]
lint = [
"ruff check mkdocs docs {args}"
]
fix = [
"lint --fix",
"format",
]
format = [
"isort -q mkdocs docs",
"black -q mkdocs docs",
]
[tool.hatch.envs.lint]
detached = true
dependencies = [
"codespell",
]
[tool.hatch.envs.lint.scripts]
spelling = 'codespell mkdocs docs *.* -S LC_MESSAGES -S "*.min.js" -S "lunr*.js" -S fontawesome-webfont.svg -S tinyseg.js -S "*.map"'
markdown = "npm exec --yes -- markdownlint-cli README.md CONTRIBUTING.md docs/ --ignore docs/CNAME"
js = "npm exec --yes -- jshint mkdocs/"
check = ["markdown", "js", "css", "spelling"]
[tool.hatch.env.collectors.mkdocs.docs]
path = "mkdocs.yml"
[tool.hatch.envs.docs]
type = "pip-compile"
detached = false
[tool.black]
line-length = 100
skip-string-normalization = true
[tool.isort]
profile = "black"
line_length = 100
[tool.ruff]
select = [
"F", "W", "E", "UP", "YTT", "C4", "DTZ", "FA", "ISC", "PIE", "T20", "RSE", "TCH",
"B002", "B003", "B005", "B007", "B009", "B012", "B013", "B014", "B015", "B018", "B020", "B021", "B023", "B026", "B033", "B034", "B905",
"COM818",
"D200", "D201", "D202", "D204", "D207", "D208", "D209", "D210", "D211", "D213", "D214", "D300", "D301", "D400", "D402", "D403", "D405", "D412", "D414", "D415", "D416", "D417", "D419",
"PERF101",
"PGH002", "PGH004", "PGH005",
"FLY002",
"PLC", "PLE", "PLR0124", "PLR0133", "PLR0206", "PLR0402", "PLR1701", "PLR1722", "PLW0120", "PLW0127", "PLW0129", "PLW0131", "PLW0406", "PLW0602", "PLW0603", "PLW0711",
"RUF001", "RUF005", "RUF007", "RUF010", "RUF013", "RUF100", "RUF200",
"SIM101", "SIM107", "SIM201", "SIM202", "SIM208", "SIM210", "SIM211", "SIM300", "SIM401", "SIM910",
]
ignore = ["E501", "E731"]
[tool.ruff.flake8-comprehensions]
allow-dict-calls-with-keyword-arguments = true
[tool.mypy]
warn_unreachable = true
no_implicit_optional = true
show_error_codes = true