From f00159f53b3774601500ec65345791311ff6efa1 Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Tue, 30 Jan 2024 16:16:05 +0000 Subject: migrate to poem and askama --- src/templates.rs | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/templates.rs (limited to 'src/templates.rs') diff --git a/src/templates.rs b/src/templates.rs new file mode 100644 index 0000000..861930f --- /dev/null +++ b/src/templates.rs @@ -0,0 +1,55 @@ +use std::collections::HashSet; + +use askama::Template; +use poem::http::StatusCode; +use rand::{thread_rng, Rng}; + +use crate::posts::Post; +use crate::{blog, scrobbles::NowPlayingData}; + +mod filters { + pub fn mytruncate(s: impl std::fmt::Display, length: usize) -> ::askama::Result { + let mut s = s.to_string(); + s.truncate(length); + Ok(s) + } +} + +#[derive(Template)] +#[template(path = "base.html")] +struct Base; + +#[derive(Template)] +#[template(path = "home.html")] +pub struct Home { + pub is_live: bool, + pub listenbrainz: NowPlayingData, + pub blogposts: Vec, +} + +#[derive(Template)] +#[template(path = "blogpost.html")] +pub struct Blogpost { + pub blogpost: blog::Blogpost, + pub filter_tags: HashSet, +} + +// filtertags, blogpost-panel +#[derive(Template)] +#[template(path = "blog.html")] +pub struct Blog { + pub blogposts: Vec, + pub tags: Vec, + pub filter_tags: HashSet, +} + +#[derive(Template)] +#[template(path = "contact.html")] +pub struct Contact; + +#[derive(Template)] +#[template(path = "error.html")] +pub struct Error { + pub status: StatusCode, + pub message: String, +} -- cgit