diff options
| author | Xe Iaso <me@christine.website> | 2022-11-25 19:01:10 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-25 19:01:10 -0500 |
| commit | cc933b31fd23bb06e95bf41f848a1c99353d44ae (patch) | |
| tree | af8288dbd4db2ad886d6b326bffb1c9d5b568de3 /src/handlers/gallery.rs | |
| parent | 551e0384c923ff3ee98cfddf7e3eb42c6dbb2941 (diff) | |
| download | xesite-cc933b31fd23bb06e95bf41f848a1c99353d44ae.tar.xz xesite-cc933b31fd23bb06e95bf41f848a1c99353d44ae.zip | |
Start version 3 (#573)
* Start version 3
* Change version to 3.0.0 in Cargo.toml
* Add metadata for series
* Change types for signal boosts
* Add start of LaTeX resume generation at Nix time
* Add start of proper author tagging for posts in JSONFeed and ldjson
* Convert templates to use Maud
* Add start of dynamic resume generation from dhall
* Make patrons page embed thumbnails
TODO:
* [ ] Remove the rest of the old templates
* [ ] Bring in Xeact for the share on mastodon button
* [ ] Site update post
Signed-off-by: Xe <me@christine.website>
* fix nix builds
Signed-off-by: Xe Iaso <me@christine.website>
* fix dhall build
Signed-off-by: Xe Iaso <me@christine.website>
* fix non-flakes build
Signed-off-by: Xe Iaso <me@christine.website>
* make new mastodon share button
Signed-off-by: Xe Iaso <me@christine.website>
* remove the rest of the ructe templates that I can remove
Signed-off-by: Xe Iaso <me@christine.website>
* refactor blogposts to its own file
Signed-off-by: Xe Iaso <me@christine.website>
* move resume to be generated by nix
Signed-off-by: Xe Iaso <me@christine.website>
* write article
Signed-off-by: Xe Iaso <me@christine.website>
* blog/site-update-v3: hero image
Signed-off-by: Xe Iaso <me@christine.website>
* add site update series tag to site updates
Signed-off-by: Xe Iaso <me@christine.website>
Signed-off-by: Xe <me@christine.website>
Signed-off-by: Xe Iaso <me@christine.website>
Diffstat (limited to 'src/handlers/gallery.rs')
| -rw-r--r-- | src/handlers/gallery.rs | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/handlers/gallery.rs b/src/handlers/gallery.rs index ae6c411..25c8dfa 100644 --- a/src/handlers/gallery.rs +++ b/src/handlers/gallery.rs @@ -1,10 +1,8 @@ -use super::{Error::*, Result}; -use crate::{app::State, post::Post, templates}; -use axum::{ - extract::{Extension, Path}, - response::Html, -}; +use crate::{app::State, post::Post, tmpl}; +use axum::extract::{Extension, Path}; +use http::StatusCode; use lazy_static::lazy_static; +use maud::Markup; use prometheus::{opts, register_int_counter_vec, IntCounterVec}; use std::sync::Arc; use tracing::instrument; @@ -18,36 +16,32 @@ lazy_static! { } #[instrument(skip(state))] -pub async fn index(Extension(state): Extension<Arc<State>>) -> Result { +pub async fn index(Extension(state): Extension<Arc<State>>) -> Markup { let state = state.clone(); - let mut result: Vec<u8> = vec![]; - templates::galleryindex_html(&mut result, state.gallery.clone())?; - Ok(Html(result)) + tmpl::gallery_index(&state.gallery) } #[instrument(skip(state))] pub async fn post_view( Path(name): Path<String>, Extension(state): Extension<Arc<State>>, -) -> Result { +) -> (StatusCode, Markup) { let mut want: Option<Post> = None; + let link = format!("gallery/{}", name); for post in &state.gallery { - if post.link == format!("gallery/{}", name) { + if post.link == link { want = Some(post.clone()); } } match want { - None => Err(PostNotFound(name)), + None => (StatusCode::NOT_FOUND, tmpl::not_found(link)), Some(post) => { HIT_COUNTER .with_label_values(&[name.clone().as_str()]) .inc(); - let body = templates::Html(post.body_html.clone()); - let mut result: Vec<u8> = vec![]; - templates::gallerypost_html(&mut result, post, body)?; - Ok(Html(result)) + (StatusCode::OK, tmpl::blog::gallery(&post)) } } } |
