summaryrefslogtreecommitdiff
path: root/src/page.rs
diff options
context:
space:
mode:
authorWriterV2 <primary-v2@protonmail.com>2026-05-11 00:16:43 +0200
committerWriterV2 <primary-v2@protonmail.com>2026-05-11 00:16:43 +0200
commitfa0f57d719dee5f3a34a03f660e9db0084e03f74 (patch)
treea92e212ecd1e705b2f241b3632583d660530c55f /src/page.rs
parent5a819e715b6ae9e81417b38c7147bd7cd0999350 (diff)
Add home page
Diffstat (limited to 'src/page.rs')
-rw-r--r--src/page.rs18
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
+ }
}