1use std::{
2 fs::{self},
3 path::{Path, PathBuf},
4};
5
6pub fn get_markdowns(target_path: &str) -> Vec<PathBuf> {
7 let path = Path::new(target_path).to_path_buf();
8
9 if path.is_file() && is_markdown(&path) {
10 return vec![path];
11 }
12
13 fs::read_dir(target_path)
14 .map(|read_dir| {
15 read_dir
16 .flatten()
17 .filter(|entry| is_markdown(&entry.path()))
18 .map(|entry| entry.path())
19 .collect()
20 })
21 .unwrap_or_else(|_| Vec::new())
22}
23
24pub fn is_markdown(path: &PathBuf) -> bool {
25 path.extension()
26 .map(|ext| ext == "md" || ext == "markdown")
27 .unwrap_or(false)
28}