aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-08-01parser: add type for `Node::Raw`Libravatar René Kijewski1-4/+4
2023-08-01parser: add type for `Node::Lit`Libravatar René Kijewski1-6/+7
2023-08-01parser: add type for `Node::BlockDef`Libravatar René Kijewski2-34/+13
2023-08-01parser: add type for `Node::Match`Libravatar René Kijewski2-9/+13
2023-08-01parser: add type for `Node::Call`Libravatar René Kijewski1-7/+10
2023-08-01parser: add type for `Node::Import`Libravatar René Kijewski2-8/+8
2023-08-01parser: let `Macro` know its nameLibravatar René Kijewski2-4/+4
2023-07-31parser: rename block to nodesLibravatar Dirkjan Ochtman2-6/+8
2023-07-31parser: define a struct for MatchLibravatar Dirkjan Ochtman2-6/+5
2023-07-31parser: define a struct for CondLibravatar Dirkjan Ochtman2-6/+6
2023-07-31Extract askama_parser crateLibravatar Dirkjan Ochtman9-2058/+6
2023-07-31derive: move whitespace conversion into config moduleLibravatar Dirkjan Ochtman2-12/+11
2023-07-31derive: move Parsed into parser moduleLibravatar Dirkjan Ochtman2-36/+35
2023-07-31derive: move generator-specific methods out of ExprLibravatar Dirkjan Ochtman2-73/+71
2023-07-31derive: define separate ParseError typeLibravatar Dirkjan Ochtman4-9/+32
2023-07-31derive: move Syntax into parser moduleLibravatar Dirkjan Ochtman5-40/+38
2023-07-24Fix Rust macro invocations not accepting a path (#837)Libravatar Matthew Taylor3-17/+72
2023-06-28Cache include AST to reduce parsing overheadLibravatar Dirkjan Ochtman1-23/+16
2023-06-28Inline child() method to avoid borrowing all fieldsLibravatar Dirkjan Ochtman1-27/+23
2023-06-28Avoid reparsing included templates if possibleLibravatar Dirkjan Ochtman1-4/+23
2023-06-28Parse templates onceLibravatar Dirkjan Ochtman3-18/+45
2023-06-12Allow macros to be defined and called without argumentsLibravatar mataha1-2/+5
This commit introduces a shorthand for defining and calling macros when using them as a reusable substitute for variables assigned complex values (e.g. string literals with or without newline escapes). The use-case is formatting - from my experience it's easier to visually parse a `macro` `endmacro` block than a multiline variable assignment. Signed-off-by: mataha <mataha@users.noreply.github.com>
2023-05-31Allow delimiters with arbitrary lengthLibravatar René Kijewski1-16/+94
2023-05-19Update to rocket 0.5-rc.3Libravatar Vypo Mouse1-6/+15
2023-03-21Extract literal from group expressions in attributesLibravatar Dirkjan Ochtman1-0/+6
2023-03-20Upgrade to syn 2Libravatar Dirkjan Ochtman1-27/+26
2023-03-13Add tests for whitespace argument in template derive proc-macroLibravatar Guillaume Gomez1-0/+30
2023-03-13Add whitespace argument in template derive proc-macroLibravatar Guillaume Gomez2-17/+39
2023-03-09Fix handling of trailing whitespace charactersLibravatar Guillaume Gomez2-4/+19
2023-03-06Propogate size_hint from sub-blocks (#788)Libravatar Andrew Dona-Couch -- GitHub drop ICE1-4/+4
Closes #786
2023-03-03exchange hyper features From<Template> for hyper::Body with TryFromLibravatar Rudi Floren1-7/+5
The previous implementation hid the error returned by render, which made it impossible for callers to react to rendering errors. While having a simple way to call into would be nice, there is not way to have both implementations without adding any manual specialization. Thus, the From impl is replaced by the TryFrom impl.
2023-02-24Fix typosLibravatar René Kijewski2-13/+13
2023-02-21Revert "derive: Make Config `'static`"Libravatar René Kijewski6-69/+74
2023-02-21Replace `toml_edit` with `basic-toml`Libravatar René Kijewski1-1/+1
2023-02-13Add impl From<{Template}> for hyper::Body deriveLibravatar Rudi Floren1-1/+23
with-hyper now derives an impl allowing Templates to be passed to functions with trait bounds for Into<hyper::Body>.
2023-01-30derive: refactor parserLibravatar René Kijewski5-1940/+1999
`parser.rs` was a single file containing almost 2000 lines. This PR split the file into multiple, smaller files. `Expr`, `Node`, and `Target` each get an own file. Each struct gets a `parse()` method that return `Result<Self>`, and every other detail is private to the file. This PR should make this essential part of Askama more easy to understand, and make future modifications easier.
2023-01-30Extends expects a string and nothing elseLibravatar René Kijewski3-5/+5
2023-01-30Use `toml_edit` instead of `toml`Libravatar René Kijewski1-1/+2
Since version 0.6, `toml` is a wrapper around `toml_edit`, and the more basic library already meets our needs.
2023-01-30derive: Make Config `'static`Libravatar René Kijewski4-71/+67
The configuration is made `'static`, because `toml` and `toml_edit` both needs to implement serde's `DeserializeOwned` by now. We allocate the strings once per template, so it is very unlikely that this change will have any measurable impact, neither in compile time nor RAM usage.
2023-01-30Apply clippy suggestions for 1.67 (#769)Libravatar Dirkjan Ochtman4-42/+41
2022-11-09Fail to parse if keyword is not longest identLibravatar René Kijewski1-31/+56
This PR makes e.g. `{% leta = b %}` a parsing error. To the reader it would appear that `leta` should be a meaningful expression in Askama, which it is not. Before this PR, `leta` was tokenized as `let` + `a`. This PR makes the parser try to find the longest identifier at a parsing positions and only compare the outcome against the expected keyword. This is potentially a breaking change, because code that should always have been invalid will now fail to compile, when it was accepted before.
2022-11-07chore: remove allow(clippy::disallowed_names)Libravatar Dirkjan Ochtman1-1/+0
2022-11-07chore: apply clippy suggestions for 1.65Libravatar Dirkjan Ochtman1-1/+1
2022-09-26Remove `_ext` from `askama_hyper`, tooLibravatar René Kijewski1-2/+1
That part was missing from #632, because #632 came before #706, and I forgot to update the older PR.
2022-09-23Apply clippy suggestions from Rust 1.64 (#725)Libravatar Dirkjan Ochtman1-1/+1
2022-09-19Remove ext argument in integrationsLibravatar René Kijewski1-16/+7
2022-09-19Add Expr::is_cachable()Libravatar René Kijewski2-4/+35
2022-09-19Skip caching calls (Resolves #667)Libravatar vallentin1-3/+7
2022-07-25Remove support for deprecated `_parent` fieldLibravatar René Kijewski2-48/+1
The support for the magic `_parent` field is deprecated since v0.8.0 or issue #180. It's bothersome to keep this feature alive, when no-one should be using it for 3 years.
2022-07-25Implement basic hyper integrationLibravatar René Kijewski1-0/+27
The integration is based on askama_gotham. There is no specific trait to convert an arbitrary T to `hyper::Response`, so I used `From<Template> for hyper::Response`.