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.
Auto Trait Implementations§
impl Freeze for StaticSite
impl RefUnwindSafe for StaticSite
impl Send for StaticSite
impl Sync for StaticSite
impl Unpin for StaticSite
impl UnsafeUnpin for StaticSite
impl UnwindSafe for StaticSite
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more