diff options
Diffstat (limited to 'src/page.rs')
| -rw-r--r-- | src/page.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/page.rs b/src/page.rs index 6d788f3..747f243 100644 --- a/src/page.rs +++ b/src/page.rs @@ -1,4 +1,6 @@ +use anyhow::{Context, Result}; use maud::{html, Markup, DOCTYPE}; +use minify_html::{minify, Cfg}; pub trait Page: Sized { fn render_content(self) -> Markup; @@ -107,4 +109,16 @@ pub trait Page: Sized { Self::render_navigation() )(Self::render_content(self))) } + + fn write_page(self) -> Result<()> { + let page_html = self.render_page().into_string(); + let mut cfg = Cfg::new(); + cfg.minify_css = true; + let minified_html = minify(page_html.as_bytes(), &cfg); + let html_path = format!("dist/{}.html", Self::page_title().to_lowercase()); + + std::fs::write(&html_path, minified_html) + .with_context(|| format!("Failed to write {}", html_path))?; + Ok(()) + } } |
