This PR was merged into the 3.x branch.
Discussion
----------
[Doc] Tweaks in the escaping article
AS you can see in the redenred page (https://twig.symfony.com/doc/3.x/filters/escape.html) the tip about `html_attr` contains some uneeded line breaks.
This also tweaks another explanation to make it more clear.
Commits
-------
50327b5019 [Doc] Tweaks in the escaping article
This PR was merged into the 3.x branch.
Discussion
----------
Compile 'index' with repr (not string) in EmbedNode
Before this PR, the generated Template code had quotes around the index (integer) parameter value.
Commits
-------
e4d7915702 Compile 'index' with repr (not string) in EmbedNode
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Introduce registerUndefinedTestCallback
This is similar to `registerUndefinedFilterCallback` and `registerUndefinedFunctionCallback`
Commits
-------
cc12df995c Introduce registerUndefinedTestCallback
This PR was merged into the 3.x branch.
Discussion
----------
Fix intl test
Let's try to make it less fragile.
Commits
-------
41bfb6bd8b Fix intl test
This PR was merged into the 3.x branch.
Discussion
----------
Bump minimum Commonmark requirement
All previous versions have security issues
Commits
-------
8f970764e6 Bump minimum Commonmark requirement
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Support two words test guard
Extracted from https://github.com/twigphp/Twig/pull/4687
Commits
-------
30977bdea9 Support two words test guard
This PR was merged into the 3.x branch.
Discussion
----------
Improve documentation examples for `enum` and `enum_cases`
It may be obvious, but I first thought initializing an BackendEnum with a specific value could be possible with `enum(FQCN, value)`, but it does not, it always returns the first case instance (if exists).
Instead, `enum(FQCN).from(value)` must be used, and I think it's worth to improve `enum()` examples.
Commits
-------
def4abbd5e Improve documentation examples for `enum` and `enum_cases`
It may be obvious, but I first thought initializing an BackendEnum with a certain value could be possible with `enum(FQCN, value)`, but it does not, it always returns the first case instance (if exists).
Instead, `enum(FQCN).from(value)` must be used, I think it's worth to improve `enum()` examples.
This PR was merged into the 3.x branch.
Discussion
----------
Avoid errors when failing to guess the template info for an error
Someone reported on the Symfony Slack a case where they get a TypeError in `new \ReflectionObject($template)` in the guessing logic instead of seeing the original error they have (the one for which guessing was attempted), making it impossible to know the original error: https://symfony-devs.slack.com/archives/C01FN4EQNLX/p1756762972076319?thread_ts=1756753204.711889&cid=C01FN4EQNLX
I don't have a reproducer for that case (the original case involve a Symfony form theme, where the form renderer does weird usages of Twig which might lead to the backtrace not containing the expected template).
Not guessing the template file path and the original template line is better than breaking the error reporting.
Commits
-------
62747cee27 Avoid errors when failing to guess the template info for an error
This PR was merged into the 3.x branch.
Discussion
----------
Add note to format_datetime explaining how to install required extensions
Commits
-------
d0177b94cd Add note to format_datetime explaining how to install required extensions
This PR was merged into the 3.x branch.
Discussion
----------
Add missing use statements in ExtensionInterface
Fixes#4677
Note: The classes were used specifically in a ``@psalm`-return` doc statement. But as the repository does not have any psalm config, and does not check it in the CI, this seems to have gone unnoticed for a few months.
Commits
-------
8c78952757#4677: Add use statements for classes referenced in the getOperators `@psalm`-return doc
This PR was merged into the 3.x branch.
Discussion
----------
Allow usage of other Markdown converters than CommonMark in LeagueMarkdown
Since the `CommonMarkConverter` from `League\CommonMark` doesn't allow customizing the `Environment` class at construct-time, this simple change allows providing an instance the parent class, so we can both inject a config to the converter AND a custom list of extensions (like `CommonMarkCoreExtension`) via the constructor.
This PR fixes#3581
Commits
-------
81e66e96bf Update LeagueMarkdown.php
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Escaper performance: avoid static variables
Replace two static variables with `match` expressions.
And bypass a third static variable for the common charset `UTF-8`.
Commits
-------
823f50297b Escaper performance: avoid static variables
This PR was merged into the 3.x branch.
Discussion
----------
Fix compatibility with Symfony 8
Commits
-------
b6a105c952 Fix compatibility with Symfony 8
This PR was merged into the 3.x branch.
Discussion
----------
Add documentation for use_yield option
Documentation was present in the source code, but missing in the docs.
Commits
-------
b8827b412d Add documentation for use_yield option
This PR was merged into the 3.x branch.
Discussion
----------
Coding standard suggestion about empty content
Hi `@fabpot`
As suggested by `@stof` https://github.com/symfony/symfony/pull/60761#discussion_r2140647490
This would allow writing `{#--#}` rather than `{#- -#}` when following the twig coding standard.
Commits
-------
0b93a1fa5a Stof suggestion about empty content
This PR was merged into the 3.x branch.
Discussion
----------
Update templates.rst: Removing duplication
Page: https://twig.symfony.com/doc/3.x/templates.html#dot_operator
Reason: This is repeated a few lines further down.
Commits
-------
a26f43a6a6 Update templates.rst: Removing duplication
This PR was merged into the 3.x branch.
Discussion
----------
[CommonMark] Update configuration keys + allow extra keys for extensions
This PR adds missing keys from the current version of CommonMark (2.7).
It also fixes a bug where extra keys are removed. The original intent was to keep the extra keys, so extensions could be configured as well. Currently, these keys are removed, meaning extensions can not be configured.
Original PR #3737.
Commits
-------
a8aadc3e99 Update configuration keys + allow extra keys for extensions
This PR was merged into the 3.x branch.
Discussion
----------
replace typographic quote with straigt single quote
make DOCtor-RST 1.68 happy and account for OskarStark/doctor-rst#2011
Commits
-------
057ea92274 replace typographic quote with straigt single quote
This PR was merged into the 3.x branch.
Discussion
----------
[Docs] Add TwigCsFixer in tools list
Twig CS Fixer is already present in the code style / conventions page, but it feels to me very logical we see it on the "integration / tools" page.
Commits
-------
2184db3b9b Add TwigCsFixer in tools list