seo: align public identity and social metadata

This commit is contained in:
2026-09-05 00:41:08 +03:00
parent da1b5882ed
commit eae03b2cd2
6 changed files with 252 additions and 52 deletions

View File

@@ -33,9 +33,6 @@ const exactlyOne = (source, expression, label) => {
};
const metadataMarkup = (metadata) => {
const image = metadata.openGraph.image === undefined
? ''
: `\n <meta property="og:image" content="${escapeHtml(metadata.openGraph.image)}" />`;
return [
` <meta name="description" content="${escapeHtml(metadata.description)}" />`,
` <meta name="robots" content="${escapeHtml(metadata.robots)}" />`,
@@ -43,7 +40,16 @@ const metadataMarkup = (metadata) => {
` <meta property="og:type" content="${metadata.openGraph.type}" />`,
` <meta property="og:title" content="${escapeHtml(metadata.openGraph.title)}" />`,
` <meta property="og:description" content="${escapeHtml(metadata.openGraph.description)}" />`,
` <meta property="og:url" content="${escapeHtml(metadata.openGraph.url)}" />${image}`,
` <meta property="og:url" content="${escapeHtml(metadata.openGraph.url)}" />`,
...(metadata.openGraph.image === undefined
? []
: [` <meta property="og:image" content="${escapeHtml(metadata.openGraph.image)}" />`]),
` <meta name="twitter:card" content="${metadata.twitter.card}" />`,
` <meta name="twitter:title" content="${escapeHtml(metadata.twitter.title)}" />`,
` <meta name="twitter:description" content="${escapeHtml(metadata.twitter.description)}" />`,
...(metadata.twitter.image === undefined
? []
: [` <meta name="twitter:image" content="${escapeHtml(metadata.twitter.image)}" />`]),
` <script type="application/ld+json">${metadata.serializedJsonLd}</script>`,
].join('\n');
};