From fba6d68cb8b9e1aae493c903632e5ea86f6ae2da Mon Sep 17 00:00:00 2001 From: Chris Wong <lambda.fairy@gmail.com> Date: Sun, 11 Jan 2015 12:51:35 +1300 Subject: [PATCH] Add self-closing elements --- maud_macros/src/parse.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/maud_macros/src/parse.rs b/maud_macros/src/parse.rs index a8ccd36..2624cf9 100644 --- a/maud_macros/src/parse.rs +++ b/maud_macros/src/parse.rs @@ -24,6 +24,9 @@ macro_rules! semi { macro_rules! minus { () => (TtToken(_, token::BinOp(token::Minus))) } +macro_rules! slash { + () => (TtToken(_, token::BinOp(token::Slash))) +} macro_rules! literal { () => (TtToken(_, token::Literal(..))) } @@ -148,8 +151,12 @@ impl<'cx: 'r, 's: 'cx, 'i, 'r, 'o: 'r> Parser<'cx, 's, 'i, 'r, 'o> { self.render.element_open_start(name); guard!(self.attrs()); self.render.element_open_end(); - guard!(self.markup()); - self.render.element_close(name); + if let [slash!(), ..] = self.input { + self.shift(1); + } else { + guard!(self.markup()); + self.render.element_close(name); + } true }