From 3cfda8c3c278642c9d8c5c55839be0b13a588b03 Mon Sep 17 00:00:00 2001
From: 8084 <klntsky@gmail.com>
Date: Sat, 16 Mar 2019 22:14:52 +0300
Subject: [PATCH] retext: init at 7.0.4

---
 pkgs/applications/editors/retext/default.nix  | 62 +++++++++++++++++++
 .../python-modules/Markups/default.nix        | 28 +++++++++
 .../python-markdown-math/default.nix          | 24 +++++++
 pkgs/top-level/all-packages.nix               |  2 +
 pkgs/top-level/python-packages.nix            |  4 ++
 5 files changed, 120 insertions(+)
 create mode 100644 pkgs/applications/editors/retext/default.nix
 create mode 100644 pkgs/development/python-modules/Markups/default.nix
 create mode 100644 pkgs/development/python-modules/python-markdown-math/default.nix

diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix
new file mode 100644
index 000000000000..ec34960e20d2
--- /dev/null
+++ b/pkgs/applications/editors/retext/default.nix
@@ -0,0 +1,62 @@
+{ lib, stdenv, python3, fetchFromGitHub, makeWrapper, buildEnv, aspellDicts
+# Use `lib.collect lib.isDerivation aspellDicts;` to make all dictionaries
+# available.
+, enchantAspellDicts ? with aspellDicts; [ en en-computers en-science ]
+}:
+
+let
+  version = "7.0.4";
+  python = let
+    packageOverrides = self: super: {
+      markdown = super.markdown.overridePythonAttrs(old: rec {
+        src =  super.fetchPypi {
+          version = "3.0.1";
+          pname = "Markdown";
+          sha256 = "d02e0f9b04c500cde6637c11ad7c72671f359b87b9fe924b2383649d8841db7c";
+        };
+      });
+
+      chardet = super.chardet.overridePythonAttrs(old: rec {
+        src =  super.fetchPypi {
+          version = "2.3.0";
+          pname = "chardet";
+          sha256 = "e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa";
+        };
+      });
+    };
+    in python3.override { inherit packageOverrides; };
+  pythonEnv = python.withPackages (ps: with ps; [
+    pyqt5 docutils pyenchant Markups markdown pygments chardet
+  ]);
+in python.pkgs.buildPythonApplication {
+  inherit version;
+  pname = "retext";
+
+  src = fetchFromGitHub {
+    owner = "retext-project";
+    repo = "retext";
+    rev = "${version}";
+    sha256 = "1zcapywspc9v5zf5cxqkcy019np9n41gmryqixj66zsvd544c6si";
+  };
+
+  doCheck = false;
+
+  propagatedBuildInputs = [ makeWrapper pythonEnv ];
+
+  postInstall = ''
+    mv $out/bin/retext $out/bin/.retext
+    makeWrapper "$out/bin/.retext" "$out/bin/retext" \
+      --set ASPELL_CONF "dict-dir ${buildEnv {
+        name = "aspell-all-dicts";
+        paths = map (path: "${path}/lib/aspell") enchantAspellDicts;
+      }}"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/retext-project/retext/;
+    description = "Simple but powerful editor for Markdown and reStructuredText";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ klntsky ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/python-modules/Markups/default.nix b/pkgs/development/python-modules/Markups/default.nix
new file mode 100644
index 000000000000..bf112649bd7f
--- /dev/null
+++ b/pkgs/development/python-modules/Markups/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python-markdown-math
+, markdown
+, docutils
+, pygments
+}:
+
+buildPythonPackage rec {
+  pname = "Markups";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ea19458dfca6a4562044e701aa8698089a0c659fc535689ed260f89a04f8d39";
+  };
+
+  checkInputs = [ markdown docutils pygments ];
+  propagatedBuildInputs = [ python-markdown-math ];
+
+  meta = {
+    description = "A wrapper around various text markup languages.";
+    homepage = https://github.com/retext-project/pymarkups;
+    license = lib.licenses.bsd;
+    maintainers = with lib.maintainers; [ klntsky ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-markdown-math/default.nix b/pkgs/development/python-modules/python-markdown-math/default.nix
new file mode 100644
index 000000000000..3347e5b76cca
--- /dev/null
+++ b/pkgs/development/python-modules/python-markdown-math/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, markdown
+}:
+
+buildPythonPackage rec {
+  pname = "python-markdown-math";
+  version = "0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c68d8cb9695cb7b435484403dc18941d1bad0ff148e4166d9417046a0d5d3022";
+  };
+
+  checkInputs = [ markdown ];
+
+  meta = {
+    description = "Math extension for Python-Markdown";
+    homepage = https://github.com/mitya57/python-markdown-math;
+    license = lib.licenses.bsd;
+    maintainers = with lib.maintainers; [ klntsky ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 18755f7db7a6..9155c7ed4f57 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5189,6 +5189,8 @@ in
 
   redsocks = callPackage ../tools/networking/redsocks { };
 
+  retext = callPackage ../applications/editors/retext { };
+
   richgo = callPackage ../development/tools/richgo {  };
 
   rst2html5 = callPackage ../tools/text/rst2html5 { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index e2b9c35b5323..f13b443bc975 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -3123,6 +3123,8 @@ in {
 
   marisa-trie = callPackage ../development/python-modules/marisa-trie { };
 
+  Markups = callPackage ../development/python-modules/Markups { };
+
   markupsafe = callPackage ../development/python-modules/markupsafe { };
 
   marshmallow = callPackage ../development/python-modules/marshmallow { };
@@ -3959,6 +3961,8 @@ in {
 
   pysvn = callPackage ../development/python-modules/pysvn { };
 
+  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
+
   python-ptrace = callPackage ../development/python-modules/python-ptrace { };
 
   python-wifi = callPackage ../development/python-modules/python-wifi { };