aboutsummaryrefslogtreecommitdiffstats
path: root/askama_shared/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-11-24Simplify take_content() implementationLibravatar René Kijewski1-43/+37
2021-11-24Parse `&str` instead of `&[u8]`Libravatar René Kijewski1-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-24Simplify identifier() implementationLibravatar René Kijewski1-17/+15
2021-11-24Simplify ws() and split_ws_parts()Libravatar René Kijewski1-43/+19
2021-11-24use nom::error::ErrorKindLibravatar René Kijewski1-16/+7
2021-11-19Added support for optional escaper for escape filter (resolves #556)Libravatar vallentin2-11/+36
2021-11-11Implement `for … in … if …`Libravatar René Kijewski2-30/+33
2021-11-11Implement for-elseLibravatar René Kijewski3-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 %} ```
2021-11-11Prepare for actix-web v4 (#553)Libravatar Sergey Pashinin1-4/+2
2021-11-11Implement {{loop.cycle(…)}} similar to JinjaLibravatar René Kijewski1-7/+30
2021-11-10Don't parse non-template attributesLibravatar Dirkjan Ochtman1-9/+5
2021-10-13Fix support for raw method identifiersLibravatar Kelly Thomas Kline1-1/+1
2021-10-12Use char() instead of tag() when possibleLibravatar René Kijewski1-73/+76
2021-10-12Remove custom ParserError typeLibravatar René Kijewski1-5/+3
2021-10-05Fix suggestions from nightly clippyLibravatar Dirkjan Ochtman1-13/+9
2021-08-30Ensure that {%break%} is only used inside of a loopLibravatar René Kijewski1-46/+76
2021-08-30Add {% break %} and {% continue %}Libravatar René Kijewski2-0/+26
This PR adds `{% break %}` and `{% continue %}` statements to break out of a loop, or continue with the next element of the iterator.
2021-08-25Parse boolean literals in assignment targetsLibravatar René Kijewski2-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.
2021-08-21Upgrade to nom 7Libravatar Dirkjan Ochtman1-5/+9
2021-07-30Better error messages using cutsLibravatar René Kijewski1-131/+186
2021-07-30Use "target()" to parse "when" blockLibravatar René Kijewski3-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.
2021-07-30Allow omitting "with" keyword in match blocksLibravatar René Kijewski1-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-30Allow using "with" keyword in "let" statementsLibravatar René Kijewski1-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-30Silence clippy warning from Rust 1.54Libravatar Dirkjan Ochtman1-0/+1
2021-07-05Implement destructoring of structsLibravatar René Kijewski2-8/+59
This PR implements the destructoring of structs on the lhs of "let" and "for" statements.
2021-07-05Parse nested tuples in "let" statement lhsLibravatar René Kijewski2-17/+35
2021-07-05Reduce code duplication for writing targetsLibravatar René Kijewski1-22/+9
This change also fixes a bug in the loop generator, which failed for shadowed variables.
2021-07-05Move logic where target shadows or declares a variable into methodLibravatar René Kijewski1-23/+33
2021-07-05Remove needless deref, only to ref it a few lines downLibravatar René Kijewski1-4/+4
2021-07-05Remove duplicated code in generatorLibravatar René Kijewski1-17/+1
2021-07-05Prepare generator::visit_target() for nested targetsLibravatar René Kijewski1-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.
2021-07-01Stop eliding lifetimes in pathsLibravatar Dirkjan Ochtman5-102/+122
2021-07-01Implement "if let" statementLibravatar René Kijewski2-17/+54
2021-07-01Use "if let Some(_)" instead of matchLibravatar René Kijewski1-21/+18
2021-07-01Move visit_match_params into its own methodLibravatar René Kijewski1-38/+42
2021-07-01Fix a clippy::needless-borrow warning in askama_sharedLibravatar René Kijewski1-1/+1
2021-06-23Fixed loop generator when accessing field (fixes 494)Libravatar vallentin1-0/+6
2021-06-22Fix code generation for macro calls that store args in variables.Libravatar Ryan Kelly1-1/+4
2021-06-15Support rocket 0.5.0-rc.1 based on @flo-l's PR (#495)Libravatar Shritesh Bhattarai1-4/+2
See #412 for earlier iteration.
2021-06-14Fix needless borrowingLibravatar Dirkjan Ochtman1-5/+5
2021-04-29Fixed not found in scope errorLibravatar vallentin1-1/+1
2021-04-21 Use raw identifiers for identifiers which collide with Rust keywords (#476)Libravatar SciStarterOwner1-4/+84
Co-authored-by: Daniel Arbuckle <djarb@highenergymagic.org>
2021-04-13Eliminate common tails from branchesLibravatar Dirkjan Ochtman2-8/+4
2021-03-30askama_tide: suppress clippy::from-over-into lintLibravatar Dirkjan Ochtman1-0/+2
2021-03-30Use mem::take() where applicableLibravatar Dirkjan Ochtman1-2/+2
2021-03-22added paragraphbreaks functionLibravatar mbuscemi1-1/+30
2021-03-14fix typo in docstringLibravatar technic931-1/+1
2021-03-10Changed to allow both path and extLibravatar vallentin1-5/+2
2021-03-10Added extension testsLibravatar vallentin1-0/+48
2021-03-10Fixed extension to ignore common jinja extensions (fixes #457)Libravatar vallentin1-1/+11