1{
2 lib,
3 babel,
4 buildPythonPackage,
5 cairosvg,
6 colorama,
7 fetchFromGitHub,
8 hatch-nodejs-version,
9 hatch-requirements-txt,
10 hatchling,
11 jinja2,
12 markdown,
13 mkdocs,
14 mkdocs-git-revision-date-localized-plugin,
15 mkdocs-material-extensions,
16 mkdocs-minify-plugin,
17 mkdocs-redirects,
18 mkdocs-rss-plugin,
19 paginate,
20 pillow,
21 pygments,
22 pymdown-extensions,
23 pythonOlder,
24 regex,
25 requests,
26 trove-classifiers,
27}:
28
29buildPythonPackage rec {
30 pname = "mkdocs-material";
31 version = "9.5.30";
32 pyproject = true;
33
34 disabled = pythonOlder "3.7";
35
36 src = fetchFromGitHub {
37 owner = "squidfunk";
38 repo = "mkdocs-material";
39 rev = "refs/tags/${version}";
40 hash = "sha256-VgOPmOwPAwTqCCDxtiQ3dReTdjfXYL7/1CdSqTgw+uo=";
41 };
42
43 nativeBuildInputs = [
44 hatch-requirements-txt
45 hatch-nodejs-version
46 hatchling
47 trove-classifiers
48 ];
49
50 propagatedBuildInputs = [
51 babel
52 colorama
53 jinja2
54 markdown
55 mkdocs
56 mkdocs-material-extensions
57 paginate
58 pygments
59 pymdown-extensions
60 regex
61 requests
62 ];
63
64 passthru.optional-dependencies = {
65 recommended = [
66 mkdocs-minify-plugin
67 mkdocs-redirects
68 mkdocs-rss-plugin
69 ];
70 git = [
71 # TODO: gmkdocs-git-committers-plugin
72 mkdocs-git-revision-date-localized-plugin
73 ];
74 imaging = [
75 cairosvg
76 pillow
77 ];
78 };
79
80 # No tests for python
81 doCheck = false;
82
83 pythonImportsCheck = [ "mkdocs" ];
84
85 meta = with lib; {
86 changelog = "https://github.com/squidfunk/mkdocs-material/blob/${src.rev}/CHANGELOG";
87 description = "Material for mkdocs";
88 downloadPage = "https://github.com/squidfunk/mkdocs-material";
89 homepage = "https://squidfunk.github.io/mkdocs-material/";
90 license = licenses.mit;
91 maintainers = with maintainers; [ dandellion ];
92 };
93}