diff --git a/crates/zensical/src/config/validation.rs b/crates/zensical/src/config/validation.rs index 8cd4928..291b3da 100644 --- a/crates/zensical/src/config/validation.rs +++ b/crates/zensical/src/config/validation.rs @@ -55,6 +55,25 @@ pub struct Validation { pub invalid_link_anchors: bool, } +// ---------------------------------------------------------------------------- +// Implementations +// ---------------------------------------------------------------------------- + +impl Validation { + /// Return whether any validation check is enabled. + #[inline] + pub fn is_enabled(&self) -> bool { + self.unresolved_references + || self.unresolved_footnotes + || self.unused_definitions + || self.unused_footnotes + || self.shadowed_definitions + || self.shadowed_footnotes + || self.invalid_links + || self.invalid_link_anchors + } +} + // ---------------------------------------------------------------------------- // Trait implementations // ---------------------------------------------------------------------------- diff --git a/crates/zensical/src/workflow.rs b/crates/zensical/src/workflow.rs index d225d9a..27c54a5 100644 --- a/crates/zensical/src/workflow.rs +++ b/crates/zensical/src/workflow.rs @@ -100,9 +100,11 @@ impl Module for Main { let pages = page.select([wait_for_markdown(&self.config)]); // Collect all anchors and references from pages, to validate links - let references = collect_references(&files); - let anchors = collect_anchors(&page); - validate(&self.config, self.strict, references, anchors); + if self.config.project.validation.is_enabled() { + let references = collect_references(&files); + let anchors = collect_anchors(&page); + validate(&self.config, self.strict, references, anchors); + } // Generate navigation and search index let nav = generate_nav(&self.config, &pages);