tailwindcss/crates
Robin Malfait 85c6e04f44
Ensure strings in Pug and Slim templates are handled correctly (#17000)
This PR fixes an issue where strings in the Pug and Slim pre-processor
were handled using the `string_machine`. However, the `string_machine`
is not for strings inside of Tailwind CSS classes which means that
whitespace is invalid.

This means that parts of the code that _are_ inside strings will not be
inside strings and parts of the code that are not inside strings will be
part of a potential string. This is a bit confusing to wrap your head
around, but here is a visual representation of the problem:

```
.join(' ')
        ^  3. start of new string, which means that the `)` _could_ be part of a string if a new `'` occurs later.
       ^   2. whitespace is not allowed, stop string
      ^    1. start of string
```

Fixes: #16998

# Test plan

1. Added new test
2. Existing tests still pass
3. Added a simple test helper to make sure that we can extract the
correct candidates _after_ pre-processing
2025-03-06 17:24:00 +01:00
..
classification-macros Improve internal DX around byte classification [1] (#16864) 2025-03-05 14:00:07 +01:00
node Prepare v4.0.11 release (#16987) 2025-03-06 11:09:39 +00:00
oxide Ensure strings in Pug and Slim templates are handled correctly (#17000) 2025-03-06 17:24:00 +01:00