fix links for local static files
This commit is contained in:
parent
9b82175daa
commit
5b21f3b3a7
@ -10,20 +10,35 @@
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ext(url) {
|
||||||
|
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export let href;
|
export let href;
|
||||||
export let rel = '';
|
export let rel = null;
|
||||||
|
|
||||||
|
let url = null;
|
||||||
|
try {
|
||||||
|
url = new URL(href);
|
||||||
|
}
|
||||||
|
catch {}
|
||||||
|
|
||||||
|
let isLocal = false;
|
||||||
|
if (href.startsWith('/') || url?.host === $page.url.host) {
|
||||||
|
isLocal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if href is not a valid url, assume that it's a relative link
|
||||||
|
const path = url?.pathname || href;
|
||||||
|
// set rel="external" on links to static files (i.e. local links with a dot in them)
|
||||||
|
if (isLocal && path.search(/\.\w+$/) > -1) {
|
||||||
|
rel = 'external';
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<a data-sveltekit-preload-data={isLocal ? 'hover' : null} {href} {rel}>
|
||||||
{#if href.startsWith('/') || host(href) === $page.host}
|
<slot></slot>
|
||||||
<a data-sveltekit-preload-data="hover" {href} {rel}>
|
</a>
|
||||||
<slot></slot>
|
|
||||||
</a>
|
|
||||||
{:else}
|
|
||||||
<a {href}>
|
|
||||||
<slot></slot>
|
|
||||||
</a>
|
|
||||||
{/if}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user