1{ 2 lib, 3 attrs, 4 buildPythonPackage, 5 commonmark, 6 fetchFromGitHub, 7 flit-core, 8 linkify-it-py, 9 markdown, 10 mdit-py-plugins, 11 mdurl, 12 mistletoe, 13 mistune, 14 myst-parser, 15 panflute, 16 pyyaml, 17 sphinx, 18 sphinx-book-theme, 19 sphinx-copybutton, 20 sphinx-design, 21 stdenv, 22 pytest-regressions, 23 pytestCheckHook, 24 pythonRelaxDepsHook, 25 pythonOlder, 26}: 27 28buildPythonPackage rec { 29 pname = "markdown-it-py"; 30 version = "3.0.0"; 31 format = "pyproject"; 32 33 disabled = pythonOlder "3.6"; 34 35 src = fetchFromGitHub { 36 owner = "executablebooks"; 37 repo = pname; 38 rev = "refs/tags/v${version}"; 39 hash = "sha256-cmjLElJA61EysTUFMVY++Kw0pI4wOIXOyCY3To9fpQc="; 40 }; 41 42 # fix downstrem usage of markdown-it-py[linkify] 43 pythonRelaxDeps = [ "linkify-it-py" ]; 44 45 nativeBuildInputs = [ 46 pythonRelaxDepsHook 47 flit-core 48 ]; 49 50 propagatedBuildInputs = [ mdurl ]; 51 52 nativeCheckInputs = [ 53 pytest-regressions 54 pytestCheckHook 55 ] ++ passthru.optional-dependencies.linkify; 56 57 # disable and remove benchmark tests 58 preCheck = '' 59 rm -r benchmarking 60 ''; 61 doCheck = !stdenv.isi686; 62 63 pythonImportsCheck = [ "markdown_it" ]; 64 65 passthru.optional-dependencies = { 66 compare = [ 67 commonmark 68 markdown 69 mistletoe 70 mistune 71 panflute 72 ]; 73 linkify = [ linkify-it-py ]; 74 plugins = [ mdit-py-plugins ]; 75 rtd = [ 76 attrs 77 myst-parser 78 pyyaml 79 sphinx 80 sphinx-copybutton 81 sphinx-design 82 sphinx-book-theme 83 ]; 84 }; 85 86 meta = with lib; { 87 description = "Markdown parser in Python"; 88 homepage = "https://markdown-it-py.readthedocs.io/"; 89 changelog = "https://github.com/executablebooks/markdown-it-py/blob/${src.rev}/CHANGELOG.md"; 90 license = licenses.mit; 91 maintainers = with maintainers; [ bhipple ]; 92 mainProgram = "markdown-it"; 93 }; 94}