Timothy DeHerrera 45448cc443 feat: normalize config context and template API
Add FeedConfig and SitemapConfig structs to config.rs
with enabled: bool (default true) for opt-out control.

Refactor ConfigContext: flat nested_nav bool replaced
with nested nav: NavContext { nested, toc } to mirror
site.toml [nav] table structure.

Remove standalone base_url template variable; use
config.base_url as single source of truth with
trailing-slash trimming in ConfigContext::from().

Add section template fallback: try section/<type>.html,
fall back to section/default.html for unknown types.

Delete section/features.html (duplicate of default.html)
and homepage.html (dead code, never referenced).

Update base.html for new variable names.
2026-02-14 07:09:05 -07:00
2026-02-05 14:31:13 -07:00
2026-01-31 16:49:03 -07:00
2026-02-05 23:48:08 -07:00
2022-11-01 15:18:00 -06:00
2026-01-31 21:50:14 -07:00
2026-02-01 10:10:40 -07:00

sukr logo

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 -c flag.

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

Description
No description provided
Readme MIT 14 MiB
Languages
Rust 68.7%
Scheme 19.1%
CSS 11.7%
Nix 0.5%