feat: allow subdirs in posts directory #86

Merged
Anri merged 4 commits from posts-subdir into main 2024-11-14 17:48:08 +01:00
3 changed files with 9 additions and 10 deletions
Showing only changes of commit 411ea64fcb - Show all commits

1
Cargo.lock generated
View file

@ -1095,6 +1095,7 @@ dependencies = [
"serde_yml",
"toml",
"urlencoding",
"walkdir",
]
[[package]]

View file

@ -32,6 +32,7 @@ mime_guess = "2.0"
urlencoding = "2.1"
regex = "1.10"
cyborgtime = "2.1.1"
walkdir = "2.5"
[lints.clippy]
pedantic = "warn"

View file

@ -12,6 +12,7 @@ use chrono::{DateTime, Datelike, Local, NaiveDateTime, Utc};
use chrono_tz::Europe;
use comrak::{parse_document, Arena};
use ramhorns::Content;
use walkdir::WalkDir;
use crate::{
config::Config,
@ -59,16 +60,12 @@ impl Hash for Post {
}
pub fn get_posts(location: &str) -> Vec<Post> {
std::fs::read_dir(location)
.map_or_else(
|_| vec![],
|res| {
res.flatten()
.filter(|f| f.path().extension().map_or(false, |ext| ext == "md"))
.collect::<Vec<std::fs::DirEntry>>()
},
)
.iter()
WalkDir::new(location)
.into_iter()
.filter_map(Result::ok)
.filter(|entry| {
entry.file_type().is_file() && entry.path().extension().is_some_and(|s| s == "md")
})
.filter_map(|f| {
let fname = f.file_name();
let filename = fname.to_string_lossy();