1{
2 # eval time deps
3 lib,
4 buildPythonPackage,
5 fetchFromGitHub,
6 pythonAtLeast,
7 pythonOlder,
8
9 # buildtime
10 hatchling,
11
12 # runtime deps
13 click,
14 ghp-import,
15 importlib-metadata,
16 jinja2,
17 markdown,
18 markupsafe,
19 mergedeep,
20 mkdocs-get-deps,
21 packaging,
22 pathspec,
23 platformdirs,
24 pyyaml,
25 pyyaml-env-tag,
26 watchdog,
27
28 # optional-dependencies
29 babel,
30 setuptools,
31
32 # testing deps
33 mock,
34 unittestCheckHook,
35}:
36
37buildPythonPackage rec {
38 pname = "mkdocs";
39 version = "1.6.0";
40 pyproject = true;
41
42 disabled = pythonOlder "3.7";
43
44 src = fetchFromGitHub {
45 owner = pname;
46 repo = pname;
47 rev = "refs/tags/${version}";
48 hash = "sha256-tpDKomHFoGYPLz7rcohkU9w7G/5+YkJ5Y6wJJRyMecI=";
49 };
50
51 build-system = [ hatchling ];
52
53 dependencies = [
54 click
55 ghp-import
56 jinja2
57 markdown
58 markupsafe
59 mergedeep
60 mkdocs-get-deps
61 packaging
62 pathspec
63 platformdirs
64 pyyaml
65 pyyaml-env-tag
66 watchdog
67 ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
68
69 passthru.optional-dependencies = {
70 i18n = [ babel ] ++ lib.optionals (pythonAtLeast "3.12") [ setuptools ];
71 };
72
73 nativeCheckInputs = [
74 unittestCheckHook
75 mock
76 ] ++ passthru.optional-dependencies.i18n;
77
78 unittestFlagsArray = [
79 "-v"
80 "-p"
81 "'*tests.py'"
82 "mkdocs"
83 ];
84
85 pythonImportsCheck = [ "mkdocs" ];
86
87 meta = with lib; {
88 changelog = "https://github.com/mkdocs/mkdocs/releases/tag/${version}";
89 description = "Project documentation with Markdown / static website generator";
90 mainProgram = "mkdocs";
91 downloadPage = "https://github.com/mkdocs/mkdocs";
92 longDescription = ''
93 MkDocs is a fast, simple and downright gorgeous static site generator that's
94 geared towards building project documentation. Documentation source files
95 are written in Markdown, and configured with a single YAML configuration file.
96
97 MkDocs can also be used to generate general-purpose websites.
98 '';
99 homepage = "http://mkdocs.org/";
100 license = licenses.bsd2;
101 platforms = platforms.unix;
102 maintainers = with maintainers; [ rkoe ];
103 };
104}