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

@@ -54,6 +54,29 @@ extension Item where M == ArticleMetadata {
}
}
extension Array where Element == Item<ArticleMetadata> {
func years() -> Set<String> {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy"
return reduce(into: Set()) { set, item in
let date = dateFormatter.string(from: item.getDate())
set.insert(date)
if let updatedDate = item.getUpdatedDate() {
set.insert(dateFormatter.string(from: updatedDate))
}
}
}
func uniqueTags() -> Set<String> {
reduce(into: Set()) { set, item in
for tag in item.metadata.tags {
set.insert(tag)
}
}
}
}
// NOTE: Most of these are taken from https://github.com/loopwerk/loopwerk.io
extension String {