fix: preprocess a script or style closed with whitespace before the bracket

pull/18823/head
Florent Gallaire 2 weeks ago
parent 6eb720a1b7
commit 76dc216f03

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: preprocess `<script>` and `<style>` closed with whitespace before the bracket

@ -251,9 +251,9 @@ function stringify_tag_attributes(attributes) {
}
const regex_style_tags =
/<!--[^]*?-->|<style((?:\s+[^=>'"/\s]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"/\s]+)*\s*)(?:\/>|>([\S\s]*?)<\/style>)/g;
/<!--[^]*?-->|<style((?:\s+[^=>'"/\s]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"/\s]+)*\s*)(?:\/>|>([\S\s]*?)<\/style\s*>)/g;
const regex_script_tags =
/<!--[^]*?-->|<script((?:\s+[^=>'"/\s]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"/\s]+)*\s*)(?:\/>|>([\S\s]*?)<\/script>)/g;
/<!--[^]*?-->|<script((?:\s+[^=>'"/\s]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"/\s]+)*\s*)(?:\/>|>([\S\s]*?)<\/script\s*>)/g;
/**
* Calculate the updates required to process all instances of the specified tag.

@ -0,0 +1,8 @@
import { test } from '../../test';
export default test({
preprocess: {
script: ({ content }) => ({ code: content.replace('__NAME__', 'world') }),
style: ({ content }) => ({ code: content.replace('red', 'blue') })
}
});

@ -0,0 +1,11 @@
<script>
let name = '__NAME__';
</script >
<p>{name}</p>
<style>
p {
color: red;
}
</style >

@ -0,0 +1,11 @@
<script>
let name = 'world';
</script>
<p>{name}</p>
<style>
p {
color: blue;
}
</style>
Loading…
Cancel
Save