Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add MSRV checking in CI | 2023-09-29 | 15 | -20/+24 | |
| | | | | Bump MSRV to 1.65 for the use of let .. else. | ||||
* | Add audit job in CI workflow | 2023-09-29 | 2 | -0/+16 | |
| | |||||
* | Upgrade to actions/checkout@v4 | 2023-09-29 | 1 | -3/+3 | |
| | |||||
* | Use externally maintained Actions | 2023-09-29 | 2 | -43/+5 | |
| | |||||
* | Pass `Node` parsing level to expressions | 2023-09-28 | 3 | -18/+18 | |
| | |||||
* | Limit nesting in parser nodes, too | 2023-09-28 | 4 | -4/+152 | |
| | |||||
* | Require Expr::parse() callers to supply Level | 2023-09-28 | 2 | -16/+18 | |
| | |||||
* | Move Level into the crate root | 2023-09-28 | 3 | -18/+17 | |
| | |||||
* | Yield a parser error when defining a macro named 'super' | 2023-09-28 | 2 | -4/+11 | |
| | |||||
* | Limit expression nesting level to avoid stack overflows | 2023-09-28 | 2 | -34/+83 | |
| | |||||
* | fuzz: remove input limit | 2023-09-18 | 1 | -4/+2 | |
| | | | | | While working on https://github.com/djc/askama/pull/862 fuzz_parser was crashing and failing oss-fuzz build_checks. so a limit of 500 was placed, this pr removes that. | ||||
* | fuzz: Add fuzz for askama_parser | 2023-09-13 | 4 | -0/+58 | |
| | |||||
* | Use char_indices() to get byte indices for characters | 2023-09-11 | 2 | -1/+8 | |
| | |||||
* | Rename some variables | 2023-09-11 | 1 | -7/+7 | |
| | |||||
* | build(deps): update mendes requirement from 0.3.0 to 0.5.0 | 2023-09-08 | 1 | -1/+1 | |
| | | | | | | | | | | | | Updates the requirements on [mendes](https://github.com/djc/mendes) to permit the latest version. - [Commits](https://github.com/djc/mendes/commits) --- updated-dependencies: - dependency-name: mendes dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> | ||||
* | Explicitly set resolver at the workspace level | 2023-08-25 | 1 | -0/+1 | |
| | |||||
* | escape: simplify literals as suggested by clippy | 2023-08-25 | 1 | -4/+4 | |
| | |||||
* | Add section in book about using constants in templates | 2023-08-09 | 1 | -0/+22 | |
| | |||||
* | Optimize parsing boolean literals, too | 2023-08-03 | 1 | -9/+5 | |
| | |||||
* | Parse paths and identifiers only once | 2023-08-03 | 3 | -37/+53 | |
| | | | | | | | | | | | | | | In the old implementation each variable in an expression would be parsed up to three times: * Try to parse a path because it contains a leading double colon, or infix double colons. * Try to parse it as path again by scanning for an identifier that contains an upper case character. * Fall back to scanning for any identifier. This PR turns all three steps into one, without the need for backtracking. | ||||
* | parser: fix white space issues in macro parsing | 2023-08-02 | 1 | -2/+2 | |
| | |||||
* | parser: allow negative numbers in patterns | 2023-08-02 | 1 | -1/+5 | |
| | |||||
* | parser: don't truncates whitespaces after arrays | 2023-08-02 | 1 | -1/+1 | |
| | |||||
* | parser: better error message for unknown nodes | 2023-08-02 | 2 | -9/+8 | |
| | |||||
* | parser: import `parser::{Expr, Node}` | 2023-08-01 | 4 | -9/+8 | |
| | |||||
* | parser: `node::Loop` is much bigger than the other variants | 2023-08-01 | 2 | -10/+6 | |
| | |||||
* | parser: move test for completeness | 2023-08-01 | 1 | -6/+6 | |
| | |||||
* | parser: add type for `Node::Comment` | 2023-08-01 | 3 | -151/+114 | |
| | |||||
* | parser: add `expr::Loop::parse()` | 2023-08-01 | 1 | -68/+70 | |
| | |||||
* | parser: remove re-exports `parser::{node,expr}::*` | 2023-08-01 | 6 | -18/+22 | |
| | |||||
* | parser: add type for `Node::Extends` | 2023-08-01 | 4 | -12/+19 | |
| | |||||
* | parser: add type for `Node::Include` | 2023-08-01 | 3 | -22/+35 | |
| | |||||
* | parser: rename `Node::Cond` into `If` and add type | 2023-08-01 | 4 | -45/+58 | |
| | |||||
* | parser: add type for `Node::Let` | 2023-08-01 | 3 | -57/+53 | |
| | |||||
* | parser: add type for `Node::Raw` | 2023-08-01 | 3 | -33/+42 | |
| | |||||
* | parser: add type for `Node::Lit` | 2023-08-01 | 4 | -55/+61 | |
| | |||||
* | parser: add type for `Node::BlockDef` | 2023-08-01 | 4 | -64/+58 | |
| | |||||
* | parser: add type for `Node::Match` | 2023-08-01 | 4 | -45/+67 | |
| | |||||
* | parser: add type for `Node::Call` | 2023-08-01 | 3 | -27/+50 | |
| | |||||
* | parser: add type for `Node::Import` | 2023-08-01 | 4 | -25/+41 | |
| | |||||
* | parser: let `Macro` know its name | 2023-08-01 | 3 | -56/+57 | |
| | |||||
* | parser: add `Ast::nodes()` method | 2023-08-01 | 1 | -0/+4 | |
| | |||||
* | parser: impement `PartialEq` for `Ast` | 2023-08-01 | 1 | -0/+7 | |
| | |||||
* | parser: implement `Debug` for `Parsed` | 2023-08-01 | 1 | -1/+9 | |
| | |||||
* | parser: use `?` | 2023-08-01 | 1 | -5/+1 | |
| | |||||
* | parser: ensure correct drop order for `Parsed` | 2023-08-01 | 1 | -2/+3 | |
| | | | | | | | | | | | | | | | According to [RFC 1857] the fields of a struct are dropped in the same order as they are declared. For `struct S { a: A, b: B }` field `a` is dropped before field `b`. Our struct `Parsed` is self referencial. Its field `ast` depends on `source`, so `source` must outlife `ast`. This PR changes the order of the fields to reflect this requirement. In practice it should not matter, because we know that the variant of `Node` won't access the string data during their `Drop`, but better safe than sorry - maybe `Node` changes in the future. [RFC 1857]: https://rust-lang.github.io/rfcs/1857-stabilize-drop-order.html | ||||
* | parser: remove panicking `From<&str> for Whitespace` | 2023-08-01 | 1 | -12/+5 | |
| | |||||
* | Fix parsing arrays | 2023-07-31 | 4 | -12/+93 | |
| | | | | | | | | | | | | | | | | This change * allows using empty arrays `[]` in expessions, * adds a cut when the leading `[` was encountered, and * fixes the interaction between arrays and boolean OR. IMO the restriction that you couldn't use empty arrays is not needed. The missing cut made error messages slictly worse if you forget to add the closing `]`. Filter expressions must not have white spaces before the pipe `|`. The white space is used to tell a filter expressions, and `std::ops::Or` apart. | ||||
* | Fix parsing calls | 2023-07-31 | 3 | -6/+33 | |
| | | | | | | | This change: * adds a cut when the leading `(` was encountered, and * fixed the interaction between call expressions and boolean OR. | ||||
* | CI: make sure parser is tested | 2023-07-31 | 1 | -3/+3 | |
| |