Crea una página completa
use pliego_dom::{IntoView, el};
use pliego_ssg::{Head, Page};
let page = Page::lazy(
"/guide",
Head::new("Guide | My App")
.description("A complete authored page.")
.canonical("https://example.com/guide"),
["src/main.rs", "content/guide.md"],
|| el("main")
.child(el("h1").child("Guide"))
.into_view(),
);Una Page controla su ruta, Head, renderer, dependencias de fuentes y lenguaje opcional. PliegoRS emite HTML útil directamente; el routing no comienza como un shell de aplicación en el cliente.
Normalización de rutas
Las rutas limpias se publican como documentos index. /guide y /guide/ resuelven a guide/index.html. Rutas de autoría distintas que normalizan a la misma salida portable se rechazan antes del staging.
Metadata e identidad canónica
Head::new("My page")
.description("A precise description.")
.canonical("https://example.com/my-page")
.icon("/favicon.svg")
.manifest("/site.webmanifest")
.meta("robots", "index, follow")
.property_meta("og:type", "website")Páginas de error con autoría
Cada starter mantenido emite /404.html. El servidor preview devuelve ese documento con HTTP 404 para rutas desconocidas. Si falta, PliegoRS sirve un fallback de marca que explica cómo añadirlo.
site.page(Page::new(
"/404.html",
error_head("Route not found"),
not_found(),
));