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