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 pathsblock-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.typthe rendered pages appear inline.