fix(html): ignore empty selector segments in ScopeVariant
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-03 18:56:57 +00:00
parent 1958cc79b1
commit 511a10f54b
2 changed files with 16 additions and 4 deletions

View file

@ -82,14 +82,18 @@ func ScopeVariant(name, selector string) string {
}
parts := strings.Split(selector, ",")
scoped := make([]string, 0, len(parts))
for i := range parts {
parts[i] = strings.TrimSpace(parts[i])
if parts[i] == "" {
part := strings.TrimSpace(parts[i])
if part == "" {
continue
}
parts[i] = scope + " " + parts[i]
scoped = append(scoped, scope+" "+part)
}
return strings.Join(parts, ", ")
if len(scoped) == 0 {
return scope
}
return strings.Join(scoped, ", ")
}
// responsive.go: Variant adds a named layout variant (e.g., "desktop", "tablet", "mobile").

View file

@ -200,3 +200,11 @@ func TestScopeVariant_MultipleSelectors(t *testing.T) {
t.Fatalf("ScopeVariant with selector list = %q, want %q", got, want)
}
}
func TestScopeVariant_IgnoresEmptySelectorSegments(t *testing.T) {
got := ScopeVariant("desktop", ".nav, , .sidebar,")
want := `[data-variant="desktop"] .nav, [data-variant="desktop"] .sidebar`
if got != want {
t.Fatalf("ScopeVariant should skip empty selector segments = %q, want %q", got, want)
}
}