From bc6ee96a479c3277713d79fc206e63929adfe224 Mon Sep 17 00:00:00 2001 From: eiiko6 Date: Thu, 26 Feb 2026 13:44:02 +0100 Subject: [PATCH] cleaned up routes --- src/main.rs | 19 ++++++++++++------- src/rendering.rs | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index d48c349..478d705 100644 --- a/src/main.rs +++ b/src/main.rs @@ -143,7 +143,7 @@ async fn main() -> anyhow::Result<()> { Ok(()) } -async fn get_summary_data(docs_dir: &PathBuf) -> Vec { +async fn get_summary_data(docs_dir: &PathBuf, is_static: bool) -> Vec { let mut pages = Vec::new(); if let Ok(mut entries) = tokio::fs::read_dir(docs_dir).await { while let Ok(Some(entry)) = entries.next_entry().await { @@ -152,21 +152,26 @@ async fn get_summary_data(docs_dir: &PathBuf) -> Vec { continue; } - let filename = entry.file_name(); - let filename_str = filename.to_str().unwrap_or(""); + let filename_str = if is_static { + entry.file_name().to_string_lossy().into_owned() + } else { + path.file_stem() + .map(|s| s.to_string_lossy().into_owned()) + .unwrap_or_else(|| entry.file_name().to_string_lossy().into_owned()) + }; let title = if let Ok(content) = tokio::fs::read_to_string(&path).await { if let Ok(config) = toml::from_str::(&content) { config.title } else { - filename_str.to_string() + filename_str.clone() } } else { - filename_str.to_string() + filename_str.clone() }; pages.push(Page { - filename: filename_str.to_string(), + filename: filename_str, title, datetime: "".to_string(), }); @@ -180,7 +185,7 @@ async fn run_build(docs_dir: PathBuf, out_dir: PathBuf, no_navigation: bool) -> tracing::info!("Building static site to: {:?}", out_dir); if !no_navigation { - let pages = get_summary_data(&docs_dir).await; + let pages = get_summary_data(&docs_dir, true).await; let static_pages: Vec = pages .into_iter() .map(|mut p| { diff --git a/src/rendering.rs b/src/rendering.rs index 1ed8866..535e3d4 100644 --- a/src/rendering.rs +++ b/src/rendering.rs @@ -202,7 +202,7 @@ pub async fn render_summary_handler(State(state): State>) -> impl if state.no_navigation { return (StatusCode::NOT_FOUND, "Disabled").into_response(); } - let pages = get_summary_data(&state.docs_dir).await; + let pages = get_summary_data(&state.docs_dir, false).await; let mut context = Context::new(); context.insert("title", "Wiki Index"); context.insert("files", &pages);