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. 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 ofsteps. Each step is{ text, highlights }—highlightsis a list of ids naming the parts of the diagram that step should light up. The schema is enforced by Zod insrc/content.config.ts, so a malformed entry fails the build rather than shipping broken.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 matchingdata-figure-idattribute and adata-kindoffillorline, so the shared highlight script (inStepList.astro) can shade it or thicken its stroke on hover and keyboard focus. Many proofs reuse the three-squares-on-a-right-triangle motif — callrightTriangleLayout()fromsrc/lib/geometry.tsand drop the result into<SquaresFigure>rather than recomputing the points by hand.3. Register the diagram
Add the diagram's key to
DIAGRAM_KEYSinsrc/content.config.tsand point to your new component in theFIGURESmap insrc/components/figures/index.ts. Set your content entry'sdiagramfield 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.
→ See README.md in the project root for the full walkthrough.
If the archive was useful to you