This Pelican plugin provides a Jupyter Notebook (i.e. *.ipynb
) reader.
The plugin intends to allow users to simply drop Jupyter notebooks in their
Pelican content directory and have the notebooks rendered (beautifully) in a Pelican
static website.
This plugin can be installed via:
pip install pelican-jupyter-reader
- Add the plugin to
pelicanconf.py
:
# ...
from pelican.plugins import pelican_jupyter_reader
PLUGINS = [pelican_jupyter_reader]
# ...
- Provide Pelican post
metadata as
a top-level object with key
pelican
in the Jupyter notebook metadata:
{
"pelican": {
"date": "2020-04-10",
"title": "this is a title",
"tags": "thats, awesome",
"category": "yeah",
"slug": "my-super-post",
"authors": "Alexis Metaireau, Conan Doyle",
"summary": "Short version for index and feeds"
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
//...the rest of the notebook JSON follows.
- Drop your Jupyter notebook in the Pelican content directory, build your site, and deploy! 🚀
The demo/
directory has a simple post with corresponding configuration in
pelicanconf.py
. The demo site is deployed
here.
The Jupyter nbconvert configuration for
preprocessors
and the
HTMLExporter
are exposed in your Pelican config, pelicanconf.py
. This
means you can manipulate notebooks with utilities provided by nbconvert
.
For example, to use the basic
template for the HTMLExporter
, you could add
the following to your pelicanconf.py
:
from traitlets.config import Config
NBCONVERT_CONFIG = Config()
NBCONVERT_CONFIG.HTMLExporter.template = 'basic'
To strip empty cells from the notebook before publishing, you might add this
option to pelicanconf.py
:
# ...
NBCONVERT_CONFIG.RegexRemovePreprocessor.patterns = ['\\s*\\Z']
Other nbconvert
configuration options can be found
here.