Add generate_aliases(), write_aliases(), and redirect_html() to main.rs. For each content item with aliases in frontmatter, writes a minimal HTML redirect stub with meta refresh and canonical link. Alias paths are normalized: bare paths get /index.html appended, .html extensions preserved. Add 2 tests. Test suite: 76 → 78, all passing. Phase 2 complete — all plan items checked off.
sukr
Minimal static site compiler — suckless, Rust, zero JS.
sukr transforms Markdown content into high-performance static HTML. No bloated runtimes, no client-side JavaScript, just clean output.
Why sukr?
Most static site generators punt rich content to the browser. sukr doesn't.
- Tree-sitter syntax highlighting — Proper parsing, not regex. Supports language injection (Nix shells, HTML scripts).
- Build-time math — KaTeX renders LaTeX to static HTML. No 300KB JavaScript bundle.
- Build-time diagrams — Mermaid compiles to inline SVG. Diagrams load instantly.
- Tera templates — Customize layouts without recompiling.
- Monorepo support — Multiple sites via
-cflag.
See the full feature comparison with Zola, Hugo, and Eleventy.
Quick Start
cargo build --release
sukr # Build with ./site.toml
sukr -c docs/site.toml # Custom config (monorepo)
See the Getting Started guide for installation and first-site setup, Configuration for site.toml options, and Content Organization for directory layout.
Security
sukr processes content at build time only — there is no runtime attack surface.
- Untrusted: Markdown content, frontmatter, third-party templates
- Trusted: The compiled sukr binary, Tree-sitter grammars
Raw HTML in Markdown is passed through per CommonMark spec — review content from untrusted sources before building. Templates use Tera's auto-escaping by default.
For deployment security (CSP headers, platform configs), see the Security docs.
Documentation
Full documentation at sukr.io (built with sukr).
License
MIT
