exlusion function

This commit is contained in:
Mylloon 2024-11-09 17:29:59 +01:00
parent 77970da8b3
commit 754e717a58
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
2 changed files with 17 additions and 15 deletions

View file

@ -9,8 +9,8 @@ use crate::{
template::{InfosPage, NavBar}, template::{InfosPage, NavBar},
utils::{ utils::{
markdown::{File, TypeFileMetadata}, markdown::{File, TypeFileMetadata},
routes::cours::get_filetree,
misc::{make_kw, read_file, Html}, misc::{make_kw, read_file, Html},
routes::cours::{excluded, get_filetree},
}, },
}; };
@ -49,13 +49,7 @@ fn get_content(
let filename = path.q.as_ref().map_or("index.md", |q| q); let filename = path.q.as_ref().map_or("index.md", |q| q);
// Exclusion checks // Exclusion checks
if exclusion_list if excluded(filename, exclusion_list, exclusion_patterns) {
.iter()
.any(|excluded_term| filename.contains(excluded_term.as_str()))
{
return None;
}
if exclusion_patterns.iter().any(|re| re.is_match(filename)) {
return None; return None;
} }

View file

@ -23,13 +23,7 @@ pub fn get_filetree(
let entry_name = entry_path.file_name()?.to_string_lossy().to_string(); let entry_name = entry_path.file_name()?.to_string_lossy().to_string();
// Exclusion checks // Exclusion checks
if exclusion_list if excluded(&entry_name, exclusion_list, exclusion_patterns) {
.iter()
.any(|excluded_term| entry_name.contains(excluded_term.as_str()))
{
return None;
}
if exclusion_patterns.iter().any(|re| re.is_match(&entry_name)) {
return None; return None;
} }
@ -65,3 +59,17 @@ pub fn get_filetree(
children, children,
} }
} }
pub fn excluded(element: &str, exclusion_list: &[String], exclusion_patterns: &[Regex]) -> bool {
if exclusion_list
.iter()
.any(|excluded_term| element.contains(excluded_term))
{
return true;
}
if exclusion_patterns.iter().any(|re| re.is_match(element)) {
return true;
}
false
}