Notes — this site

The site you are reading: a static build that turns my Notion study notes into public, searchable pages while keeping math, code, and nested pages intact.

Status
active · current site
Role
Author and maintainer of the pipeline, templates, and notes.
Stack
static-site, notion, cloudflare, technical-writing
Repository
Source code
Dates

Problem

Study notes lose value on the web when LaTeX, code indentation, nested pages, and images break, or when readers cannot tell a rough note from a checked one.

What I built

A strict Notion ingestion step normalizes each topic tree to JSON and fails on unsupported blocks. A static build renders routes, search, RSS, and sitemap for Cloudflare, joining checked-in sidecars for publication status, corrections, and stable images.

Evidence

Output
{"type":"equation","blockId":"347d3a21-bb2d-80c2-ab57-e88305c8b7ac",
 "expression":"opt[i][j-1] ≤ opt[i][j] ≤ opt[i+1][j]"}

<div class="notion-block notion-equation" data-notion-block-id="347d3a21-…"
     data-latex="opt[i][j-1] ≤ opt[i][j] ≤ opt[i+1][j]">\[opt[i][j-1] ≤ opt[i][j] ≤ opt[i+1][j]\]</div>
One real block from the Advanced Dynamic Programming note: normalized JSON in, rendered HTML out; MathJax typesets the equation in the browser.

One hard decision

Corrections and statuses live in checked-in sidecar files keyed by Notion block ids, not in the pulled JSON, so a fresh Notion pull cannot silently undo a fix.

Where it stands

125 note pages and 19 posts build from checked-in data with deterministic tests; every note shows its publication status and substantive corrections are published on the Errata page.

Limits

Most notes are unreviewed Working notes. Four images had to be redrawn because the Notion originals were no longer reachable. Page speed was measured only locally with a throttled phone profile (Home: about 0.6 s to largest paint, 47 KB transferred) and is not monitored in production.

Type to search every note and essay.