pub struct StaticSite { /* private fields */ }Expand description
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),
and static assets are copied verbatim.
Implementations§
Source§impl StaticSite
impl StaticSite
Sourcepub fn new(
out_dir: impl Into<PathBuf>,
base_url: impl Into<String>,
) -> Result<Self>
pub fn new( out_dir: impl Into<PathBuf>, base_url: impl Into<String>, ) -> Result<Self>
Prepares an output directory and records the site’s base URL, for example
https://acme.example. The base URL is what Meta::canonical and any
absolute link the site builds are formed against.
Sourcepub fn page(&mut self, path: &str, html: &str) -> Result<&mut Self>
pub fn page(&mut self, path: &str, html: &str) -> Result<&mut Self>
Writes a page’s rendered html for the URL path. The path maps to a
clean-URL file: / becomes index.html, /features/ becomes
features/index.html. The path is recorded, and paths
reports it.
Sourcepub fn assets(&self, from: impl AsRef<Path>, to: &str) -> Result<()>
pub fn assets(&self, from: impl AsRef<Path>, to: &str) -> Result<()>
Copies a directory of static assets (CSS, fonts, images) from from into
the output at to, recursively.
Sourcepub fn file(&self, path: &str, contents: &str) -> Result<()>
pub fn file(&self, path: &str, contents: &str) -> Result<()>
Writes a file verbatim at path, relative to the output root.
For the files a site decides for itself and a generator should not invent:
robots.txt, humans.txt, llms.txt, a CNAME, a verification token.
Unlike page the contents are written as given, with no
clean-URL mapping, and the path is not added to the sitemap.
The path is confined to the output directory: a leading slash is trimmed
and a .. segment is refused, so a caller cannot write outside dist.
Sourcepub fn base_url(&self) -> &str
pub fn base_url(&self) -> &str
The site’s base URL, without a trailing slash. Paired with
paths it gives the absolute URL of every page written,
which is what a sitemap is built from.
Sourcepub fn paths(&self) -> &[String]
pub fn paths(&self) -> &[String]
Every page path written so far, normalised, in the order they were added.
This is the material a sitemap is built from, without this crate deciding what the sitemap says. Which URLs a site advertises, at what priority and change frequency, is the site’s own policy.