diff options
| author | Fuwn <[email protected]> | 2024-11-03 19:55:25 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-11-03 19:55:25 -0800 |
| commit | fe632058c09a892f23a370f33b992485ed1212f2 (patch) | |
| tree | 86225584211b305555fa1a5c9008109dea1bc206 /src/modules/blog/module.rs | |
| parent | chore(flake): pin openssl (diff) | |
| download | locus-fe632058c09a892f23a370f33b992485ed1212f2.tar.xz locus-fe632058c09a892f23a370f33b992485ed1212f2.zip | |
feat(blog): priority field
Diffstat (limited to 'src/modules/blog/module.rs')
| -rw-r--r-- | src/modules/blog/module.rs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/modules/blog/module.rs b/src/modules/blog/module.rs index e6fcd06..bfab002 100644 --- a/src/modules/blog/module.rs +++ b/src/modules/blog/module.rs @@ -80,7 +80,24 @@ pub fn module(router: &mut windmark::router::Router) { ); } - let blog_clone = blogs.clone(); + let mut blog_clone: Vec<_> = blogs + .clone() + .into_iter() + .map(|(blog, entries)| { + ( + blog, + *entries + .get("blog.json") + .and_then(|content| Blog::from_string(content).ok()) + .unwrap_or_default() + .priority(), + entries, + ) + }) + .collect(); + + blog_clone.sort_by(|a, b| b.1.cmp(&a.1)); + blog_clone.reverse(); track_mount(router, "/blog", "Fuwn's blogs", move |context| { success( @@ -89,7 +106,7 @@ pub fn module(router: &mut windmark::router::Router) { blog_clone.len(), blog_clone .iter() - .map(|(title, entries)| (title.clone(), entries.clone())) + .map(|(title, _, entries)| (title.clone(), entries.clone())) .collect::<Vec<(_, _)>>() .into_iter() .map(|(title, entries)| { |