Skip to content

Commit

Permalink
fix(format/html): fix extra characters getting added in attribute quo…
Browse files Browse the repository at this point in the history
…tes (#5128)
  • Loading branch information
dyc3 authored Feb 16, 2025
1 parent 3065eb4 commit 1949e57
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 123 deletions.
10 changes: 7 additions & 3 deletions crates/biome_html_formatter/src/html/auxiliary/string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ impl FormatNodeRule<HtmlString> for FormatHtmlString {
let HtmlStringFields { value_token } = node.as_fields();

// Prettier always uses double quotes for HTML strings, regardless of configuration.
// Unless the string contains a double quote, in which case it uses single quotes.
if let Ok(value) = value_token.as_ref() {
let value_text = value.text().trim();
let value_text = value.text_trimmed();

if !(value_text.starts_with('"') && value_text.ends_with('"')) {
let contains_double_quote = value_text.contains('"');
Expand All @@ -18,9 +19,12 @@ impl FormatNodeRule<HtmlString> for FormatHtmlString {
&& value_text.ends_with('\'')
&& !contains_double_quote
{
value.text_range().add_start(1.into()).sub_end(1.into())
value
.text_trimmed_range()
.add_start(1.into())
.sub_end(1.into())
} else {
value.text_range()
value.text_trimmed_range()
};

if !contains_double_quote {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ Indent script and style: false
-----

```html
<img src="foo.png'" alt='should keep "these" quotes' />
<img src="foo.png" alt='should keep "these" quotes' />
```
Original file line number Diff line number Diff line change
Expand Up @@ -90,29 +90,6 @@ and HTML5 Apps. It also documents Mozilla products, like Firefox OS.">
```diff
--- Prettier
+++ Biome
@@ -1,6 +1,6 @@
-<input name="address" maxlength="200" />
+<input name="address " maxlength="200" />
+<input name="address'" maxlength="200" />
<input name="address" maxlength="200" />
-<input name="address" maxlength="200" />
<div class="foo"></div>
<div class="foo"></div>
<div class="foo bar"></div>
@@ -18,11 +18,11 @@
<div attribute="">String</div>
<div attribute="">String</div>
<div attribute>String</div>
-<div attribute="">String</div>
<div attribute="">String</div>
+<div attribute="'">String</div>
<div attribute>String</div>
<div attribute="">String</div>
-<div attribute="">String</div>
+<div attribute="' ">String</div>
<div attribute="attribute = attribute"></div>
<div ATTRIBUTE>String</div>
<div ATTRIBUTE="">String</div>
@@ -61,8 +61,14 @@
data-index-number="12314"
data-parent="cars"
Expand All @@ -138,8 +115,8 @@ and HTML5 Apps. It also documents Mozilla products, like Firefox OS.">
# Output
```html
<input name="address " maxlength="200" />
<input name="address'" maxlength="200" />
<input name="address" maxlength="200" />
<input name="address" maxlength="200" />
<input name="address" maxlength="200" />
<div class="foo"></div>
<div class="foo"></div>
Expand All @@ -159,10 +136,10 @@ and HTML5 Apps. It also documents Mozilla products, like Firefox OS."
<div attribute="">String</div>
<div attribute>String</div>
<div attribute="">String</div>
<div attribute="'">String</div>
<div attribute="">String</div>
<div attribute>String</div>
<div attribute="">String</div>
<div attribute="' ">String</div>
<div attribute="">String</div>
<div attribute="attribute = attribute"></div>
<div ATTRIBUTE>String</div>
<div ATTRIBUTE="">String</div>
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,6 @@ Click here! Click here! Click here! Click here! Click here! Click here!
</div>
<div>
<button>
@@ -20,6 +21,6 @@
</button>
</div>
<video src="brave.webm">
- <track kind="subtitles" src="brave.en.vtt" srclang="en" label="English" />
- <track kind="subtitles" src="brave.en.vtt" srclang="en" label="English" />
+ <track kind="subtitles " src="brave.en.vtt " srclang="en " label="English" />
+ <track kind="subtitles " src="brave.en.vtt " srclang="en " label="English" />
</video>
```
# Output
Expand Down Expand Up @@ -77,7 +68,7 @@ Click here! Click here! Click here! Click here! Click here! Click here!
</button>
</div>
<video src="brave.webm">
<track kind="subtitles " src="brave.en.vtt " srclang="en " label="English" />
<track kind="subtitles " src="brave.en.vtt " srclang="en " label="English" />
<track kind="subtitles" src="brave.en.vtt" srclang="en" label="English" />
<track kind="subtitles" src="brave.en.vtt" srclang="en" label="English" />
</video>
```

0 comments on commit 1949e57

Please sign in to comment.