tailwindcss/crates/oxide/src
Robin Malfait d5ca0aeac9
Handle template toolkit %]…[% syntax (#20269)
This PR handles template toolkit syntax as a pre-processor step such
that `%]` and `[%` are seen as valid boundary characters.

This is handled for the `.tt`, `.tt2` and `.tx` file extensions. It's
not handled if this syntax is used in `.html` files because then
everybody pays a pre processor cost even if you don't need this syntax
in most cases.

This now ensures that a `template.tx` like this:
```html
<div class="[% IF $is_open %]bg-white/40[% ELSE %]bg-white/10[% END %]"></div>
<!--                         ^^^^^^^^^^^          ^^^^^^^^^^^              -->
```
Extracts the classes in between those conditions correctly.

This also fixes a small issue related to Maud, a template engine for
Rust where conditionals like `p.text-black[condition]` caused the
`text-black` class not to be extracted. This is fixed as part of this PR
because it was commented on the linked issue.

Fixes: #20233 

## Test plan

1. Added a new extractor
2. Added regression tests
3. All existing tests pass
2026-06-22 15:40:58 +02:00
..
extractor Handle template toolkit %]…[% syntax (#20269) 2026-06-22 15:40:58 +02:00
fixtures Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00
scanner Handle template toolkit %]…[% syntax (#20269) 2026-06-22 15:40:58 +02:00
cursor.rs Improve performance in bigger projects (#19632) 2026-02-17 20:15:20 +01:00
fast_skip.rs Improve performance in bigger projects (#19632) 2026-02-17 20:15:20 +01:00
glob.rs A bit of cleanup (#17394) 2025-03-26 12:08:53 -04:00
lib.rs Add @source not support (#17255) 2025-03-25 15:54:41 +01:00
main.rs Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00
paths.rs Fix integration tests on Windows (#14824) 2024-10-30 11:26:29 +00:00
throughput.rs Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00