diff options
| author | WriterV2 <primary-v2@protonmail.com> | 2026-05-11 00:16:43 +0200 |
|---|---|---|
| committer | WriterV2 <primary-v2@protonmail.com> | 2026-05-11 00:16:43 +0200 |
| commit | fa0f57d719dee5f3a34a03f660e9db0084e03f74 (patch) | |
| tree | a92e212ecd1e705b2f241b3632583d660530c55f /src/page.rs | |
| parent | 5a819e715b6ae9e81417b38c7147bd7cd0999350 (diff) | |
Add home page
Diffstat (limited to 'src/page.rs')
| -rw-r--r-- | src/page.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/page.rs b/src/page.rs index ed2e0a5..6f3331f 100644 --- a/src/page.rs +++ b/src/page.rs @@ -3,7 +3,7 @@ use maud::{html, Markup, DOCTYPE}; use minify_html::{minify, Cfg}; pub trait Page: Sized { - fn render_content(self) -> Markup; + fn render_content(&self) -> Markup; fn page_title() -> String; fn render_head() -> Markup { html!( @@ -83,6 +83,8 @@ pub trait Page: Sized { } } + + """ ) } @@ -100,19 +102,22 @@ pub trait Page: Sized { ) } - fn render_page(self) -> Markup { + fn render_page(&self) -> Markup { html!((Self::render_head())(Self::style())( Self::render_navigation() )(Self::render_content(self))) } - fn write_page(mut self) -> Result<()> { + fn write_page(&mut self) -> Result<()> { self.prepare_content()?; 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()); + let html_path = format!( + "dist/{}.html", + Self::alternative_htmlfilename().unwrap_or(Self::page_title().to_lowercase()) + ); std::fs::write(&html_path, minified_html) .with_context(|| format!("Failed to write {}", html_path))?; @@ -123,4 +128,9 @@ pub trait Page: Sized { fn prepare_content(&mut self) -> Result<()> { Ok(()) } + + // without ".html" + fn alternative_htmlfilename() -> Option<String> { + None + } } |
