diff options
author | Martin Fischer <martin@push-f.com> | 2022-10-28 13:40:37 +0200 |
---|---|---|
committer | Martin Fischer <martin@push-f.com> | 2022-10-28 13:41:18 +0200 |
commit | 6d2b42da54335682bf5ba25277323daafca16808 (patch) | |
tree | 4cec078db09052cbf9b9a78bc9e2a036ccf4c02a /src/main.rs | |
parent | 025d2619341a6323d87c2cfa3dcf0a0f287c6636 (diff) |
improve error page rendering
Previously 404 pages did not set the viewport meta tag,
which made the links very hard to click on mobile.
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/main.rs b/src/main.rs index af00d3f..e82cfae 100644 --- a/src/main.rs +++ b/src/main.rs @@ -234,7 +234,7 @@ async fn service<C: Controller>( ); Builder::new() .content_type(mime::TEXT_HTML) - .body(render_page(&page).into()) + .body(page.render().into()) .unwrap() } }) @@ -272,21 +272,23 @@ pub struct Page { frame_src: Option<&'static str>, } -fn render_page(page: &Page) -> String { - let mut out = String::new(); - out.push_str("<!doctype html><html><head><meta charset=utf-8>"); - out.push_str(&format!("<title>{}</title>", html_escape(&page.title))); - out.push_str("<meta name=viewport content=\"width=device-width, initial-scale=1\"><style>"); - out.push_str(include_str!("static/style.css")); - out.push_str("</style></head><body><header id=header>"); - out.push_str(&page.header); - out.push_str("</header>"); - out.push_str(&page.body); - for script in &page.scripts { - out.push_str(&format!("<script>{}</script>", script)); +impl Page { + fn render(&self) -> String { + let mut out = String::new(); + out.push_str("<!doctype html><html><head><meta charset=utf-8>"); + out.push_str(&format!("<title>{}</title>", html_escape(&self.title))); + out.push_str("<meta name=viewport content=\"width=device-width, initial-scale=1\"><style>"); + out.push_str(include_str!("static/style.css")); + out.push_str("</style></head><body><header id=header>"); + out.push_str(&self.header); + out.push_str("</header>"); + out.push_str(&self.body); + for script in &self.scripts { + out.push_str(&format!("<script>{}</script>", script)); + } + out.push_str("</body></html>"); + out } - out.push_str("</body></html>"); - out } #[derive(Deserialize)] |