diff options
| author | WriterV2 <primary-v2@protonmail.com> | 2026-04-03 15:50:13 +0200 |
|---|---|---|
| committer | WriterV2 <primary-v2@protonmail.com> | 2026-04-03 15:50:13 +0200 |
| commit | 6f9b52954da265066edfca19464d1ef56e29cb53 (patch) | |
| tree | b8f1caf9198df64abcd686e64b1c260d87a38241 /src/page.rs | |
| parent | c40fb1213ca852df4ec138a84275e277e7f7614b (diff) | |
Add html minifier + refactor file writing
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(()) + } } |
