The Laterite public web layer.
Where laterite_admin renders the private
admin, this crate renders the public face of an application. Its first
capability is static-site generation: an application renders its pages to
HTML strings and hands them to a [StaticSite], which writes them as files,
copies static assets, and generates a sitemap.xml and robots.txt. The
output is a plain directory suitable for any static host or CDN.
Page templates live in the application (Askama, or any renderer that produces
a String); this crate owns the file layout, the sitemap, and the shared
[Meta] tags (title, description, canonical URL, Open Graph) so pages stay
consistent and shareable.
use laterite_web::{Meta, StaticSite};
# fn render_home(head: &str) -> String { String::new() }
# fn main() -> std::io::Result<()> {
let meta = Meta::new("Acme", "The Acme website.").canonical("https://acme.example/");
let home = render_home(&meta.head_tags());
let mut site = StaticSite::new("dist", "https://acme.example")?;
site.page("/", &home)?;
site.assets("static", "static")?;
site.finish()?;
# Ok(()) }