1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 flit-core,
6 pythonOlder,
7 defusedxml,
8 docutils,
9 jinja2,
10 markdown-it-py,
11 mdit-py-plugins,
12 pyyaml,
13 sphinx,
14 typing-extensions,
15 beautifulsoup4,
16 pytest-param-files,
17 pytest-regressions,
18 sphinx-pytest,
19 pytestCheckHook,
20}:
21buildPythonPackage rec {
22 pname = "myst-parser";
23 version = "3.0.1";
24 format = "pyproject";
25
26 disabled = pythonOlder "3.7";
27
28 src = fetchFromGitHub {
29 owner = "executablebooks";
30 repo = pname;
31 rev = "refs/tags/v${version}";
32 hash = "sha256-TKo1lanZNM+XrOKZ0ZmtlhEPoAYQUspkyHXZm1wNTFE=";
33 };
34
35 nativeBuildInputs = [
36 flit-core
37 ];
38
39 propagatedBuildInputs = [
40 docutils
41 jinja2
42 mdit-py-plugins
43 markdown-it-py
44 pyyaml
45 sphinx
46 typing-extensions
47 ];
48
49 nativeCheckInputs = [
50 beautifulsoup4
51 defusedxml
52 pytest-param-files
53 pytest-regressions
54 sphinx-pytest
55 pytestCheckHook
56 ] ++ markdown-it-py.optional-dependencies.linkify;
57
58 pythonImportsCheck = [ "myst_parser" ];
59
60 pythonRelaxDeps = [ "docutils" ];
61
62 meta = with lib; {
63 description = "Sphinx and Docutils extension to parse MyST";
64 homepage = "https://myst-parser.readthedocs.io/";
65 changelog = "https://raw.githubusercontent.com/executablebooks/MyST-Parser/v${version}/CHANGELOG.md";
66 license = licenses.mit;
67 maintainers = with maintainers; [ loicreynier ];
68 };
69}