René Kijewski
1a1b507722
parser: refactor |filter
and {% filter %}
parsing
...
Deduplicated and easier to read code.
2025-06-24 15:02:41 +02:00
Guillaume Gomez
ca6573bf56
Rename Expr::Attr
into Expr::AssociatedItem
2025-06-24 14:09:34 +02:00
René Kijewski
338369a424
parser: box Expr::Filter
to reduce Expr
's size
2025-06-24 12:21:41 +02:00
René Kijewski
2086d4f898
parser: introduce askama_parser::expr::Call
2025-06-24 12:21:41 +02:00
René Kijewski
49d4397f51
parser: introduce askama_parser::expr::Range
2025-06-24 12:21:41 +02:00
René Kijewski
9f882e2ca7
parser: introduce askama_parser::expr::BinOp
2025-06-24 12:21:41 +02:00
René Kijewski
edfa31f9cf
parser: ensure valid paths in generics
2025-06-23 18:31:16 +02:00
René Kijewski
749d4edd89
Import ErrMode
2025-06-23 18:31:16 +02:00
René Kijewski
3f380721a2
parser: reject illegal raw identifiers in attribute access
2025-06-23 18:31:16 +02:00
René Kijewski
76b26cd5fa
parser: str lit must not be followed by suffix#
...
Resolves <https://issues.oss-fuzz.com/issues/426509683 >.
2025-06-21 19:43:28 +02:00
René Kijewski
2e510b0862
Remove normalize_identifier
benchmark
...
The benchmark is overly specific.
2025-06-20 16:19:24 +02:00
Corey Prophitt
26507e1173
Fixed typos in template syntax book docs
2025-06-20 10:17:06 +02:00
Guillaume Gomez
1275b58ccb
Merge pull request #486 from Kijewski/pr-more-core
...
Filters `linebreaks`, `paragraphbreaks` and `linebreaksbr` only need `core`
2025-06-17 16:54:01 +02:00
René Kijewski
5ec46333de
parser: fix {% raw %}
for delimiters starting with -
...
Looking at the code once more I came up with an odd edge case. This PR
fixes it.
2025-06-17 15:29:54 +02:00
Guillaume Gomez
40bb5daab2
Merge pull request #489 from Kijewski/pr-no-memchr
...
parser: implement `{% raw %}` and `Lit::parse()` without `skip_till`
2025-06-17 11:13:06 +02:00
René Kijewski
53f4eb0b81
Add missing #[inline]
for <_ as Deref>::deref()
2025-06-17 05:25:40 +02:00
René Kijewski
9c67e2a7d9
parser: implement Lit::parse()
without skip_till()
2025-06-17 05:22:12 +02:00
René Kijewski
61bdb49bc7
parser: implement {% raw %}
without skip_till
...
The implementation is longer than before, but also more correct:
Before, the input `{% raw %}{% endraw }}{% endraw %}` would be a syntax
error, now it renders the string `{% endraw }}`.
2025-06-17 01:01:39 +02:00
René Kijewski
b6acf7b3a8
parser: simplify {# comment #}
parsing
...
`winnow`'s `take_until` with feature `simd` enabled is implemented like
our "optimized" `skip_till`. There is no need to reinvent the wheel.
2025-06-16 23:49:58 +02:00
René Kijewski
568ced0c55
parser: recognize comments in macro calls
...
Fixes issue <https://issues.oss-fuzz.com/issues/425145246 >
2025-06-16 23:49:47 +02:00
Guillaume Gomez
e329f98433
Merge pull request #484 from Kijewski/pr-u+10ffff
...
parser: U+10FFFF is the highest Unicode codepoint
2025-06-16 16:50:36 +02:00
René Kijewski
b70de9cd73
Unify splitting function, and finish comment sentences
2025-06-15 22:05:24 +02:00
René Kijewski
94e7757078
Filter linebreaksbr
only needs core
2025-06-14 15:12:22 +02:00
René Kijewski
b9490c4b5d
Filter paragraphbreaks
only needs core
2025-06-14 14:57:55 +02:00
René Kijewski
781d88042c
Filter linebreaks
only needs core
2025-06-14 14:54:19 +02:00
Guillaume Gomez
477bfe4a3c
Update information about wordcount
filter
2025-06-14 13:18:22 +02:00
Guillaume Gomez
7ff890b14d
Make wordcount
filter work with core
only
2025-06-14 13:18:22 +02:00
Guillaume Gomez
0b7858d78d
Rename filters/builtin.rs
into filters/core.rs
2025-06-14 13:18:22 +02:00
René Kijewski
00b640c93b
parser: better error message for bare CRs
2025-06-13 22:19:17 +02:00
René Kijewski
9ffa6b954c
parser: U+10FFFF is the highest Unicode codepoint
...
Fix a small typo: parsing '\u{123456}` should parse up to 6 characters,
inclusively.
2025-06-13 11:32:51 +02:00
Guillaume Gomez
fc8906ca60
Merge pull request #483 from Kijewski/issue-482
...
parser: reject isolated CRs in string literals
2025-06-13 11:24:08 +02:00
René Kijewski
341b850351
parser: reject isolated CRs in string literals
...
According to <https://doc.rust-lang.org/reference/tokens.html#string-literals >.
Fixes <https://github.com/askama-rs/askama/issues/482 >.
Fixes <https://issues.oss-fuzz.com/issues/424227903 >.
2025-06-13 06:17:12 +02:00
Guillaume Gomez
163d9780bf
Merge pull request #481 from Kijewski/pr-index0
...
Rename `LoopItem::index` to `LoopItem::index0`
2025-06-11 19:27:03 +02:00
René Kijewski
50e0a96481
Rename LoopItem::index
to LoopItem::index0
...
That's what the element is called in the template syntax.
Also refactor `Generator::visit_attr()` at bit to make it more readable.
Also add `__askama` prefix to `_len`.
2025-06-11 18:53:42 +02:00
Guillaume Gomez
9309acaa01
Merge pull request #479 from Kijewski/issue-425
...
parser: reject illegal string literals
2025-06-10 19:55:32 +02:00
René Kijewski
878b28b71c
parser: truly terrible code was generated in punctuation
2025-06-09 19:24:08 +02:00
René Kijewski
532e343c40
parser: reject illegal string literals
2025-06-09 19:24:08 +02:00
René Kijewski
66ce299a4a
parser: in macro calls reject cstrings with NULs
2025-06-09 19:24:07 +02:00
René Kijewski
478d72614e
filter reject is not HTML safe
2025-06-06 15:48:04 +02:00
René Kijewski
72b9005cb5
filter: modify reject
a bit
...
* Re-use iterator getting from `{% for %}`'s implementation
* Don't use edition 2024 features
2025-06-06 15:48:04 +02:00
Guillaume Gomez
36fd13d3b2
Apply suggestions
2025-06-06 15:48:04 +02:00
Guillaume Gomez
c6aa9b2e83
Add new reject
filter
2025-06-06 15:48:04 +02:00
Guillaume Gomez
c8acf8b270
Merge pull request #476 from Kijewski/issue-475
...
parser: recognize/reject prefixed ids and lits in macro calls
2025-06-05 21:23:09 +02:00
René Kijewski
d181493084
Fix clippy warning
2025-06-05 18:45:51 +02:00
René Kijewski
d531c96d13
parser: recognize/reject prefixed ids and lits in macro calls
2025-06-05 18:44:02 +02:00
René Kijewski
9bf41656a4
ci: some fixes
...
* forgot to update source folder in [#473 ]
* documentation creation was not checked for `askama_escape`
* cluster-fuzz could not [upload sarif file] that contained its outcome
* let all fuzzers run for the same amount of time
[#473 ]: <https://redirect.github.com/askama-rs/askama/pull/473 >
[upload sarif file]: <https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github >
2025-06-03 14:48:37 +02:00
René Kijewski
3a52a2a1c7
book: document all crates on readthedocs
2025-06-03 14:10:26 +02:00
Guillaume Gomez
47c04fca0b
Merge pull request #470 from Kijewski/pr-dedup-filter-with-path
...
derive: dedupe visit custom filters code
2025-06-02 21:31:14 +02:00
Guillaume Gomez
c2f73a2de1
ci: don't collect filter output into String
( #471 )
...
We don't have to care if the output is big. If the user calls a filter
with a big input, then they should know that the output will probably be
even bigger.
2025-06-02 21:30:44 +02:00
René Kijewski
96796cb1aa
ci: don't collect filter output into String
...
We don't have to care if the output is big. If the user calls a filter
with a big input, then they should know that the output will probably be
even bigger.
2025-06-02 00:40:43 +02:00