Test Jupyter Notebook

6 min read Updated: November 30, 2025 Jupyter Notebook
This is a test notebook to demonstrate Jupyter notebook rendering in Jekyll with the Zer0-Mistakes theme.

Test Jupyter Notebook

This is a test notebook to demonstrate Jupyter notebook rendering in Jekyll with the Zer0-Mistakes theme.

Purpose

This notebook showcases:

  • Markdown cells with rich formatting
  • Code cells with Python execution
  • Mathematical equations using LaTeX
  • Data visualization with plots
  • Tables and structured data
%pip install numpy pandas matplotlib
Collecting numpy
  Downloading numpy-2.3.5-cp314-cp314-macosx_14_0_arm64.whl.metadata (62 kB)
  Downloading numpy-2.3.5-cp314-cp314-macosx_14_0_arm64.whl.metadata (62 kB)
Collecting pandas
Collecting pandas
  Downloading pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (91 kB)
  Downloading pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (91 kB)
Collecting matplotlib
Collecting matplotlib
  Downloading matplotlib-3.10.7-cp314-cp314-macosx_11_0_arm64.whl.metadata (11 kB)
Requirement already satisfied: python-dateutil>=2.8.2 in /Users/bamr87/github/zer0-mistakes/.venv/lib/python3.14/site-packages (from pandas) (2.9.0.post0)
  Downloading matplotlib-3.10.7-cp314-cp314-macosx_11_0_arm64.whl.metadata (11 kB)
Requirement already satisfied: python-dateutil>=2.8.2 in /Users/bamr87/github/zer0-mistakes/.venv/lib/python3.14/site-packages (from pandas) (2.9.0.post0)
Collecting pytz>=2020.1 (from pandas)
  Using cached pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting pytz>=2020.1 (from pandas)
  Using cached pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.7 (from pandas)
  Using cached tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting tzdata>=2022.7 (from pandas)
  Using cached tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting contourpy>=1.0.1 (from matplotlib)
  Downloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (5.5 kB)
Collecting cycler>=0.10 (from matplotlib)
Collecting contourpy>=1.0.1 (from matplotlib)
  Downloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (5.5 kB)
Collecting cycler>=0.10 (from matplotlib)
  Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
  Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib)
  Downloading fonttools-4.61.0-cp314-cp314-macosx_10_15_universal2.whl.metadata (113 kB)
Collecting fonttools>=4.22.0 (from matplotlib)
  Downloading fonttools-4.61.0-cp314-cp314-macosx_10_15_universal2.whl.metadata (113 kB)
Collecting kiwisolver>=1.3.1 (from matplotlib)
  Downloading kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl.metadata (6.3 kB)
Collecting kiwisolver>=1.3.1 (from matplotlib)
  Downloading kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl.metadata (6.3 kB)
Requirement already satisfied: packaging>=20.0 in /Users/bamr87/github/zer0-mistakes/.venv/lib/python3.14/site-packages (from matplotlib) (25.0)
Requirement already satisfied: packaging>=20.0 in /Users/bamr87/github/zer0-mistakes/.venv/lib/python3.14/site-packages (from matplotlib) (25.0)
Collecting pillow>=8 (from matplotlib)
  Using cached pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl.metadata (8.8 kB)
Collecting pillow>=8 (from matplotlib)
  Using cached pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl.metadata (8.8 kB)
Collecting pyparsing>=3 (from matplotlib)
  Downloading pyparsing-3.2.5-py3-none-any.whl.metadata (5.0 kB)
Collecting pyparsing>=3 (from matplotlib)
  Downloading pyparsing-3.2.5-py3-none-any.whl.metadata (5.0 kB)
