Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2022-09-19 | Add Expr::is_cachable() | René Kijewski | 1 | -0/+33 | |
2022-05-24 | Move code generation into askama_derive | René Kijewski | 1 | -0/+0 | |
2022-05-23 | Move configuration into its own module | René Kijewski | 1 | -2/+3 | |
2022-04-29 | Allow `{% endmacro name %}` | Bastien Orivel | 1 | -11/+13 | |
Just migrated a repo from tera to askama and this was one of the only things that was different. This is also coherent with `{% block %}` for which I added the same feature years ago. | |||||
2022-04-26 | Add tests for Whitespace::Minize parsing | Guillaume Gomez | 1 | -0/+29 | |
2022-04-26 | Rename Whitespace::Trim into Whitespace::Suppress | Guillaume Gomez | 1 | -11/+11 | |
2022-04-26 | Add WhitespaceHandling::Minimize | Guillaume Gomez | 1 | -3/+3 | |
2022-04-26 | Add new minimize jinja character handling: `~` | Guillaume Gomez | 1 | -1/+5 | |
2022-04-21 | Update parser to allow "+" sign | Guillaume Gomez | 1 | -162/+206 | |
2022-04-21 | Add suppress_whitespace config option | Guillaume Gomez | 1 | -0/+3 | |
2022-03-23 | Un-"pub" most of askama_shared's internals | René Kijewski | 1 | -26/+29 | |
Previously askama_shared exported most of it's internals, so askama_derive could use them. This is not needed anymore. | |||||
2022-01-31 | Don't wrap in StrLit just to extract the str imm. | René Kijewski | 1 | -20/+4 | |
2022-01-31 | Allow comments in `{% match %}` and remove panic! | René Kijewski | 1 | -19/+2 | |
2022-01-28 | Parse tuple expressions | René Kijewski | 1 | -3/+145 | |
Askama understands how to destructure tuples in let and match statements, but it does not understand how to build a tuple. This PR fixes this shortcoming. | |||||
2022-01-28 | Implement error propagation expression: `?` (#590) | René Kijewski | 1 | -1/+8 | |
This change allows using the operator `?` in askama expressions. It works like the same operator in Rust: if a `Result` is `Ok`, it is unwrapped. If it is an error, then the `render()` method fails with this error value. | |||||
2022-01-27 | Unify handling of calls (#614) | René Kijewski | 1 | -66/+126 | |
Instead of having `Expr::VarCall`, `Expr::PathCall` and `Expr::MethodCall`, this PR unifies the handling of calls by removing the former three variants, and introducing `Expr::Call`. | |||||
2022-01-06 | Optimize parsing of ranges | René Kijewski | 1 | -17/+13 | |
Right now almost every expression needs to be parsed twice: `expr_any()` first parses the left-hand side of a range expression, and if no `..` or `..=` was found the left-hand expression is parsed again, this time as the result of the function. This diff removes the second parsing step by first looking for `.. (opt rhs)`, then for `lhs .. (opt rhs)`. | |||||
2022-01-06 | Same number of repeats in macro pattern and body | René Kijewski | 1 | -1/+1 | |
2021-11-29 | Allow whitespace trimming in {{raw}} blocks | René Kijewski | 1 | -16/+19 | |
2021-11-24 | Simplify take_content() implementation | René Kijewski | 1 | -43/+37 | |
2021-11-24 | Parse `&str` instead of `&[u8]` | René Kijewski | 1 | -132/+120 | |
Askama's takes valid UTF-8 files as input. So why operate on byte slices instead of strings? This makes writing some functions a lot simpler. | |||||
2021-11-24 | Simplify identifier() implementation | René Kijewski | 1 | -17/+15 | |
2021-11-24 | Simplify ws() and split_ws_parts() | René Kijewski | 1 | -43/+19 | |
2021-11-24 | use nom::error::ErrorKind | René Kijewski | 1 | -16/+7 | |
2021-11-11 | Implement `for … in … if …` | René Kijewski | 1 | -1/+6 | |
2021-11-11 | Implement for-else | René Kijewski | 1 | -9/+40 | |
This PR implements for-else statements like in Jinja. They make it easy to print an alternative message if the loop iterator was empty. E.g. ```rs {% for result in result %} <li>{{ result }}</li> {% else %} <li><em>no results</em></li> {% endfor %} ``` | |||||
2021-10-12 | Use char() instead of tag() when possible | René Kijewski | 1 | -73/+76 | |
2021-10-12 | Remove custom ParserError type | René Kijewski | 1 | -5/+3 | |
2021-10-05 | Fix suggestions from nightly clippy | Dirkjan Ochtman | 1 | -13/+9 | |
2021-08-30 | Ensure that {%break%} is only used inside of a loop | René Kijewski | 1 | -46/+76 | |
2021-08-30 | Add {% break %} and {% continue %} | René Kijewski | 1 | -0/+16 | |
This PR adds `{% break %}` and `{% continue %}` statements to break out of a loop, or continue with the next element of the iterator. | |||||
2021-08-25 | Parse boolean literals in assignment targets | René Kijewski | 1 | -3/+21 | |
268d825 introduced a regression that made matching against boolean literals impossible. E.g. "true" was interpreted as the variable "r#true". This PR fixes the problem. The bug was reported by @Restioson in issue #531. | |||||
2021-08-21 | Upgrade to nom 7 | Dirkjan Ochtman | 1 | -5/+9 | |
2021-07-30 | Better error messages using cuts | René Kijewski | 1 | -131/+186 | |
2021-07-30 | Use "target()" to parse "when" block | René Kijewski | 1 | -150/+40 | |
`target()` as used in parsing "let" and "if let" implements parsing nested tuples and structs. But it does not implement parsing literals. The functions `match_variant()` and `with_parameters()` as used in parsing "when" blocks do not implement parsing nested structs, but it implements parsing literals. This PR combines `match_variant()` and `with_parameters()` into `target()`, so that all `{%when%}` support nested structs, too. | |||||
2021-07-30 | Allow omitting "with" keyword in match blocks | René Kijewski | 1 | -1/+1 | |
Askama uses the syntax `{% when Variant with (parameters) %}` in `{% match %}` blocks. This is done because Askama does not implement the whole pattern matching of Rust's `match` statements. This PR wants to bring Askama a step closer Rust's matching, so the "with" keyword should not be needed anymore. | |||||
2021-07-30 | Allow using "with" keyword in "let" statements | René Kijewski | 1 | -0/+1 | |
Askama uses the syntax `{% when Variant with (parameters) %}` in `{% match %}` blocks. This change allows the optional use of the keyword "with" in "let" and "if let" statements, too. | |||||
2021-07-05 | Implement destructoring of structs | René Kijewski | 1 | -6/+42 | |
This PR implements the destructoring of structs on the lhs of "let" and "for" statements. | |||||
2021-07-05 | Parse nested tuples in "let" statement lhs | René Kijewski | 1 | -14/+32 | |
2021-07-01 | Stop eliding lifetimes in paths | Dirkjan Ochtman | 1 | -51/+50 | |
2021-07-01 | Implement "if let" statement | René Kijewski | 1 | -5/+27 | |
2021-02-23 | Reworked constants to be parsed as paths | vallentin | 1 | -6/+24 | |
2021-02-22 | Added var and path parser tests | vallentin | 1 | -1/+72 | |
2021-02-22 | Fixed path parser to account for single identifier type names | vallentin | 1 | -7/+23 | |
2021-02-22 | Removed needless borrow of range | vallentin | 1 | -0/+1 | |
2021-02-01 | Bring Ws type name in line with API guidelines | Dirkjan Ochtman | 1 | -66/+66 | |
2021-01-22 | Apply suggestions from nightly clippy | Dirkjan Ochtman | 1 | -4/+2 | |
2021-01-06 | Improved comment parsing test | vallentin | 1 | -0/+18 | |
2021-01-06 | Fixed comment parsing | vallentin | 1 | -7/+1 | |
2021-01-05 | Removed implicit borrowing of literals, calls, and more (fixes #404) | vallentin | 1 | -0/+39 | |