feat: Adds sidebar to articles view.
Some checks failed
CI / release (push) Failing after 2m34s

This commit is contained in:
2025-04-15 14:41:10 -04:00
parent 9159ecc834
commit 500f4746e8
6 changed files with 105 additions and 11 deletions

View File

@@ -9,13 +9,13 @@ func renderArticles(context: ItemsRenderingContext<ArticleMetadata>) -> NodeConv
let articlesPerYear = Dictionary(grouping: context.items, by: { dateFormatter.string(from: $0.date) })
let sortedByYearDescending = articlesPerYear.sorted { $0.key > $1.key }
return ArticleGrid(
articles: sortedByYearDescending,
return baseRenderArticles(
sortedByYearDescending,
canocicalURL: "/articles/",
title: "Articles",
rssLink: "",
extraHeader: "",
header: yearHeader(_:)
label: yearHeader(_:)
)
}
@@ -74,6 +74,25 @@ private func yearHeader(_ year: String) -> Node {
}
}
private func baseRenderArticles(
_ articles: [(key: String, value: [Item<ArticleMetadata>])],
canocicalURL: String,
title pageTitle: String,
rssLink: String = "",
extraHeader: NodeConvertible = Node.fragment([]),
@NodeBuilder label: @escaping (String) -> Node = { _ in Node.fragment([]) }
) -> NodeConvertible {
ArticleGrid(
articles: articles,
canocicalURL: canocicalURL,
title: pageTitle,
rssLink: rssLink,
extraHeader: extraHeader
) { key in
label(key)
}
}
private func baseRenderArticles(
_ articles: (key: String, value: [Item<ArticleMetadata>]),
canocicalURL: String,