Skip to content

Commit f4e3336

Browse files
mliew21396haoqunjiang
authored andcommitted
feat: add 'use' tag of SVG to 'transformAssetUrls' option as default (#45)
1 parent ad4affc commit f4e3336

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ interface TemplateCompileOptions {
8181
// source: 'src',
8282
// img: 'src',
8383
// image: 'xlink:href'
84+
// use: 'xlink:href'
8485
// }
8586
transformAssetUrls?: AssetURLOptions | boolean
8687

lib/templateCompilerModules/assetUrl.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ const defaultOptions: AssetURLOptions = {
1010
video: ['src', 'poster'],
1111
source: 'src',
1212
img: 'src',
13-
image: ['xlink:href', 'href']
13+
image: ['xlink:href', 'href'],
14+
use: ['xlink:href', 'href']
1415
}
1516

1617
export default (userOptions?: AssetURLOptions) => {

test/compileTemplate.spec.ts

+15-7
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ test('transform srcset', () => {
152152
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink">
153153
<image xlink:href="./logo.png" />
154154
</svg>
155+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink">
156+
<use xlink:href="./logo.png"/>
157+
</svg>
158+
</svg>
155159
<img src="./logo.png" srcset="./logo.png">
156160
<img src="./logo.png" srcset="./logo.png 2x">
157161
<img src="./logo.png" srcset="./logo.png, ./logo.png 2x">
@@ -183,16 +187,20 @@ test('transform srcset', () => {
183187
expect(vnode.children[2].children[0].data.attrs['xlink:href']).toBe(
184188
'test-url'
185189
)
190+
// use tag (SVG)
191+
expect(vnode.children[4].children[0].data.attrs['xlink:href']).toBe(
192+
'test-url'
193+
)
186194

187195
// image tag with srcset
188-
expect(vnode.children[4].data.attrs.srcset).toBe('test-url')
189-
expect(vnode.children[6].data.attrs.srcset).toBe('test-url 2x')
196+
expect(vnode.children[6].data.attrs.srcset).toBe('test-url')
197+
expect(vnode.children[8].data.attrs.srcset).toBe('test-url 2x')
190198
// image tag with multiline srcset
191-
expect(vnode.children[8].data.attrs.srcset).toBe('test-url, test-url 2x')
192-
expect(vnode.children[10].data.attrs.srcset).toBe('test-url 2x, test-url')
193-
expect(vnode.children[12].data.attrs.srcset).toBe('test-url 2x, test-url 3x')
194-
expect(vnode.children[14].data.attrs.srcset).toBe(
199+
expect(vnode.children[10].data.attrs.srcset).toBe('test-url, test-url 2x')
200+
expect(vnode.children[12].data.attrs.srcset).toBe('test-url 2x, test-url')
201+
expect(vnode.children[14].data.attrs.srcset).toBe('test-url 2x, test-url 3x')
202+
expect(vnode.children[16].data.attrs.srcset).toBe(
195203
'test-url, test-url 2x, test-url 3x'
196204
)
197-
expect(vnode.children[16].data.attrs.srcset).toBe('test-url 2x, test-url 3x')
205+
expect(vnode.children[18].data.attrs.srcset).toBe('test-url 2x, test-url 3x')
198206
})

0 commit comments

Comments
 (0)