A static site for publishing interactive DSA notes. Anyone can browse the index; each note is a self-contained HTML page.
Notes use folder URLs, not filenames. A page lives at notes/<slug>/index.html and is opened as /notes/<slug>/.
From the repo root:
python3 -m http.server 8080Then visit http://localhost:8080. Example note: http://localhost:8080/notes/array-techniques/.
Opening index.html as a file:// URL can break relative folder links; use the local server.
- Push this repo to GitHub.
- Repo Settings → Pages.
- Source: Deploy from a branch.
- Branch:
main(ormaster), folder:/ (root). - Save. The site will be at
https://<user>.github.io/<repo>/.
No build step. .nojekyll is included so GitHub does not run Jekyll on these files.
Visitors never see this on the site. To publish a new masterclass:
-
Create a folder named with a clean slug, then copy the template into it:
mkdir notes/graphs-bfs-dfs cp notes/TEMPLATE.html notes/graphs-bfs-dfs/index.html
The public URL will be
/notes/graphs-bfs-dfs/. -
Write the page. Keep the ← DsaVault link as
../../(two levels up fromnotes/<slug>/index.html). -
Register it in
assets/catalog.jsby appending an object.pathmust match the folder name:
{
id: "graphs-bfs-dfs",
path: "graphs-bfs-dfs",
title: "Graphs: BFS & DFS",
summary: "One or two sentences visitors will see on the index.",
tags: ["graphs", "bfs", "dfs"],
features: ["Visualizer", "Quiz"],
badge: "Masterclass",
date: "2026-08-21",
accent: "#4f46e5",
}- Commit and push. The index gallery and list pick it up from the catalog.
| Path | Role |
|---|---|
index.html |
Public gallery / list (/) |
assets/catalog.js |
Registry of published notes |
notes/<slug>/index.html |
A note, served as /notes/<slug>/ |
notes/TEMPLATE.html |
Starter page — copy into a new slug folder |
assets/ |
Hub CSS and JS |