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