38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
use maud::html;
|
|
use reqwest::StatusCode;
|
|
use servable::{HtmlPage, PageMetadata};
|
|
use service_assets::assets::{CSS_FIRA, CSS_FONTAWESOME};
|
|
use std::sync::LazyLock;
|
|
|
|
mod index;
|
|
pub use index::INDEX;
|
|
|
|
use crate::{ASSET_PREFIX, PILE_PREFIX, routes::CSS_PILE};
|
|
|
|
pub static NOT_FOUND: LazyLock<HtmlPage> = LazyLock::new(|| {
|
|
HtmlPage::default()
|
|
.with_style_linked(CSS_PILE.route_at(PILE_PREFIX))
|
|
.with_style_linked(CSS_FIRA.route_at(ASSET_PREFIX))
|
|
.with_style_linked(CSS_FONTAWESOME.route_at(ASSET_PREFIX))
|
|
.with_meta(PageMetadata {
|
|
title: "Page not found".into(),
|
|
author: None,
|
|
description: None,
|
|
image: None,
|
|
})
|
|
.with_render(move |_page, _ctx| {
|
|
Box::pin(async {
|
|
html! {
|
|
div class="wrapper" {
|
|
div style="display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh" {
|
|
p style="font-weight:bold;font-size:50pt;margin:0;" { "404" }
|
|
p style="font-size:13pt;margin:0;color:var(--grey);" { "(page not found)" }
|
|
a style="font-size:12pt;margin:10pt;padding:5px;" href="/" {"<- Back to site"}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
.with_code(StatusCode::NOT_FOUND)
|
|
});
|