laterite-web 0.9.7

Laterite CMF public web layer: static-site generation, page metadata, canonical URLs, and sitemaps
Documentation

laterite-web

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, and copies static assets. The output is a plain directory suitable for any static host or CDN.

It writes no robots.txt and no sitemap.xml. How a site wants to be crawled, and which of its URLs it advertises at what priority, are the application's decisions, not the framework's. What this crate offers is the material for them: [StaticSite::paths] reports every page written, and [StaticSite::file] writes whatever the site decides to publish.

Page templates live in the application (Askama, or any renderer that produces a String); this crate owns the file layout 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")?;

// What the site publishes about itself is its own decision.
site.file("robots.txt", "User-agent: *\nAllow: /\n")?;

Part of Laterite

This crate is part of Laterite, a content management framework for Rust. See the repository for the guide, the full crate set, and the lat command-line tool.

License

Licensed under either the MIT license or the Apache License 2.0, at your option.