From c8de3950382ee310eec0fe7155a54eb6bfeb5b60 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 6 Jun 2020 23:18:28 -0400 Subject: [PATCH] Inline partials and blocks worked as-is. --- src/renderer/renderer.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/renderer/renderer.rs b/src/renderer/renderer.rs index cf24470..3baa0a3 100644 --- a/src/renderer/renderer.rs +++ b/src/renderer/renderer.rs @@ -338,6 +338,30 @@ impl<'a> DustRenderer<'a> { return Ok(rendered_content); } } + DustTag::DTInlinePartial(_named_block) => { + // Inline partials are blank during rendering (they get injected into blocks) + return Ok("".to_owned()); + } + DustTag::DTBlock(named_block) => { + let new_breadcrumbs = self.new_breadcrumbs_partial( + breadcrumbs, + blocks.breadcrumbs, + None, + &named_block.explicit_context, + ); + return match blocks.blocks.get_block(named_block.path.keys[0]) { + None => self.render_maybe_body( + &named_block.contents, + new_breadcrumbs.as_ref().unwrap_or(breadcrumbs), + blocks, + ), + Some(inline_partial) => self.render_maybe_body( + inline_partial, + new_breadcrumbs.as_ref().unwrap_or(breadcrumbs), + blocks, + ), + }; + } _ => panic!("Unsupported tag"), } Ok("".to_owned())