IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /docs/manual/basics.md). For the complete Mojo documentation index, see llms.txt.
Skip to main content
Version: 1.0.0b2
For the complete Mojo documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /docs/manual/basics.md).

Update a Mojo cheat sheet

One-page reference cards for the Mojo language, rendered from HTML sources to PDF, PNG, and SVG (light + dark). Use this skill to update an existing card or add a new one.

Where things are

  • src/body-<topic>.html — the content of one card; this is what you edit.
  • src/_head.html, src/_foot.html — shared CSS, palette, header.
  • bin/build.py — assembles a card and renders all formats. It discovers cards from the body files present; there is no card list to edit.
  • dist/ — produced files. Generated; never edit by hand.

Workflow

  1. Anchor to the reference. Every behavioral claim on a card must match the Mojo reference docs under mojo/docs/reference/, or a short program you compile to confirm it. Do not rely on memory or older syntax.

  2. One card at a time.

  3. Edit the source, never the output. Change src/body-<topic>.html.

  4. A card's title and subtitle live in two comment lines at the top of its body file:

    <!-- title: ... -->
    <!-- subtitle: ... -->
  5. Rebuild and look: python3 bin/build.py <topic>, then open dist/mojo-cheat-sheet-<topic>-light.png.

  6. Compiler-check new claims with a tiny snippet before asserting them.

  7. Discuss restructuring a card or adding a new one before doing it.

Conventions

  • Each card stands alone. No cross-references between cards.
  • One space before a trailing # comment; keep all trailing comments.
  • No em-dashes in prose.
  • Keep code lines short enough not to wrap.
  • Current Mojo syntax only: def (no fn), comptime (not alias), read/mut/out/var/ref conventions, t"..." template strings.
  • The legend on each card is generated from the colors it uses; do not maintain it by hand.

Build everything

python3 bin/build.py all rebuilds every card present and the combined PDFs. The build shrinks SVGs with svgo so they stay under the repo's 2 MB file cap.

Required tools

See README.md.