From af45a26ef43f64bbc6a42d45b06e0b050c93f2e3 Mon Sep 17 00:00:00 2001 From: Loris Sigrist Date: Thu, 22 Feb 2024 21:56:40 +0100 Subject: [PATCH 1/4] Support {AttributeShorthand} syntax --- packages/enhanced-img/src/preprocessor.js | 4 ++++ packages/enhanced-img/test/Input.svelte | 4 ++++ packages/enhanced-img/test/Output.svelte | 13 +++++++++++++ 3 files changed, 21 insertions(+) diff --git a/packages/enhanced-img/src/preprocessor.js b/packages/enhanced-img/src/preprocessor.js index 0575f88c5259..5dcc54431d8e 100644 --- a/packages/enhanced-img/src/preprocessor.js +++ b/packages/enhanced-img/src/preprocessor.js @@ -53,6 +53,10 @@ export function image(opts) { .trim(); s.update(node.start, node.end, dynamic_img_to_picture(content, node, src_var_name)); return; + } else if (src_attribute.type === 'AttributeShorthand') { + const src_var_name = content.substring(src_attribute.start, src_attribute.end).trim(); + s.update(node.start, node.end, dynamic_img_to_picture(content, node, src_var_name)); + return; } const original_url = src_attribute.raw.trim(); diff --git a/packages/enhanced-img/test/Input.svelte b/packages/enhanced-img/test/Input.svelte index 72b12eefc365..2c30ecea46cb 100644 --- a/packages/enhanced-img/test/Input.svelte +++ b/packages/enhanced-img/test/Input.svelte @@ -42,3 +42,7 @@ + +{#each images as src} + +{/each} diff --git a/packages/enhanced-img/test/Output.svelte b/packages/enhanced-img/test/Output.svelte index fe7caca8a830..89f93604ee69 100644 --- a/packages/enhanced-img/test/Output.svelte +++ b/packages/enhanced-img/test/Output.svelte @@ -50,3 +50,16 @@ + +{#each images as src} + {#if typeof src === 'string'} + opt-in test +{:else} + + {#each Object.entries(src.sources) as [format, srcset]} + + {/each} + opt-in test + +{/if} +{/each} \ No newline at end of file From 13772acc2ee68b260c1e3a1e831bf51e67ac8152 Mon Sep 17 00:00:00 2001 From: Loris Sigrist Date: Thu, 22 Feb 2024 21:59:25 +0100 Subject: [PATCH 2/4] Add changeset --- .changeset/good-parrots-act.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/good-parrots-act.md diff --git a/.changeset/good-parrots-act.md b/.changeset/good-parrots-act.md new file mode 100644 index 000000000000..fc5dc8c838b9 --- /dev/null +++ b/.changeset/good-parrots-act.md @@ -0,0 +1,5 @@ +--- +"@sveltejs/enhanced-img": patch +--- + +fix: support attribute shorthand syntax on `` From 502ce5d3e60da24cf16fe715bbf27e832f7e2ee1 Mon Sep 17 00:00:00 2001 From: "Willow (GHOST)" Date: Sun, 3 Mar 2024 07:10:37 +0000 Subject: [PATCH 3/4] Update .changeset/good-parrots-act.md --- .changeset/good-parrots-act.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/good-parrots-act.md b/.changeset/good-parrots-act.md index fc5dc8c838b9..ea0bb9f28012 100644 --- a/.changeset/good-parrots-act.md +++ b/.changeset/good-parrots-act.md @@ -2,4 +2,4 @@ "@sveltejs/enhanced-img": patch --- -fix: support attribute shorthand syntax on `` +fix: support shorthand attribute syntax From e648afeb74dbdea81f0c8f8e85def68596dd4da0 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Thu, 14 Mar 2024 08:20:19 -0700 Subject: [PATCH 4/4] tweak test --- packages/enhanced-img/test/Input.svelte | 7 +++---- packages/enhanced-img/test/Output.svelte | 25 ++++++++++++------------ 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/packages/enhanced-img/test/Input.svelte b/packages/enhanced-img/test/Input.svelte index 2c30ecea46cb..84e067bbb941 100644 --- a/packages/enhanced-img/test/Input.svelte +++ b/packages/enhanced-img/test/Input.svelte @@ -2,6 +2,7 @@ import manual_image1 from './no.png'; import manual_image2 from './no.svg'; + const src = manual_image1; const images = [manual_image1, manual_image2]; let foo: string = 'bar'; @@ -31,6 +32,8 @@ + + {#each images as image} @@ -42,7 +45,3 @@ - -{#each images as src} - -{/each} diff --git a/packages/enhanced-img/test/Output.svelte b/packages/enhanced-img/test/Output.svelte index 89f93604ee69..8873ec20a811 100644 --- a/packages/enhanced-img/test/Output.svelte +++ b/packages/enhanced-img/test/Output.svelte @@ -5,6 +5,7 @@ import manual_image2 from './no.svg'; + const src = manual_image1; const images = [manual_image1, manual_image2]; let foo: string = 'bar'; @@ -30,6 +31,17 @@ absolute path test +{#if typeof src === 'string'} + attribute shorthand test +{:else} + + {#each Object.entries(src.sources) as [format, srcset]} + + {/each} + attribute shorthand test + +{/if} + svg test {#each images as image} @@ -50,16 +62,3 @@ - -{#each images as src} - {#if typeof src === 'string'} - opt-in test -{:else} - - {#each Object.entries(src.sources) as [format, srcset]} - - {/each} - opt-in test - -{/if} -{/each} \ No newline at end of file