feat: allow subdirs in posts
directory #86
3 changed files with 9 additions and 10 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -1095,6 +1095,7 @@ dependencies = [
|
|||
"serde_yml",
|
||||
"toml",
|
||||
"urlencoding",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue