Skip to main content

Crate laterite_web

Crate laterite_web 

Source
Expand description

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};

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()?;

Structs§

Meta
Page metadata rendered into a document’s <head>: the title, description, optional canonical URL, and optional social-share image. Meta::head_tags renders the standard <title>, <meta>, and Open Graph tags so every page is described and shareable the same way.
StaticSite
A static site being assembled into an output directory. Pages are written as index.html under a directory per path (so URLs are clean and extensionless), static assets are copied verbatim, and StaticSite::finish writes a sitemap.xml and robots.txt covering every page added.