diff --git a/components/site/src/lib.rs b/components/site/src/lib.rs index f5a72a4..ba70aef 100644 --- a/components/site/src/lib.rs +++ b/components/site/src/lib.rs @@ -149,20 +149,15 @@ impl Site { /// Get all the orphan (== without section) pages in the site pub fn get_all_orphan_pages(&self) -> Vec<&Page> { - let mut pages_in_sections = HashSet::new(); - let mut orphans = vec![]; - - for s in self.sections.values() { - pages_in_sections.extend(s.all_pages_path()); - } - - for page in self.pages.values() { - if !pages_in_sections.contains(&page.file.path) { - orphans.push(page); - } - } + let pages_in_sections = self.sections + .values() + .flat_map(|s| s.all_pages_path()) + .collect::>(); - orphans + self.pages + .values() + .filter(|page| !pages_in_sections.contains(&page.file.path)) + .collect() } pub fn set_base_url(&mut self, base_url: String) {