Skip to content

Commit 0005223

Browse files
committed
fix: highlight current link in docs sidebar
1 parent 3fe6c7a commit 0005223

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

website/src/layout/docs_sidebars.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
use maud::{Markup, html};
2-
use maudit::{content::MarkdownHeading, route::PageContext};
2+
use maudit::{
3+
content::MarkdownHeading,
4+
route::{PageContext, RouteExt},
5+
};
36

4-
use crate::content::{DocsContent, DocsSection};
7+
use crate::{
8+
content::{DocsContent, DocsSection},
9+
routes::{DocsPage, DocsPageParams},
10+
};
511

612
pub fn left_sidebar(ctx: &mut PageContext) -> Markup {
713
let content = ctx.content.get_source::<DocsContent>("docs");
@@ -41,16 +47,16 @@ pub fn left_sidebar(ctx: &mut PageContext) -> Markup {
4147
h2.text-xl.sm:text-lg.font-bold { (section) }
4248
ul {
4349
@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;
4652
li {
4753
@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";
4854
@let conditional_classes = if is_current_page {
4955
"text-brand-red sm:border-l-2 sm:border-l-brand-red"
5056
} else {
5157
"text-our-black hover:text-brand-red sm:border-l-2 sm:border-l-borders sm:hover:border-l-brand-red"
5258
};
53-
a class=(format!("{} {}", base_classes, conditional_classes)) href=(format!("/docs/{}/", entry.id)) {
59+
a class=(format!("{} {}", base_classes, conditional_classes)) href=(url) {
5460
(entry.data(ctx).title)
5561
}
5662
}

website/src/routes/docs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ fn render_entry(entry: &EntryInner<DocsContent>, ctx: &mut PageContext) -> Marku
5555
pub struct DocsPage;
5656

5757
#[derive(Params, Clone)]
58-
struct DocsPageParams {
59-
slug: String,
58+
pub struct DocsPageParams {
59+
pub slug: String,
6060
}
6161

6262
impl Route<DocsPageParams> for DocsPage {

0 commit comments

Comments
 (0)