1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6 fetchpatch,
7 importlib-metadata,
8 pyyaml,
9 setuptools,
10 unittestCheckHook,
11}:
12
13buildPythonPackage rec {
14 pname = "markdown";
15 version = "3.8.2";
16 pyproject = true;
17
18 disabled = pythonOlder "3.8";
19
20 src = fetchFromGitHub {
21 owner = "Python-Markdown";
22 repo = "markdown";
23 tag = version;
24 hash = "sha256-L5OTjllMUrpsKZbK+EHcqlua/6I4onJvRC3povbHgfY=";
25 };
26
27 patches = [
28 (fetchpatch {
29 url = "https://github.com/Python-Markdown/markdown/commit/23c301de28e12426408656efdfa153b11d4ff558.patch";
30 hash = "sha256-85HP97iL1umG60jwUgfnHvKHYmws5FSL0xfgZF95aiQ=";
31 })
32 ];
33
34 build-system = [ setuptools ];
35
36 dependencies = lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
37
38 nativeCheckInputs = [
39 unittestCheckHook
40 pyyaml
41 ];
42
43 pythonImportsCheck = [ "markdown" ];
44
45 meta = with lib; {
46 changelog = "https://github.com/Python-Markdown/markdown/blob/${src.tag}/docs/changelog.md";
47 description = "Python implementation of John Gruber's Markdown";
48 mainProgram = "markdown_py";
49 homepage = "https://github.com/Python-Markdown/markdown";
50 license = licenses.bsd3;
51 maintainers = with maintainers; [ dotlambda ];
52 };
53}