Embed Jupyter Notebooks in Jekyll
It is possible to embed Jupyter notebooks into a post.
Step 1: Create a js script file in assets/js/
containing the following
function.
function resizeIframe(obj) {
obj.style.height = obj.contentWindow.document.documentElement.scrollHeight + 50 + 'px';
}
Step 2: Add the script file to the head_scripts
array in _config.yml
.
head_scripts:
- /assets/js/notebook-script.js
Step 3: Place the jupyter notebooks (‘.ipynb’ files) into a notebooks directory in your sites project directory.
your-project
└── _ipynb/
├── sample-dataframe.ipynb
├── sample-plot.ipynb
Step 4: Create a notebooks directory in the assets directory. The converted notebook html files are stored in this notebooks directory.
your-project
└── assets/
└── notebooks/
Step 5: Execute and convert the jupyter notebook to html.
jupyter nbconvert sample-plot.ipynb --execute --to html --output-dir=../assets/notebooks/
Step 6: Add the following line where you want to the embed the notebook.
<iframe src="/assets/notebooks/sample-dataframe.html" frameBorder="0"
width="100%" height="100%" scrolling="no" onload="resizeIframe(this)"></iframe>
Examples
Below are some examples of embedded notebooks.
Embedded Dataframe
An example of an embedded pandas dataframe.
Embedded Plot
An example of an embedded matplotlib plot.
References
https://cduvallet.github.io/posts/2018/03/ipython-notebooks-jekyll https://gist.github.com/dkmehrmann/3fd9e8b89a6e442fdc8787a4c1dbf4f2/ https://salihmarangoz.github.io/How-to-Embed-Jupyter-Notebooks-to-Jekyll/
Leave a comment