Improve website content and fix navigation issues
Update website meta tags, SEO information, and fix a banner overlay bug to ensure all interactive elements are clickable. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 60ed045f-57e0-4c65-bc71-4205e0064bbb Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/aNXfGlM Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -31,11 +31,24 @@ function removeMetaTag(selector: string) {
|
||||
if (el) el.remove();
|
||||
}
|
||||
|
||||
const DEFAULT_TITLE = "Volksmusik & Schlager | Folx Music Television";
|
||||
const DEFAULT_DESC = "FOLX TV – Ihr Fernsehsender für Volksmusik und Schlager. Musikvideos, Live-Shows, Interviews und aktuelle Nachrichten aus der Welt der volkstümlichen Musik. Jetzt einschalten!";
|
||||
const DEFAULT_OG_TITLE = "Volksmusik & Schlager | Folx Music Television";
|
||||
const DEFAULT_OG_DESC = "FOLX TV – Ihr Fernsehsender für Volksmusik und Schlager. Musikvideos, Live-Shows und aktuelle Nachrichten aus der volkstümlichen Musikszene.";
|
||||
const DEFAULT_TITLE = "Volksmusik & Schlager TV | FOLX Music Television – Nachrichten, Videos & mehr";
|
||||
const DEFAULT_DESC = "FOLX TV – Ihr Fernsehsender Nr. 1 für Volksmusik und Schlager. Aktuelle Nachrichten, Musikvideos, Künstlerporträts, Live-Shows und Interviews aus der Welt der volkstümlichen Musik. Jetzt einschalten!";
|
||||
const DEFAULT_OG_TITLE = "Volksmusik & Schlager TV | FOLX Music Television";
|
||||
const DEFAULT_OG_DESC = "FOLX TV – Ihr Fernsehsender Nr. 1 für Volksmusik und Schlager. Aktuelle Nachrichten, Musikvideos, Künstlerporträts und Live-Shows.";
|
||||
const DEFAULT_OG_IMAGE = "https://folx.tv/og-image.jpg";
|
||||
const CANONICAL_BASE = "https://folx.tv";
|
||||
|
||||
function setCanonical(href: string) {
|
||||
let link = document.querySelector('link[rel="canonical"]') as HTMLLinkElement;
|
||||
if (link) {
|
||||
link.href = href;
|
||||
} else {
|
||||
link = document.createElement("link");
|
||||
link.rel = "canonical";
|
||||
link.href = href;
|
||||
document.head.appendChild(link);
|
||||
}
|
||||
}
|
||||
|
||||
export function usePageMeta(title: string, description?: string, og?: OgMeta) {
|
||||
useEffect(() => {
|
||||
@@ -44,6 +57,12 @@ export function usePageMeta(title: string, description?: string, og?: OgMeta) {
|
||||
if (description) {
|
||||
setMetaTag('meta[name="description"]', description);
|
||||
}
|
||||
|
||||
const canonicalPath = og?.ogUrl || `${CANONICAL_BASE}${window.location.pathname}`;
|
||||
const canonicalUrl = canonicalPath.startsWith("http") ? canonicalPath : `${CANONICAL_BASE}${canonicalPath}`;
|
||||
setCanonical(canonicalUrl);
|
||||
setMetaTag('meta[property="og:url"]', canonicalUrl);
|
||||
|
||||
if (og) {
|
||||
if (og.ogTitle) setMetaTag('meta[property="og:title"]', og.ogTitle);
|
||||
if (og.ogDescription) setMetaTag('meta[property="og:description"]', og.ogDescription);
|
||||
@@ -53,9 +72,6 @@ export function usePageMeta(title: string, description?: string, og?: OgMeta) {
|
||||
setMetaTag('meta[name="twitter:image"]', og.ogImage);
|
||||
}
|
||||
if (og.ogType) setMetaTag('meta[property="og:type"]', og.ogType);
|
||||
if (og.ogUrl) {
|
||||
setMetaTag('meta[property="og:url"]', og.ogUrl);
|
||||
}
|
||||
setMetaTag('meta[name="twitter:title"]', og.ogTitle || title + suffix);
|
||||
setMetaTag('meta[name="twitter:description"]', og.ogDescription || description || DEFAULT_OG_DESC);
|
||||
|
||||
@@ -82,6 +98,7 @@ export function usePageMeta(title: string, description?: string, og?: OgMeta) {
|
||||
setMetaTag('meta[name="twitter:image"]', DEFAULT_OG_IMAGE);
|
||||
setMetaTag('meta[property="og:type"]', "website");
|
||||
setMetaTag('meta[property="og:url"]', "https://folx.tv/");
|
||||
setCanonical("https://folx.tv/");
|
||||
removeMetaTag('meta[property="article:published_time"]');
|
||||
removeMetaTag('meta[property="article:modified_time"]');
|
||||
removeMetaTag('meta[property="article:author"]');
|
||||
|
||||
Reference in New Issue
Block a user