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.1";
40 pyproject = true;
41
42 disabled = pythonOlder "3.7";
43
44 src = fetchFromGitHub {
45 owner = "mkdocs";
46 repo = "mkdocs";
47 tag = version;
48 hash = "sha256-JQSOgV12iYE6FubxdoJpWy9EHKFxyKoxrm/7arCn9Ak=";
49 };
50
51 build-system = [
52 hatchling
53 # babel, setuptools required as "build hooks"
54 babel
55 ]
56 ++ lib.optionals (pythonAtLeast "3.12") [ setuptools ];
57
58 dependencies = [
59 click
60 ghp-import
61 jinja2
62 markdown
63 markupsafe
64 mergedeep
65 mkdocs-get-deps
66 packaging
67 pathspec
68 platformdirs
69 pyyaml
70 pyyaml-env-tag
71 watchdog
72 ]
73 ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
74
75 optional-dependencies = {
76 i18n = [ babel ];
77 };
78
79 nativeCheckInputs = [
80 unittestCheckHook
81 mock
82 ]
83 ++ optional-dependencies.i18n;
84
85 unittestFlagsArray = [
86 "-v"
87 "-p"
88 "'*tests.py'"
89 "mkdocs"
90 ];
91
92 pythonImportsCheck = [ "mkdocs" ];
93
94 meta = with lib; {
95 changelog = "https://github.com/mkdocs/mkdocs/releases/tag/${version}";
96 description = "Project documentation with Markdown / static website generator";
97 mainProgram = "mkdocs";
98 downloadPage = "https://github.com/mkdocs/mkdocs";
99 longDescription = ''
100 MkDocs is a fast, simple and downright gorgeous static site generator that's
101 geared towards building project documentation. Documentation source files
102 are written in Markdown, and configured with a single YAML configuration file.
103
104 MkDocs can also be used to generate general-purpose websites.
105 '';
106 homepage = "http://mkdocs.org/";
107 license = licenses.bsd2;
108 platforms = platforms.unix;
109 maintainers = with maintainers; [ rkoe ];
110 };
111}