Add personalized meta tags and optimize horoscope images for sharing
Implement dynamic meta tag generation for horoscope pages, including daily, weekly, and monthly predictions, and optimize the OG image for improved social sharing previews. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: dea1fe98-0dfb-4e47-9b94-3c50decbba8a Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/OPD8Ro3 Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -113,6 +113,46 @@ export async function setupVite(server: Server, app: Express) {
|
||||
}
|
||||
}
|
||||
|
||||
if (url.match(/^\/horoskop(\/|$|\?)/)) {
|
||||
template = stripExistingMeta(template);
|
||||
const signMatch = url.match(/^\/horoskop\/([^?#]+)/);
|
||||
const signName = signMatch ? decodeURIComponent(signMatch[1]) : null;
|
||||
const capitalSign = signName ? signName.charAt(0).toUpperCase() + signName.slice(1) : null;
|
||||
|
||||
const title = capitalSign
|
||||
? `${capitalSign} Horoskop – Tages-, Wochen- & Monatshoroskop | Folx Music Television`
|
||||
: "Horoskop – Tages-, Wochen- & Monatshoroskop für alle Sternzeichen | Folx Music Television";
|
||||
const desc = capitalSign
|
||||
? `${capitalSign} Horoskop: Tägliches, wöchentliches und monatliches Horoskop. Liebe, Beruf & Gesundheit bei FOLX TV.`
|
||||
: "Kostenloses Tageshoroskop, Wochenhoroskop & Monatshoroskop für alle 12 Sternzeichen. Liebe, Beruf, Gesundheit bei FOLX TV.";
|
||||
const horoUrl = `${canonicalBase}${signName ? `/horoskop/${signName}` : "/horoskop"}`;
|
||||
const horoImage = `${canonicalBase}/images/horoskop-og.jpg`;
|
||||
|
||||
const horoTags = [
|
||||
`<meta property="og:title" content="${escapeHtml(title)}" />`,
|
||||
`<meta property="og:description" content="${escapeHtml(desc)}" />`,
|
||||
`<meta property="og:type" content="website" />`,
|
||||
`<meta property="og:url" content="${escapeHtml(horoUrl)}" />`,
|
||||
`<meta property="og:image" content="${escapeHtml(horoImage)}" />`,
|
||||
`<meta property="og:image:secure_url" content="${escapeHtml(horoImage)}" />`,
|
||||
`<meta property="og:image:width" content="1200" />`,
|
||||
`<meta property="og:image:height" content="675" />`,
|
||||
`<meta property="og:image:type" content="image/jpeg" />`,
|
||||
`<meta property="og:site_name" content="Folx Music Television" />`,
|
||||
`<meta property="og:locale" content="de_DE" />`,
|
||||
`<meta name="twitter:card" content="summary_large_image" />`,
|
||||
`<meta name="twitter:title" content="${escapeHtml(title)}" />`,
|
||||
`<meta name="twitter:description" content="${escapeHtml(desc)}" />`,
|
||||
`<meta name="twitter:image" content="${escapeHtml(horoImage)}" />`,
|
||||
`<meta name="description" content="${escapeHtml(desc)}" />`,
|
||||
`<meta name="keywords" content="Horoskop, Tageshoroskop, Wochenhoroskop, Monatshoroskop, Sternzeichen, Volksmusik, FOLX TV${capitalSign ? `, ${capitalSign}` : ""}" />`,
|
||||
`<link rel="canonical" href="${escapeHtml(horoUrl)}" />`,
|
||||
`<title>${escapeHtml(title)}</title>`,
|
||||
].join("\n ");
|
||||
|
||||
template = template.replace(/<title>[^<]*<\/title>/, horoTags);
|
||||
}
|
||||
|
||||
const page = await vite.transformIndexHtml(url, template);
|
||||
res.status(200).set({ "Content-Type": "text/html" }).end(page);
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user