1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 importlib-metadata,
6 markdown-it-py,
7 pytestCheckHook,
8 pythonOlder,
9 setuptools,
10 tomli,
11}:
12
13buildPythonPackage rec {
14 pname = "mdformat";
15 version = "0.7.22";
16 pyproject = true;
17
18 disabled = pythonOlder "3.8";
19
20 src = fetchFromGitHub {
21 owner = "executablebooks";
22 repo = "mdformat";
23 tag = version;
24 hash = "sha256-WvbGCqfzh7KlNXIGJq09goiyLzVgU7c1+qmsLrIW38k=";
25 };
26
27 build-system = [ setuptools ];
28
29 dependencies =
30 [ markdown-it-py ]
31 ++ lib.optionals (pythonOlder "3.11") [ tomli ]
32 ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
33
34 nativeCheckInputs = [ pytestCheckHook ];
35
36 pythonImportsCheck = [ "mdformat" ];
37
38 passthru = {
39 withPlugins = throw "Use pkgs.mdformat.withPlugins, i.e. the top-level attribute.";
40 };
41
42 meta = with lib; {
43 description = "CommonMark compliant Markdown formatter";
44 homepage = "https://mdformat.rtfd.io/";
45 changelog = "https://github.com/executablebooks/mdformat/blob/${version}/docs/users/changelog.md";
46 license = licenses.mit;
47 maintainers = with maintainers; [
48 fab
49 aldoborrero
50 ];
51 mainProgram = "mdformat";
52 };
53}