苗条头标题后缀
Svelte head title suffix
我想在每个 Svelte 页面上添加标题后缀,如 - mywebsite
。
我正在努力寻找轻松简单的方法。
在 svelte 网站源上,我们可以看到他们是手动完成的:https://github.com/sveltejs/svelte/blob/1273f978084aaf4d7c697b2fb456314839c3c90d/site/src/routes/docs/index.svelte#L15
我开始创建这样的组件:
<script>
export let title = false;
</script>
<svelte:head>
<title>
{#if title}
{title} • WebSite
{:else}
Website • Home suffix
{/if}
</title>
</svelte:head>
但是:
- 我有一个
<title> can only contain text and {tags}svelte(illegal-structure)
错误
- 我不确定这是最简单的方法。
如何实现我想做的事情?
由于 <title>
只能包含文本或 {tags}
您可以使用三元运算符计算文档标题。
例子
<script>
export let title = false;
</script>
<svelte:head>
<title>{title ? `${title} • WebSite` : 'Website • Home suffix'}</title>
</svelte:head>
虽然在标记的 内部 使用三元组工作得很好,反应性语句可能有助于清理它:
<script>
export let title = false;
$: fullTitle = title
? `${title} • WebSite`
: 'Website • Home suffix';
</script>
<svelte:head>
<title>{fullTitle}</title>
</svelte:head>
你也可以使用小型商店。
在这里您可以找到 REPL 示例:
https://svelte.dev/repl/b604a75a8a344527a39f10cab7b7ee66?version=3.32.0
import { writable } from 'svelte/store';
function createTitle() {
const {subscribe, set, update} = writable('');
return {
subscribe,
set: (value) => {
set(`${value} • WebSite`)
},
clear: () => {
set('Website • Home suffix');
}
}
}
export const title = createTitle();
然后当你想设置新的标题时,你可以使用:
title.set('page title')
商店会自动添加后缀...
如果要显示主标题调用:
title.reset()
我想在每个 Svelte 页面上添加标题后缀,如 - mywebsite
。
我正在努力寻找轻松简单的方法。
在 svelte 网站源上,我们可以看到他们是手动完成的:https://github.com/sveltejs/svelte/blob/1273f978084aaf4d7c697b2fb456314839c3c90d/site/src/routes/docs/index.svelte#L15
我开始创建这样的组件:
<script>
export let title = false;
</script>
<svelte:head>
<title>
{#if title}
{title} • WebSite
{:else}
Website • Home suffix
{/if}
</title>
</svelte:head>
但是:
- 我有一个
<title> can only contain text and {tags}svelte(illegal-structure)
错误 - 我不确定这是最简单的方法。
如何实现我想做的事情?
由于 <title>
只能包含文本或 {tags}
您可以使用三元运算符计算文档标题。
例子
<script>
export let title = false;
</script>
<svelte:head>
<title>{title ? `${title} • WebSite` : 'Website • Home suffix'}</title>
</svelte:head>
虽然在标记的 内部 使用三元组工作得很好,反应性语句可能有助于清理它:
<script>
export let title = false;
$: fullTitle = title
? `${title} • WebSite`
: 'Website • Home suffix';
</script>
<svelte:head>
<title>{fullTitle}</title>
</svelte:head>
你也可以使用小型商店。
在这里您可以找到 REPL 示例:
https://svelte.dev/repl/b604a75a8a344527a39f10cab7b7ee66?version=3.32.0
import { writable } from 'svelte/store';
function createTitle() {
const {subscribe, set, update} = writable('');
return {
subscribe,
set: (value) => {
set(`${value} • WebSite`)
},
clear: () => {
set('Website • Home suffix');
}
}
}
export const title = createTitle();
然后当你想设置新的标题时,你可以使用:
title.set('page title')
商店会自动添加后缀...
如果要显示主标题调用:
title.reset()