I've made a custom nbconvert template and want it to be accessible from any folder where I launch nbconvert
utility. Where should I put my template?
I couldn't find anything in official docs. I have already tried usual places for jupyter configs, like /usr/share/jupyter
, ~/.local/share/jupyter
, ~/.jupyter
, to no avail.
The only place I've found so far is the folder where python package lives:
$ pip show nbconvert | grep Location | cut -d" " -f2
/usr/lib/python3.6/site-packages
If I create nbconvert/templates/html
directory there and put my template in it, nbconvert --to html --template <my_template_name> ...
works fine. But this is an ugly hack which I'll need to re-do every time I update nbconvert.
Seems that I can provide nbconvert with environment variable, but I would prefer to avoid this option.
You need to tell nbconvert
to look for your template by creating an jupyter_nbconvert_config.py
file and storing it in ~/.jupyter
.
I use this for LaTeX--here's what my file looks like:
import os
c = get_config()
c.LatexExporter.template_path = ['.', os.path.expanduser('~/.jupyter/templates')]
c.LatexExporter.template_file = 'custom_latex.tplx'
Assuming you template extends an existing one, you need to include '.'
when setting template_path
so it knows where to look for the standard templates.
From the docs.
The recommended place to save custom templates, so that they are globally accessible to nbconvert, is your jupyter data directories:
share/jupyter
Alternately
from jupyter_core.paths import jupyter_path
print(jupyter_path('nbconvert','templates'))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With