only render one <title>

pull/4250/head
Tan Li Hau 6 years ago
parent 3d9655a2a1
commit 5fb0678175

@ -1,10 +1,16 @@
import Renderer, { RenderOptions } from '../Renderer';
import Title from '../../nodes/Title';
import { x } from 'code-red';
export default function(node: Title, renderer: Renderer, options: RenderOptions) {
renderer.push();
renderer.add_string(`<title>`);
renderer.render(node.children, options);
renderer.add_string(`</title>`);
const result = renderer.pop();
renderer.add_expression(x`($$result.title = ${result}, "")`);
}

@ -103,12 +103,13 @@ export function create_ssr_component(fn) {
on_destroy = [];
const result: {
title: string;
head: string;
css: Set<{
map: null;
code: string;
}>;
} = { head: '', css: new Set() };
} = { title: '', head: '', css: new Set() };
const html = $$render(result, props, {}, options);
@ -120,7 +121,7 @@ export function create_ssr_component(fn) {
code: Array.from(result.css).map(css => css.code).join('\n'),
map: null // TODO
},
head: result.head
head: result.title + result.head
};
},

@ -0,0 +1,3 @@
<svelte:head>
<title>A</title>
</svelte:head>

@ -0,0 +1,3 @@
<svelte:head>
<title>B</title>
</svelte:head>

@ -0,0 +1,10 @@
<script>
import A from './A.svelte';
import B from './B.svelte';
</script>
<svelte:head>
<title>Main</title>
</svelte:head>
<A />
<B />
Loading…
Cancel
Save