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