Jupyter Notebook Component
Jupyter Notebook is a language-agnostic HTML notebook application for Project Jupyter. It allows you to create and share documents that contain live code, equations, visualizations, and narrative text.
How to use
Using a local notebook
To use the Jupyter Notebook shortcode, you need to have a Jupyter Notebook file in your project. Similar to how you would add images to the project, you can add Jupyter Notebooks to the assets folder.
- notebook.ipynb
- my-page.md
Include the Jupyter Notebook in the page using the jupyter shortcode:
---
title: My Page
math: true
---
{{< jupyter "notebook.ipynb" >}}Alternatively, you can utilize the page bundles feature of Hugo to organize the Jupyter Notebooks together with the Markdown file.
- index.md
- notebook.ipynb
---
title: My Page
math: true
---
{{< jupyter "notebook.ipynb" >}}Using a remote notebook
You can also use a remote notebook by providing the URL to the notebook file. For example, to include What is the Jupyter Notebook notebook in the page, you can use the following shortcode:
{{< jupyter "https://raw.githubusercontent.com/jupyter/notebook/main/docs/source/examples/Notebook/What%20is%20the%20Jupyter%20Notebook.ipynb" >}}Showing In/Out prompts
You can display Jupyter-style In [N]:/Out[N]: execution count prompts by using named parameters with prompts=true:
{{< jupyter src="notebook.ipynb" prompts=true >}}Note: when using
promptsor other named parameters, the notebook path must use thesrcparameter instead of a positional argument.
Example Notebook
What is the Jupyter Notebook?
The Jupyter Notebook is an interactive computing environment that enables users to author notebook documents that include:
- Live code
- Interactive widgets
- Plots
- Narrative text
- Equations
- Images
- Video
These documents provide a complete and self-contained record of a computation that can be converted to various formats and shared with others using email, version control systems (like Git/GitHub) or nbviewer.jupyter.org.
Data Visualization
Below is an example of a simple data visualization using the Seaborn library.
# Import seaborn
import seaborn as sns
# Apply the default theme
sns.set_theme()
# Load an example dataset
tips = sns.load_dataset("tips")
# Create a visualization
sns.relplot(
data=tips,
x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
)tips.head()Equations
The following is an example of a simple equation using LaTeX.
Supported Output Types
Output Types
This notebook demonstrates all supported output types and cell visibility metadata.
print("Hello from stdout")import sys
print("Warning: something happened", file=sys.stderr)1 / 0import pandas as pd
df = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Score': [95, 87]})
dffrom IPython.display import SVG
SVG('<svg width="100" height="100"><circle cx="50" cy="50" r="40" fill="steelblue"/></svg>')from IPython.display import Markdown
Markdown('**Bold text** and `inline code` from display_data')from IPython.display import Latex
Latex(r'E = mc^2')from IPython.display import JSON
JSON({'name': 'hextra', 'version': '1.0', 'features': ['search', 'dark-mode']})42 + 1Attachments and Output Metadata
The following cells test inline attachments, image dimensions from output metadata, and scrolled output state.
Inline attachment image:
# Output image dimensions come from output metadata# Output should use the scrolled output style
for i in range(20):
print(f'line {i}')Cell Visibility Metadata
The following cells test hidden and collapsed metadata. Hidden cells should not render; collapsed outputs should start closed.
# Source visible, output hidden
print('this output should be hidden')# Source visible, output collapsed by default
print('collapsed output')