Rust library to generate static websites
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: highlight current link in docs sidebar

+13 -7
+11 -5
website/src/layout/docs_sidebars.rs
··· 1 1 use maud::{Markup, html}; 2 - use maudit::{content::MarkdownHeading, route::PageContext}; 2 + use maudit::{ 3 + content::MarkdownHeading, 4 + route::{PageContext, RouteExt}, 5 + }; 3 6 4 - use crate::content::{DocsContent, DocsSection}; 7 + use crate::{ 8 + content::{DocsContent, DocsSection}, 9 + routes::{DocsPage, DocsPageParams}, 10 + }; 5 11 6 12 pub fn left_sidebar(ctx: &mut PageContext) -> Markup { 7 13 let content = ctx.content.get_source::<DocsContent>("docs"); ··· 41 47 h2.text-xl.sm:text-lg.font-bold { (section) } 42 48 ul { 43 49 @for entry in entries { 44 - @let url = &format!("/docs/{}", entry.id); 45 - @let is_current_page = url == ctx.current_path; 50 + @let url = DocsPage.url(DocsPageParams { slug: entry.id.clone() }); 51 + @let is_current_page = url == *ctx.current_path; 46 52 li { 47 53 @let base_classes = "block py-2 sm:py-1 px-4 sm:px-3 text-lg sm:text-base font-medium sm:font-normal transition-colors border-b border-borders sm:border-0"; 48 54 @let conditional_classes = if is_current_page { ··· 50 56 } else { 51 57 "text-our-black hover:text-brand-red sm:border-l-2 sm:border-l-borders sm:hover:border-l-brand-red" 52 58 }; 53 - a class=(format!("{} {}", base_classes, conditional_classes)) href=(format!("/docs/{}/", entry.id)) { 59 + a class=(format!("{} {}", base_classes, conditional_classes)) href=(url) { 54 60 (entry.data(ctx).title) 55 61 } 56 62 }
+2 -2
website/src/routes/docs.rs
··· 55 55 pub struct DocsPage; 56 56 57 57 #[derive(Params, Clone)] 58 - struct DocsPageParams { 59 - slug: String, 58 + pub struct DocsPageParams { 59 + pub slug: String, 60 60 } 61 61 62 62 impl Route<DocsPageParams> for DocsPage {