Skip to content

Commit 9fd4c48

Browse files
committed
Deprecate the spaceless filter
1 parent 727cbe9 commit 9fd4c48

8 files changed

Lines changed: 31 additions & 16 deletions

File tree

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# 3.12.0 (2024-XX-XX)
22

3+
* Deprecate the `spaceless` filter
34
* Deprecate some internal methods from `Parser`: `getBlockStack()`, `hasBlock()`, `getBlock()`, `hasMacro()`, `hasTraits()`, `getParent()`
45
* Deprecate passing `null` to `Twig\Parser::setParent()`
56
* Update `Node::__toString()` to include the node tag if set

doc/deprecated.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,9 @@ Templates
180180
in ``Environment::resolveTemplate()``, ``Environment::load()``, and
181181
``Template::loadTemplate()``); pass instances of ``Twig\TemplateWrapper``
182182
instead.
183+
184+
Filters
185+
-------
186+
187+
* The ``spaceless`` filter is deprecated as of Twig 3.12 and will be removed in
188+
Twig 4.0.

doc/filters/spaceless.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
``spaceless``
22
=============
33

4+
.. warning::
5+
6+
The ``spaceless`` filter is deprecated as of Twig 3.12.
7+
48
Use the ``spaceless`` filter to remove whitespace *between HTML tags*, not
59
whitespace within HTML tags or whitespace in plain text:
610

src/Extension/CoreExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ public function getFilters(): array
215215
new TwigFilter('striptags', [self::class, 'striptags']),
216216
new TwigFilter('trim', [self::class, 'trim']),
217217
new TwigFilter('nl2br', [self::class, 'nl2br'], ['pre_escape' => 'html', 'is_safe' => ['html']]),
218-
new TwigFilter('spaceless', [self::class, 'spaceless'], ['is_safe' => ['html']]),
218+
new TwigFilter('spaceless', [self::class, 'spaceless'], ['is_safe' => ['html'], 'deprecated' => '3.12', 'deprecating_package' => 'twig/twig']),
219219

220220
// array helpers
221221
new TwigFilter('join', [self::class, 'join']),
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
"spaceless" filter
3+
--DEPRECATION--
4+
Since twig/twig 3.12: Twig Filter "spaceless" is deprecated in index.twig at line 2.
5+
Since twig/twig 3.12: Twig Filter "spaceless" is deprecated in index.twig at line 3.
6+
Since twig/twig 3.12: Twig Filter "spaceless" is deprecated in index.twig at line 4.
7+
--TEMPLATE--
8+
{{ " <div> <div> foo </div> </div>"|spaceless }}
9+
*{{ ""|spaceless }}*
10+
*{{ null|spaceless }}*
11+
--DATA--
12+
return []
13+
--EXPECT--
14+
<div><div> foo </div></div>
15+
**
16+
**

tests/Fixtures/filters/spaceless.test

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/Fixtures/macros/macro_with_capture.test

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ macro
44
{{ _self.some_macro() }}
55

66
{% macro some_macro() %}
7-
{% apply spaceless %}
7+
{% apply upper %}
88
{% if true %}foo{% endif %}
99
{% endapply %}
1010
{% endmacro %}
1111
--DATA--
1212
return []
1313
--EXPECT--
14-
foo
14+
FOO

tests/Fixtures/tags/apply/scope.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"apply" tag does not create a new scope
33
--TEMPLATE--
44
{% set foo = 'baz' %}
5-
{% apply spaceless %}
5+
{% apply upper %}
66
{% set foo = 'foo' %}
77
{% set bar = 'bar' %}
88
{% endapply %}

0 commit comments

Comments
 (0)