Skip to content

Commit 42289d7

Browse files
committed
minifiers: Keep x-bind and blank namespace in SVG minification
Update tdewolff/minify to v2.24.11 and add "" and "x-bind" to KeepNamespaces to prevent Alpine.js directives from being stripped in SVGs. This is a new option in tdewolff/minify v2.24.11, and it is needed to prevent breakage of Alpine.js, and possilby others, directives in SVGs. Fixes #14669
1 parent 0c013c2 commit 42289d7

4 files changed

Lines changed: 12 additions & 4 deletions

File tree

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ require (
6666
github.com/spf13/cobra v1.10.2
6767
github.com/spf13/fsync v0.10.1
6868
github.com/spf13/pflag v1.0.10
69-
github.com/tdewolff/minify/v2 v2.24.10
70-
github.com/tdewolff/parse/v2 v2.8.10
69+
github.com/tdewolff/minify/v2 v2.24.11
70+
github.com/tdewolff/parse/v2 v2.8.11
7171
github.com/tetratelabs/wazero v1.11.0
7272
github.com/yuin/goldmark v1.7.17
7373
github.com/yuin/goldmark-emoji v1.0.6

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,8 +495,12 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu
495495
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
496496
github.com/tdewolff/minify/v2 v2.24.10 h1:SjOOY2Y3Uv34WY4wtyUzJA2T1Xd1v1zQVSZvPP0A/h4=
497497
github.com/tdewolff/minify/v2 v2.24.10/go.mod h1:fXkGpJ4gel+z1nmeIjVtKmxGZ4ZXd7g1gA3dfTz5/j8=
498+
github.com/tdewolff/minify/v2 v2.24.11 h1:JlANsiWaRBXedoYtsiZgY3YFkdr42oF32vp2SLgQKi4=
499+
github.com/tdewolff/minify/v2 v2.24.11/go.mod h1:exq1pjdrh9uAICdfVKQwqz6MsJmWmQahZuTC6pTO6ro=
498500
github.com/tdewolff/parse/v2 v2.8.10 h1:5a8o388UmuiU3zlOBJ56PN0rxVi67LRNED/zzuHAfC0=
499501
github.com/tdewolff/parse/v2 v2.8.10/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo=
502+
github.com/tdewolff/parse/v2 v2.8.11 h1:SGyjEy3xEqd+W9WVzTlTQ5GkP/en4a1AZNZVJ1cvgm0=
503+
github.com/tdewolff/parse/v2 v2.8.11/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo=
500504
github.com/tdewolff/test v1.0.11 h1:FdLbwQVHxqG16SlkGveC0JVyrJN62COWTRyUFzfbtBE=
501505
github.com/tdewolff/test v1.0.11/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8=
502506
github.com/tetratelabs/wazero v1.11.0 h1:+gKemEuKCTevU4d7ZTzlsvgd1uaToIDtlQlmNbwqYhA=

minifiers/config.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ var defaultTdewolffConfig = TdewolffConfig{
4646
},
4747
JSON: json.Minifier{},
4848
SVG: svg.Minifier{
49-
KeepComments: false,
50-
Precision: 0, // 0 means no trimming
49+
KeepComments: false,
50+
Precision: 0, // 0 means no trimming
51+
KeepNamespaces: []string{"", "x-bind"},
5152
},
5253
XML: xml.Minifier{
5354
KeepWhitespace: false,

minifiers/minifiers_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ func TestBugs(t *testing.T) {
158158
{media.Builtin.HTMLType, "<i class='fas fa-tags fa-fw'></i> Tags", `<i class='fas fa-tags fa-fw'></i> Tags`},
159159
// Issue #13082
160160
{media.Builtin.HTMLType, "<gcse:searchresults-only></gcse:searchresults-only>", `<gcse:searchresults-only></gcse:searchresults-only>`},
161+
// Issue #14669.
162+
{media.Builtin.SVGType, `<use x-bind:href="myicon">`, `<use x-bind:href="myicon">`},
163+
{media.Builtin.SVGType, `<use :href="myicon">`, `<use :href="myicon">`},
161164
} {
162165
var b bytes.Buffer
163166

0 commit comments

Comments
 (0)