typst
sublimated renders .typ files as multi-page documents. push via git, view the rendered pages on the web.
- documents compile to PDF + SVG pages on push — instant viewing, no client-side rendering
- text is selectable and copyable (font-aware text overlay on SVG pages)
- heading anchors for deep linking (e.g.
docs/typst/demo/basics.typ#introduction) - multi-file projects work —
#import,#include, and#imageresolve relative paths - block-level structure extracted for comments, diffs, and semantic analysis
- edit mode uses CodeMirror (same as .ts, .py, etc)
demos
one file per feature area — push them to see them rendered:
- basics — headings, paragraphs, emphasis, lists
- math — equations, symbols, matrices, aligned expressions
- code — code blocks, inline code, syntax highlighting
- tables — tables with headers, alignment, styling
- figures — figures with captions, placement, numbering
- layout — page setup, columns, spacing, breaks
- styling — custom fonts, colors, show rules, set rules
- functions — variables, functions, conditionals, loops
- bibliography — citations and bibliography
- article — a complete article combining all features
how it works
- push a
.typfile via git (or save via edit mode) - sublimated sends it to the typst compiler (sbl-typst, based on typst v0.13)
- three outputs are generated and stored in CAS:
- PDF — downloadable, printable
- SVG pages — one SVG per page for the web viewer
- manifest — semantic structure (headings, figures, equations, text runs)
- the web viewer displays SVG pages with a transparent text layer for selection
- heading anchors enable deep linking into the document
multi-file projects
typst documents can import other files. sublimated clones the full folder context before compiling, so relative imports work:
#import "utils.typ": template
#import "data.typ": results
#show: template
#include "chapters/intro.typ"
push your entire project folder — all imports resolve automatically.
embedding in markdown
use content block transclusion to embed a rendered .typ document in markdown:
/path/to/document.typ
the rendered pages appear inline.