Add to the archive

One content entry. One diagram component.

Hypotenuse has no submission form and no database — it's a static site built from plain files. Adding a proof means opening a pull request with two things: a content entry describing the proof's steps, and a diagram component that knows how to light up when each step is hovered.

  1. 1. Write the content entry

    Add a Markdown file to src/content/proofs/. Its frontmatter carries the title, attribution, category, year, difficulty tier, the proposition statement, and an ordered list of steps. Each step is { text, highlights } — highlights is a list of ids naming the parts of the diagram that step should light up. The schema is enforced by Zod in src/content.config.ts, so a malformed entry fails the build rather than shipping broken.

  2. 2. Build the diagram

    Add an Astro component to src/components/figures/ that renders an SVG figure inside <FigurePanel>. Every part a step might reference needs a matching data-figure-id attribute and a data-kind of fill or line, so the shared highlight script (in StepList.astro) can shade it or thicken its stroke on hover and keyboard focus. Many proofs reuse the three-squares-on-a-right-triangle motif — call rightTriangleLayout() from src/lib/geometry.ts and drop the result into <SquaresFigure> rather than recomputing the points by hand.

  3. 3. Register the diagram

    Add the diagram's key to DIAGRAM_KEYS in src/content.config.ts and point to your new component in the FIGURES map in src/components/figures/index.ts. Set your content entry's diagram field to that key.

Two ground rules: write the exposition in your own words — no lifting text or diagrams from other proof collections — and keep the math honest. If you're not sure a dissection actually closes, a quick script that checks the areas numerically is worth more than a confident guess.

If the archive was useful to you