From a2edf2295427512a9d9c3f41d8a9531d01cfecfb Mon Sep 17 00:00:00 2001 From: guus <_@guusw.nl> Date: Sat, 25 Oct 2025 21:28:24 +0800 Subject: [PATCH] Add image support --- posts/a-new-post.md | 4 +++- src/main.rs | 21 +++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/posts/a-new-post.md b/posts/a-new-post.md index eb52f41..3b3ff84 100644 --- a/posts/a-new-post.md +++ b/posts/a-new-post.md @@ -8,4 +8,6 @@ This is a sub-heading. ## Image -![A picture of a cat](./a-new-post/photo-1608848461950-0fe51dfc41cb.jpg) +drawing + + diff --git a/src/main.rs b/src/main.rs index 37239b0..a8a7122 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ +mod git_tracker; mod post_manager; mod template_engine; -mod git_tracker; use axum::{ extract::{Path, State}, @@ -28,11 +28,14 @@ async fn main() { post_manager: post_manager.clone(), }; + let p_router = Router::new() + .route("/:post_name", get(post_handler)) + .fallback_service(ServeDir::new("posts")); + let app = Router::new() .route("/", get(index_handler)) - .nest_service("/posts", ServeDir::new("posts")) .route("/:page", get(all_handler)) - .route("/p/:post_name", get(post_handler)) + .nest("/p", p_router) .with_state(app_state); let listener = tokio::net::TcpListener::bind("127.0.0.1:3000") @@ -67,11 +70,11 @@ async fn post_handler( State(state): State, Path(post_name): Path, ) -> impl IntoResponse { - let manager = state.post_manager.read().await; - - if post_name.contains("..") || post_name.contains("/") { + if post_name.contains("..") { return (StatusCode::NOT_FOUND, "Invalid path").into_response(); } + + let manager = state.post_manager.read().await; match manager.get_post(&post_name) { Some(_post) => { drop(manager); @@ -84,10 +87,8 @@ async fn post_handler( } } -async fn render_template( - template_name: &str, - state: &AppState, -) -> Result { + +async fn render_template(template_name: &str, state: &AppState) -> Result { let template_path = format!("templates/{}", template_name); let template_content = std::fs::read_to_string(&template_path) .map_err(|e| format!("Failed to read template: {}", e))?;