From 6821b3d81208fa99126be71172b35e607ec372a7 Mon Sep 17 00:00:00 2001 From: joerdav Date: Thu, 1 Sep 2022 14:27:07 +0100 Subject: [PATCH] fix: regex syntax incorrect causing hyphenated classes to be sanitized. When including a hyphen in a regex it must come first: [-A-Z] --- runtime.go | 2 +- runtime_test.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/runtime.go b/runtime.go index ecdcadc1e..ed8a8407e 100644 --- a/runtime.go +++ b/runtime.go @@ -149,7 +149,7 @@ func (classes CSSClasses) String() string { return sb.String() } -var safeClassName = regexp.MustCompile(`^-?[_a-zA-Z]+[_-a-zA-Z0-9]*$`) +var safeClassName = regexp.MustCompile(`^-?[_a-zA-Z]+[-_a-zA-Z0-9]*$`) const fallbackClassName = ConstantCSSClass("--templ-css-class-safe-name") diff --git a/runtime_test.go b/runtime_test.go index 2b8177aab..ef904013d 100644 --- a/runtime_test.go +++ b/runtime_test.go @@ -199,6 +199,14 @@ func TestClassSanitization(t *testing.T) { input: `safe`, expected: `safe`, }, + { + input: `safe-name`, + expected: "safe-name", + }, + { + input: `safe_name`, + expected: "safe_name", + }, { input: `!unsafe`, expected: "--templ-css-class-safe-name",