nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 # eval time deps
3 lib,
4 buildPythonPackage,
5 fetchFromGitHub,
6 pythonAtLeast,
7
8 # buildtime
9 hatchling,
10
11 # runtime deps
12 click,
13 ghp-import,
14 jinja2,
15 markdown,
16 markupsafe,
17 mergedeep,
18 mkdocs-get-deps,
19 packaging,
20 pathspec,
21 platformdirs,
22 pyyaml,
23 pyyaml-env-tag,
24 watchdog,
25
26 # optional-dependencies
27 babel,
28 setuptools,
29
30 # testing deps
31 mock,
32 unittestCheckHook,
33}:
34
35buildPythonPackage rec {
36 pname = "mkdocs";
37 version = "1.6.1";
38 pyproject = true;
39
40 src = fetchFromGitHub {
41 owner = "mkdocs";
42 repo = "mkdocs";
43 tag = version;
44 hash = "sha256-JQSOgV12iYE6FubxdoJpWy9EHKFxyKoxrm/7arCn9Ak=";
45 };
46
47 patches = [
48 # https://github.com/mkdocs/mkdocs/pull/4065
49 ./click-8.3.0-compat.patch
50 ];
51
52 build-system = [
53 hatchling
54 # babel, setuptools required as "build hooks"
55 babel
56 ]
57 ++ lib.optionals (pythonAtLeast "3.12") [ setuptools ];
58
59 dependencies = [
60 click
61 ghp-import
62 jinja2
63 markdown
64 markupsafe
65 mergedeep
66 mkdocs-get-deps
67 packaging
68 pathspec
69 platformdirs
70 pyyaml
71 pyyaml-env-tag
72 watchdog
73 ];
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 = {
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 = lib.licenses.bsd2;
108 platforms = lib.platforms.unix;
109 maintainers = with lib.maintainers; [ rkoe ];
110 };
111}