diff options
Diffstat (limited to '')
| -rw-r--r-- | askama_derive/src/generator.rs | 8 | ||||
| -rw-r--r-- | askama_derive/src/parser.rs | 7 | 
2 files changed, 11 insertions, 4 deletions
diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs index 0ff30ed..449a969 100644 --- a/askama_derive/src/generator.rs +++ b/askama_derive/src/generator.rs @@ -310,7 +310,9 @@ impl<'a> Generator<'a> {                  Node::Lit(lws, val, rws) => {                      self.write_lit(lws, val, rws);                  }, -                Node::Comment() => {}, +                Node::Comment(ref ws) => { +                    self.write_comment(ws); +                },                  Node::Expr(ref ws, ref val) => {                      self.write_expr(state, ws, val);                  }, @@ -600,6 +602,10 @@ impl<'a> Generator<'a> {          }      } +    fn write_comment(&mut self, ws: &WS) { +        self.handle_ws(ws); +    } +      /* Visitor methods for expression types */      fn visit_expr_root(&mut self, expr: &Expr) -> DisplayWrap { diff --git a/askama_derive/src/parser.rs b/askama_derive/src/parser.rs index 402801f..f1e3c72 100644 --- a/askama_derive/src/parser.rs +++ b/askama_derive/src/parser.rs @@ -52,7 +52,7 @@ pub struct Macro<'a> {  #[derive(Debug)]  pub enum Node<'a> {      Lit(&'a str, &'a str, &'a str), -    Comment(), +    Comment(WS),      Expr(WS, Expr<'a>),      Call(WS, Option<& 'a str>, &'a str, Vec<Expr<'a>>),      LetDecl(WS, Target<'a>), @@ -638,9 +638,10 @@ named!(block_node<Node>, do_parse!(  named!(block_comment<Node>, do_parse!(      tag_s!("{#") >> -    take_until_s!("#}") >> +    pws: opt!(tag_s!("-")) >> +    inner: take_until_s!("#}") >>      tag_s!("#}") >> -    (Node::Comment()) +    (Node::Comment(WS(pws.is_some(), inner.len() > 1 && inner[inner.len() - 1] == b'-')))  ));  named!(parse_template<Vec<Node<'a>>>, many0!(alt!(  | 