Requirement already satisfied: six>=1.5 in /Users/bamr87/github/zer0-mistakes/.venv/lib/python3.14/site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)
Downloading numpy-2.3.5-cp314-cp314-macosx_14_0_arm64.whl (5.1 MB)
[?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/5.1 MB ? eta -:--:--Requirement already satisfied: six>=1.5 in /Users/bamr87/github/zer0-mistakes/.venv/lib/python3.14/site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)
Downloading numpy-2.3.5-cp314-cp314-macosx_14_0_arm64.whl (5.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.1/5.1 MB 6.6 MB/s  0:00:00 eta 0:00:01m
[?25hDownloading pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl (10.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.1/5.1 MB 6.6 MB/s  0:00:00
[?25hDownloading pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl (10.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 3.9 MB/s  0:00:02m0:00:010:01m
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 3.9 MB/s  0:00:02m0:00:01
[?25hDownloading matplotlib-3.10.7-cp314-cp314-macosx_11_0_arm64.whl (8.1 MB)
[?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/8.1 MB ? eta -:--:--Downloading matplotlib-3.10.7-cp314-cp314-macosx_11_0_arm64.whl (8.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 7.0 MB/s  0:00:01 eta 0:00:01
[?25hDownloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl (273 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 7.0 MB/s  0:00:01
[?25hDownloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl (273 kB)
Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
Downloading fonttools-4.61.0-cp314-cp314-macosx_10_15_universal2.whl (2.8 MB)
[?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/2.8 MB ? eta -:--:--Downloading fonttools-4.61.0-cp314-cp314-macosx_10_15_universal2.whl (2.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 4.3 MB/s  0:00:00 eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 4.3 MB/s  0:00:00 eta 0:00:01
[?25hDownloading kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl (64 kB)
Using cached pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl (4.7 MB)
Downloading pyparsing-3.2.5-py3-none-any.whl (113 kB)
Downloading kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl (64 kB)
Using cached pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl (4.7 MB)
Downloading pyparsing-3.2.5-py3-none-any.whl (113 kB)
Using cached pytz-2025.2-py2.py3-none-any.whl (509 kB)
Using cached tzdata-2025.2-py2.py3-none-any.whl (347 kB)
Using cached pytz-2025.2-py2.py3-none-any.whl (509 kB)
Using cached tzdata-2025.2-py2.py3-none-any.whl (347 kB)
Installing collected packages: pytz, tzdata, pyparsing, pillow, numpy, kiwisolver, fonttools, cycler, pandas, contourpy, matplotlib
Installing collected packages: pytz, tzdata, pyparsing, pillow, numpy, kiwisolver, fonttools, cycler, pandas, contourpy, matplotlib
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11/11 [matplotlib]1 [matplotlib]
Successfully installed contourpy-1.3.3 cycler-0.12.1 fonttools-4.61.0 kiwisolver-1.4.9 matplotlib-3.10.7 numpy-2.3.5 pandas-2.3.3 pillow-12.0.0 pyparsing-3.2.5 pytz-2025.2 tzdata-2025.2
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11/11 [matplotlib]1 [matplotlib]
Successfully installed contourpy-1.3.3 cycler-0.12.1 fonttools-4.61.0 kiwisolver-1.4.9 matplotlib-3.10.7 numpy-2.3.5 pandas-2.3.3 pillow-12.0.0 pyparsing-3.2.5 pytz-2025.2 tzdata-2025.2
Note: you may need to restart the kernel to use updated packages.
Note: you may need to restart the kernel to use updated packages.
# Import required libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

print("Libraries imported successfully!")
print(f"NumPy version: {np.__version__}")
print(f"Pandas version: {pd.__version__}")
Libraries imported successfully!
NumPy version: 2.3.5
Pandas version: 2.3.3

Mathematical Equations

Jupyter notebooks support LaTeX equations via MathJax:

Inline equation: $E = mc^2$

Display equation:

\[\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}\]

More complex equation:

\[f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}\]
# Generate sample data
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# Create a simple plot
plt.figure(figsize=(10, 6))
plt.plot(x, y1, label='sin(x)', linewidth=2)
plt.plot(x, y2, label='cos(x)', linewidth=2)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Trigonometric Functions')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

print("Plot generated successfully!")

png

Plot generated successfully!

Data Tables

Pandas DataFrames render as nice HTML tables:

# Create a sample DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [25, 30, 35, 28, 32],
    'City': ['New York', 'San Francisco', 'Chicago', 'Boston', 'Seattle'],
    'Score': [95, 87, 92, 88, 91]
}

df = pd.DataFrame(data)
print(f"DataFrame shape: {df.shape}")
df
DataFrame shape: (5, 4)
Name Age City Score
0 Alice 25 New York 95
1 Bob 30 San Francisco 87
2 Charlie 35 Chicago 92
3 David 28 Boston 88
4 Eve 32 Seattle 91

Code Formatting

Jupyter notebooks display code with proper syntax highlighting:

Lists and Loops

# Fibonacci sequence generator
def fibonacci(n):
    """Generate Fibonacci sequence up to n terms."""
    fib = [0, 1]
    while len(fib) < n:
        fib.append(fib[-1] + fib[-2])
    return fib

# Generate and display first 10 Fibonacci numbers
fib_sequence = fibonacci(10)
print("First 10 Fibonacci numbers:")
for i, num in enumerate(fib_sequence, 1):
    print(f"F({i}) = {num}")
First 10 Fibonacci numbers:
F(1) = 0
F(2) = 1
F(3) = 1
F(4) = 2
F(5) = 3
F(6) = 5
F(7) = 8
F(8) = 13
F(9) = 21
F(10) = 34

Conclusion

This test notebook demonstrates the key features of Jupyter notebook rendering in Jekyll:

Markdown formatting with headers, lists, and emphasis
LaTeX equations for mathematical notation
Code cells with syntax highlighting
Data visualization with matplotlib plots
Data tables with pandas DataFrames
Rich output from code execution

The notebook conversion system:

  1. Converts .ipynb files to Jekyll-compatible Markdown
  2. Extracts images to assets/images/notebooks/
  3. Adds proper front matter with metadata
  4. Maintains code cell formatting and outputs
  5. Preserves mathematical equations for MathJax rendering

Next Steps:

  • Add more complex visualizations
  • Include interactive widgets (note: will be static in Jekyll)
  • Test with larger datasets
  • Verify GitHub Pages compatibility