aboutsummaryrefslogtreecommitdiff
path: root/src/modules/blog/module.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/blog/module.rs')
-rw-r--r--src/modules/blog/module.rs23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/modules/blog/module.rs b/src/modules/blog/module.rs
index bfab002..71b3a46 100644
--- a/src/modules/blog/module.rs
+++ b/src/modules/blog/module.rs
@@ -1,4 +1,5 @@
use {
+ super::post::Post,
crate::{
modules::blog::config::Blog,
response::success,
@@ -10,9 +11,13 @@ use {
collections::HashMap,
fs::{self, read_dir},
io::Read,
+ sync::{LazyLock, Mutex},
},
};
+pub static POSTS: LazyLock<Mutex<Vec<Post>>> =
+ LazyLock::new(|| Mutex::new(Vec::new()));
+
#[allow(clippy::too_many_lines)]
pub fn module(router: &mut windmark::router::Router) {
let paths = read_dir("content/blogs").unwrap();
@@ -239,6 +244,7 @@ pub fn module(router: &mut windmark::router::Router) {
.unwrap_or_else(|()| (String::new(), String::new()));
let fixed_blog_name = fixed_blog_name_clone_2.clone();
let mut real_title = "Unknown";
+ let mut created = "";
xml.add_item(&{
let mut builder = XmlItem::builder();
@@ -270,6 +276,8 @@ pub fn module(router: &mut windmark::router::Router) {
if let Some(date) = post.created() {
builder.add_field("pubDate", date);
+
+ created = date;
}
}
}
@@ -280,13 +288,20 @@ pub fn module(router: &mut windmark::router::Router) {
builder
});
+ let link = format!("/blog/{}/{}", fixed_blog_name, title.to_lowercase());
+ let title = format!("{name}, {real_title}");
+
+ (*POSTS.lock().unwrap()).push(Post::new(
+ title.clone(),
+ link.clone(),
+ created.to_string(),
+ ));
track_mount(
router,
- &format!("/blog/{}/{}", fixed_blog_name, title.to_lowercase()),
+ &link,
&format!(
- "{}, {} ― {}",
- name,
- real_title,
+ "{} ― {}",
+ title,
if header.1.is_empty() {
"An entry to one of Fuwn's blogs".to_string()
} else {