diff --git a/crates/webui-parser/benches/parser_bench.rs b/crates/webui-parser/benches/parser_bench.rs
index 2767837b9..61b2e368b 100644
--- a/crates/webui-parser/benches/parser_bench.rs
+++ b/crates/webui-parser/benches/parser_bench.rs
@@ -625,6 +625,34 @@ fn client_template_directives_bench(c: &mut Criterion) {
});
}
+fn client_template_whitespace_bench(c: &mut Criterion) {
+ let lf = format!(
+ "
{{details}}\n \n",
+ )?;
+ let records = parser.into_fragment_records();
+ assert_stream!(
+ records,
+ "test.html",
+ [
+ raw(" "),
+ signal("details"),
+ raw("\n "),
+ ]
+ );
+ Ok(())
+ }
+
#[test]
fn test_invalid_for_each_is_template_diagnostic() {
let mut parser = HtmlParser::new();
@@ -6697,7 +6719,15 @@ mod tests {
[for_loop("item", "category.items", "for-2"),]
);
- assert_stream!(fragment_records, "for-2", [signal("item.title"),]);
+ assert_stream!(
+ fragment_records,
+ "for-2",
+ [
+ raw("\n "),
+ signal("item.title"),
+ raw("\n "),
+ ]
+ );
}
#[test]
diff --git a/crates/webui-parser/src/plugin/webui.rs b/crates/webui-parser/src/plugin/webui.rs
index a517ba837..63e63bc49 100644
--- a/crates/webui-parser/src/plugin/webui.rs
+++ b/crates/webui-parser/src/plugin/webui.rs
@@ -541,6 +541,7 @@ struct TemplateSource<'a> {
source: &'a str,
range: Range` or `