Pass content_path to populate_library

This commit is contained in:
Vincent Prouillet 2022-04-27 22:27:19 +02:00
parent 84951d39e3
commit 3a0800c702
2 changed files with 5 additions and 7 deletions

View File

@ -118,7 +118,7 @@ impl Library {
/// Find out the direct subsections of each subsection if there are some /// Find out the direct subsections of each subsection if there are some
/// as well as the pages for each section /// as well as the pages for each section
pub fn populate_sections(&mut self, config: &Config) { pub fn populate_sections(&mut self, config: &Config, content_path: &Path) {
let mut add_translation = |entry: &Path, path: &Path| { let mut add_translation = |entry: &Path, path: &Path| {
if config.is_multilingual() { if config.is_multilingual() {
self.translations self.translations
@ -134,8 +134,6 @@ impl Library {
} }
}; };
let root_path =
self.sections.values().find(|s| s.is_index()).map(|s| s.file.parent.clone()).unwrap();
let mut ancestors = AHashMap::new(); let mut ancestors = AHashMap::new();
let mut subsections = AHashMap::new(); let mut subsections = AHashMap::new();
let mut sections_weight = AHashMap::new(); let mut sections_weight = AHashMap::new();
@ -161,7 +159,7 @@ impl Library {
} }
// Index section is the first ancestor of every single section // Index section is the first ancestor of every single section
let mut cur_path = root_path.clone(); let mut cur_path = content_path.to_path_buf();
let mut parents = vec![section.file.filename.clone()]; let mut parents = vec![section.file.filename.clone()];
for component in &section.file.components { for component in &section.file.components {
cur_path = cur_path.join(component); cur_path = cur_path.join(component);
@ -223,7 +221,7 @@ impl Library {
// is [index, ..., parent] so we need to reverse it first // is [index, ..., parent] so we need to reverse it first
if page.meta.template.is_none() { if page.meta.template.is_none() {
for ancestor in page.ancestors.iter().rev() { for ancestor in page.ancestors.iter().rev() {
let s = self.sections.get(&root_path.join(ancestor)).unwrap(); let s = self.sections.get(&content_path.join(ancestor)).unwrap();
if let Some(ref tpl) = s.meta.page_template { if let Some(ref tpl) = s.meta.page_template {
page.meta.template = Some(tpl.clone()); page.meta.template = Some(tpl.clone());
break; break;
@ -425,7 +423,7 @@ mod tests {
for (p, l, s) in pages.clone() { for (p, l, s) in pages.clone() {
library.insert_page(create_page(p, l, s)); library.insert_page(create_page(p, l, s));
} }
library.populate_sections(&config); library.populate_sections(&config, Path::new("content"));
assert_eq!(library.sections.len(), sections.len()); assert_eq!(library.sections.len(), sections.len());
assert_eq!(library.pages.len(), pages.len()); assert_eq!(library.pages.len(), pages.len());
let blog_section = &library.sections[&PathBuf::from("content/blog/_index.md")]; let blog_section = &library.sections[&PathBuf::from("content/blog/_index.md")];

View File

@ -481,7 +481,7 @@ impl Site {
/// as well as the pages for each section /// as well as the pages for each section
pub fn populate_sections(&mut self) { pub fn populate_sections(&mut self) {
let mut library = self.library.write().expect("Get lock for populate_sections"); let mut library = self.library.write().expect("Get lock for populate_sections");
library.populate_sections(&self.config); library.populate_sections(&self.config, &self.content_path);
} }
/// Find all the tags and categories if it's asked in the config /// Find all the tags and categories if it's asked in the config