aboutsummaryrefslogtreecommitdiffstats
path: root/askama_shared/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Optimize parsing of rangesLibravatar René Kijewski2022-01-061-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)`.
* Add `#[inline]` to trivial trait implementationsLibravatar René Kijewski2022-01-061-0/+9
|
* Remove the iron integration from generatorLibravatar René Kijewski2022-01-062-27/+0
| | | | | | | Issue #527 removed the askama_iron package, but not the integration if someone uses askama_derive's feature with "iron". The old askama_iron crate uses askama v0.10, so it will still work.
* Add `#![forbid(unsafe_code)]` to all crates except askama_escapeLibravatar René Kijewski2022-01-061-0/+1
|
* Add `#![deny(unreachable_pub)]` to all cratesLibravatar René Kijewski2022-01-061-0/+1
|
* Omit implicit lifetimesLibravatar René Kijewski2022-01-064-7/+7
|
* Same number of repeats in macro pattern and bodyLibravatar René Kijewski2022-01-061-1/+1
|
* No need to build a String when it gets referenced as &str implicitlyLibravatar René Kijewski2022-01-061-6/+0
|
* Combine imports from the same moduleLibravatar René Kijewski2022-01-061-2/+1
|
* Update for actix-web betaLibravatar René Kijewski2022-01-051-7/+3
|
* askama_rocket: revert to rocket 0.4 for releaseLibravatar Dirkjan Ochtman2022-01-041-2/+4
|
* askama_actix: revert to actix-web v3 for releaseLibravatar Dirkjan Ochtman2022-01-041-3/+4
|
* Use a separate trait for object safety (#579)Libravatar Dirkjan Ochtman2021-12-151-17/+5
| | | | | | | | | | | | | | | | | | This is relatively major change to the main trait's API. For context, I always started from the concept of monomorphized traits, but later several contributors asked about object safety. At that point I made `Template` object-safe, and then even later added a `SizedTemplate` to make some things easier for people who don't need object safety. However, having object-safety in the primary trait is bad for performance (a substantial number of calls into the virtual `Write` trait is relatively slow), and I don't think those who don't need object safety should pay for the cost of having it. Additionally, I feel using associated consts for the extension and size hint is more idiomatic than having accessor methods. I don't know why I didn't use these from the start -- maybe associated consts didn't exist yet, or I didn't yet know how/when to use them. Askama is pretty old at this point...
* updated for actix-web 4.0.0-beta.14Libravatar CrunkLord4202021-12-141-1/+2
|
* Use char for patterns where possibleLibravatar Dirkjan Ochtman2021-12-082-3/+3
|
* Update axum to 0.4 (by switching to axum-core)Libravatar Michael Alyn Miller2021-12-051-5/+3
|
* Move askama_mendes integration into Askama repo (#561)Libravatar Dirkjan Ochtman2021-12-011-2/+2
|
* Allow whitespace trimming in {{raw}} blocksLibravatar René Kijewski2021-11-292-18/+21
|
* Add Axum integrationLibravatar Michael Alyn Miller2021-11-272-0/+19
|
* Simplify take_content() implementationLibravatar René Kijewski2021-11-241-43/+37
|
* Parse `&str` instead of `&[u8]`Libravatar René Kijewski2021-11-241-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.
* Simplify identifier() implementationLibravatar René Kijewski2021-11-241-17/+15
|
* Simplify ws() and split_ws_parts()Libravatar René Kijewski2021-11-241-43/+19
|
* use nom::error::ErrorKindLibravatar René Kijewski2021-11-241-16/+7
|
* Added support for optional escaper for escape filter (resolves #556)Libravatar vallentin2021-11-192-11/+36
|
* Implement `for … in … if …`Libravatar René Kijewski2021-11-112-30/+33
|
* Implement for-elseLibravatar René Kijewski2021-11-113-29/+72
| | | | | | | | | | | | | 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 %} ```
* Prepare for actix-web v4 (#553)Libravatar Sergey Pashinin2021-11-111-4/+2
|
* Implement {{loop.cycle(…)}} similar to JinjaLibravatar René Kijewski2021-11-111-7/+30
|
* Don't parse non-template attributesLibravatar Dirkjan Ochtman2021-11-101-9/+5
|
* Fix support for raw method identifiersLibravatar Kelly Thomas Kline2021-10-131-1/+1
|
* Use char() instead of tag() when possibleLibravatar René Kijewski2021-10-121-73/+76
|
* Remove custom ParserError typeLibravatar René Kijewski2021-10-121-5/+3
|
* Fix suggestions from nightly clippyLibravatar Dirkjan Ochtman2021-10-051-13/+9
|
* Ensure that {%break%} is only used inside of a loopLibravatar René Kijewski2021-08-301-46/+76
|
* Add {% break %} and {% continue %}Libravatar René Kijewski2021-08-302-0/+26
| | | | | This PR adds `{% break %}` and `{% continue %}` statements to break out of a loop, or continue with the next element of the iterator.
* Parse boolean literals in assignment targetsLibravatar René Kijewski2021-08-252-3/+27
| | | | | | | | 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.
* Upgrade to nom 7Libravatar Dirkjan Ochtman2021-08-211-5/+9
|
* Better error messages using cutsLibravatar René Kijewski2021-07-301-131/+186
|
* Use "target()" to parse "when" blockLibravatar René Kijewski2021-07-303-253/+83
| | | | | | | | | | | | `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.
* Allow omitting "with" keyword in match blocksLibravatar René Kijewski2021-07-301-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.
* Allow using "with" keyword in "let" statementsLibravatar René Kijewski2021-07-301-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.
* Silence clippy warning from Rust 1.54Libravatar Dirkjan Ochtman2021-07-301-0/+1
|
* Implement destructoring of structsLibravatar René Kijewski2021-07-052-8/+59
| | | | | This PR implements the destructoring of structs on the lhs of "let" and "for" statements.
* Parse nested tuples in "let" statement lhsLibravatar René Kijewski2021-07-052-17/+35
|
* Reduce code duplication for writing targetsLibravatar René Kijewski2021-07-051-22/+9
| | | | | This change also fixes a bug in the loop generator, which failed for shadowed variables.
* Move logic where target shadows or declares a variable into methodLibravatar René Kijewski2021-07-051-23/+33
|
* Remove needless deref, only to ref it a few lines downLibravatar René Kijewski2021-07-051-4/+4
|
* Remove duplicated code in generatorLibravatar René Kijewski2021-07-051-17/+1
|
* Prepare generator::visit_target() for nested targetsLibravatar René Kijewski2021-07-051-4/+2
| | | | | | | | By now only non-nested tuples are accepted by the parser, but this will change. This change makes visit_target() call itself for items in a tuple. So enable the function to call itself, I needed to fix the lifetime annotation, because the references inside a Target instance may outlife a reference to instance itself.