Timothy DeHerrera 96aa60d9e4 refactor(content): add SiteManifest for unified content discovery
Introduce SiteManifest struct that aggregates all site content from a
single discovery pass:

- homepage: content/_index.md
- sections: directories with _index.md
- pages: top-level standalone .md files
- posts: blog section items (sorted by date for feed)
- nav: navigation menu items

Add discover_pages() helper and 5 unit tests covering homepage,
sections, pages, posts, and nav discovery.

Not yet integrated into main.rs pipeline.
2026-01-31 22:08:49 -07:00
2026-01-31 16:48:07 -07:00
2026-01-31 19:16:31 -07:00
2026-01-31 16:49:03 -07:00
2022-11-01 15:18:00 -06:00
2026-01-31 21:50:14 -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 unnecessary JavaScript, just clean output.

Features

  • Build-time rendering — Syntax highlighting via Tree-sitter, no client JS
  • Tera templates — Runtime customizable, no recompilation needed
  • Convention over configuration — Add sections by creating directories
  • Monorepo support — Multiple sites via -c flag

Quick Start

# Build
cargo build --release

# Run (uses ./site.toml)
sukr

# Custom config (monorepo)
sukr -c sites/blog/site.toml

# Help
sukr --help

Configuration

Create site.toml:

title    = "My Site"
author   = "Your Name"
base_url = "https://example.com"

[paths]  # All optional
content   = "content"    # default
output    = "public"     # default
static    = "static"     # default
templates = "templates"  # default

Content Structure

content/
├── _index.md          # Homepage
├── about.md           # Standalone page → /about.html
└── blog/
    ├── _index.md      # Section index → /blog/index.html
    └── my-post.md     # Post → /blog/my-post.html

License

MIT

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