From a473735da55a9ca8bbebba1dda0fb7764936942b Mon Sep 17 00:00:00 2001
From: Jaakko Luttinen <jaakko.luttinen@iki.fi>
Date: Fri, 19 Mar 2021 17:47:26 +0200
Subject: [PATCH] pythonPackages.nbconvert: include templates in search paths

---
 .../development/python-modules/nbconvert/default.nix | 10 ++++++++++
 .../python-modules/nbconvert/templates.patch         | 12 ++++++++++++
 2 files changed, 22 insertions(+)
 create mode 100644 pkgs/development/python-modules/nbconvert/templates.patch

diff --git a/pkgs/development/python-modules/nbconvert/default.nix b/pkgs/development/python-modules/nbconvert/default.nix
index 582a6132c25..02eda2beb19 100644
--- a/pkgs/development/python-modules/nbconvert/default.nix
+++ b/pkgs/development/python-modules/nbconvert/default.nix
@@ -30,6 +30,16 @@ buildPythonPackage rec {
     sha256 = "cbbc13a86dfbd4d1b5dee106539de0795b4db156c894c2c5dc382062bbc29002";
   };
 
+  # Add $out/share/jupyter to the list of paths that are used to search for
+  # various exporter templates
+  patches = [
+    ./templates.patch
+  ];
+
+  postPatch = ''
+    substituteAllInPlace ./nbconvert/exporters/templateexporter.py
+  '';
+
   checkInputs = [ pytestCheckHook glibcLocales ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nbconvert/templates.patch b/pkgs/development/python-modules/nbconvert/templates.patch
new file mode 100644
index 00000000000..cadaf69a7b8
--- /dev/null
+++ b/pkgs/development/python-modules/nbconvert/templates.patch
@@ -0,0 +1,12 @@
+diff --git a/nbconvert/exporters/templateexporter.py b/nbconvert/exporters/templateexporter.py
+index 0d540eb1..440f6382 100644
+--- a/nbconvert/exporters/templateexporter.py
++++ b/nbconvert/exporters/templateexporter.py
+@@ -616,6 +616,7 @@ class TemplateExporter(Exporter):
+         if DEV_MODE:
+             root_dirs.append(os.path.abspath(os.path.join(ROOT, '..', '..', 'share', 'jupyter')))
+         root_dirs.extend(jupyter_path())
++        root_dirs.append(os.path.join("@out@", "share", "jupyter"))
+         return root_dirs
+ 
+     def _init_resources(self, resources):