BLOG-48 SEO Improvement #116

Merged
squid merged 5 commits from BLOG-48_seo_improve into main 2025-08-05 11:25:40 +08:00
2 changed files with 34 additions and 1 deletions
Showing only changes of commit a81e6cf126 - Show all commits

View File

@ -5,6 +5,7 @@
import markdownit from 'markdown-it'; import markdownit from 'markdown-it';
import SafeHtml from '$lib/common/framework/ui/SafeHtml.svelte'; import SafeHtml from '$lib/common/framework/ui/SafeHtml.svelte';
import generateTitle from '$lib/common/framework/ui/generateTitle'; import generateTitle from '$lib/common/framework/ui/generateTitle';
import StructuredData from '$lib/post/framework/ui/StructuredData.svelte';
const { id }: { id: number } = $props(); const { id }: { id: number } = $props();
@ -19,8 +20,14 @@
<svelte:head> <svelte:head>
<title>{generateTitle(state.data?.info.title)}</title> <title>{generateTitle(state.data?.info.title)}</title>
{#if state.data?.info.description} {#if state.data}
<meta name="description" content={state.data.info.description} /> <meta name="description" content={state.data.info.description} />
<StructuredData
headline={state.data.info.title}
description={state.data.info.description}
datePublished={state.data.info.publishedTime}
image={state.data.info.previewImageUrl}
/>
{/if} {/if}
</svelte:head> </svelte:head>
<article class="container prose pb-10 prose-gray"> <article class="container prose pb-10 prose-gray">

View File

@ -0,0 +1,26 @@
<script lang="ts">
/* eslint-disable svelte/no-at-html-tags */
const {
headline,
description,
datePublished,
image
}: {
headline: string;
description: string;
datePublished: Date;
image: URL;
} = $props();
const structuredData = $derived({
'@context': 'https://schema.org',
'@type': 'BlogPosting',
headline: headline,
description: description,
datePublished: datePublished.toISOString(),
image: image.href
});
</script>
{@html `<script type="application/ld+json">${JSON.stringify(structuredData)}<\/script>`}