From 12815fe399a756022213e768ec63c545a24a0495 Mon Sep 17 00:00:00 2001 From: Jaime Valdemoros Date: Sun, 7 Jan 2018 19:08:31 +0000 Subject: [PATCH] Add pre-processing step to build method of MDBook --- src/book/mod.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/book/mod.rs b/src/book/mod.rs index 4c801d6e..9e718598 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -160,14 +160,20 @@ impl MDBook { pub fn build(&self) -> Result<()> { debug!("[fn]: build"); + let mut preprocessed_book = self.book.clone(); + + for preprocessor in &self.preprocessors { + preprocessor.run(&mut preprocessed_book)?; + } + for renderer in &self.renderers { - self.run_renderer(renderer.as_ref())?; + self.run_renderer(&preprocessed_book, renderer.as_ref())?; } Ok(()) } - fn run_renderer(&self, renderer: &Renderer) -> Result<()> { + fn run_renderer(&self, preprocessed_book: &Book, renderer: &Renderer) -> Result<()> { let name = renderer.name(); let build_dir = self.build_dir_for(name); if build_dir.exists() { @@ -183,7 +189,7 @@ impl MDBook { let render_context = RenderContext::new( self.root.clone(), - self.book.clone(), + preprocessed_book.clone(), self.config.clone(), build_dir, );