Add basic necessary SEO tags

This commit is contained in:
thiloho
2024-09-07 16:45:20 +02:00
parent 63dd99bd3d
commit 6a7e64ccaf
4 changed files with 41 additions and 10 deletions

View File

@@ -11,7 +11,8 @@
mainContent,
coverImage,
publicationDate,
footerAdditionalText
footerAdditionalText,
metaDescription
}: {
favicon: string;
title: string;
@@ -21,10 +22,11 @@
coverImage: string;
publicationDate: string;
footerAdditionalText: string;
metaDescription: string;
} = $props();
</script>
<Head {title} {favicon} nestingLevel={1} />
<Head {title} {favicon} nestingLevel={1} {metaDescription} />
<Nav {logoType} {logo} />

View File

@@ -2,8 +2,14 @@
const {
title,
favicon,
nestingLevel = 0
}: { title: string; favicon: string; nestingLevel?: number } = $props();
nestingLevel = 0,
metaDescription = null
}: {
title: string;
favicon: string;
nestingLevel?: number;
metaDescription: string | null;
} = $props();
</script>
<svelte:head>
@@ -11,6 +17,7 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{title}</title>
<meta name="description" content={metaDescription ?? title} />
<link rel="stylesheet" href={`${"../".repeat(nestingLevel)}styles.css`} />
{#if favicon}
<link rel="icon" href={favicon} />

View File

@@ -10,7 +10,8 @@
logo,
mainContent,
categorizedArticles,
footerAdditionalText
footerAdditionalText,
metaDescription
}: {
favicon: string;
title: string;
@@ -19,10 +20,11 @@
mainContent: string;
categorizedArticles: { [key: string]: { title: string }[] };
footerAdditionalText: string;
metaDescription: string;
} = $props();
</script>
<Head {title} {favicon} nestingLevel={1} />
<Head {title} {favicon} nestingLevel={1} {metaDescription} />
<Nav {logoType} {logo} isDocsTemplate={true} {categorizedArticles} isIndexPage={false} />

View File

@@ -158,7 +158,16 @@ const generateStaticFiles = async (websiteData: WebsiteData, isPreview: boolean
break;
}
const indexFileContents = head.concat(body);
const indexFileContents = `
<!DOCTYPE html>
<html lang="en">
<head>
${head}
</head>
<body>
${body}
</body>
</html>`;
let uploadDir = "";
@@ -199,7 +208,8 @@ const generateStaticFiles = async (websiteData: WebsiteData, isPreview: boolean
: "",
publicationDate: article.publication_date,
mainContent: md(article.main_content ?? ""),
footerAdditionalText: md(websiteData.additional_text ?? "")
footerAdditionalText: md(websiteData.additional_text ?? ""),
metaDescription: article.meta_description
}
}));
}
@@ -219,14 +229,24 @@ const generateStaticFiles = async (websiteData: WebsiteData, isPreview: boolean
: `${API_BASE_PREFIX}/rpc/retrieve_file?id=${websiteData.logo_image}`,
mainContent: md(article.main_content ?? ""),
categorizedArticles: websiteData.categorized_articles ?? [],
footerAdditionalText: md(websiteData.additional_text ?? "")
footerAdditionalText: md(websiteData.additional_text ?? ""),
metaDescription: article.meta_description
}
}));
}
break;
}
const articleFileContents = head.concat(body);
const articleFileContents = `
<!DOCTYPE html>
<html lang="en">
<head>
${head}
</head>
<body>
${body}
</body>
</html>`;
await writeFile(join(uploadDir, "articles", `${articleFileName}.html`), articleFileContents);
}