json schema
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { notFound } from 'next/navigation';
|
import { notFound } from 'next/navigation';
|
||||||
import Script from 'next/script';
|
import Script from 'next/script';
|
||||||
|
import JsonLd from '@/components/JsonLd';
|
||||||
import { MDXRemote } from 'next-mdx-remote/rsc';
|
import { MDXRemote } from 'next-mdx-remote/rsc';
|
||||||
import { getPostBySlug, getAdjacentPosts, getReadingTime, getHeadings } from '@/lib/blog';
|
import { getPostBySlug, getAdjacentPosts, getReadingTime, getHeadings } from '@/lib/blog';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { getTranslations } from 'next-intl/server';
|
import { getTranslations } from 'next-intl/server';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import JsonLd from '@/components/JsonLd';
|
||||||
import { Section, Container, Button, Heading, Card, Input, Textarea, Label } from '@/components/ui';
|
import { Section, Container, Button, Heading, Card, Input, Textarea, Label } from '@/components/ui';
|
||||||
|
|
||||||
interface ContactPageProps {
|
interface ContactPageProps {
|
||||||
@@ -37,9 +38,25 @@ export async function generateMetadata({ params: { locale } }: ContactPageProps)
|
|||||||
|
|
||||||
export default function ContactPage() {
|
export default function ContactPage() {
|
||||||
const t = useTranslations('Contact');
|
const t = useTranslations('Contact');
|
||||||
|
const locale = t('locale') || 'en'; // Fallback if needed, but usually passed via params
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col min-h-screen bg-neutral-light">
|
<div className="flex flex-col min-h-screen bg-neutral-light">
|
||||||
|
<JsonLd
|
||||||
|
id="breadcrumb-contact"
|
||||||
|
data={{
|
||||||
|
'@context': 'https://schema.org',
|
||||||
|
'@type': 'BreadcrumbList',
|
||||||
|
itemListElement: [
|
||||||
|
{
|
||||||
|
'@type': 'ListItem',
|
||||||
|
position: 1,
|
||||||
|
name: t('title'),
|
||||||
|
item: `https://klz-cables.com/${locale}/contact`,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}}
|
||||||
|
/>
|
||||||
{/* Hero Section */}
|
{/* Hero Section */}
|
||||||
<section className="bg-primary-dark text-white py-20 md:py-32 relative overflow-hidden">
|
<section className="bg-primary-dark text-white py-20 md:py-32 relative overflow-hidden">
|
||||||
<div className="absolute inset-0 opacity-20">
|
<div className="absolute inset-0 opacity-20">
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import Footer from '@/components/Footer';
|
|||||||
import UmamiScript from '@/components/analytics/UmamiScript';
|
import UmamiScript from '@/components/analytics/UmamiScript';
|
||||||
import AnalyticsProvider from '@/components/analytics/AnalyticsProvider';
|
import AnalyticsProvider from '@/components/analytics/AnalyticsProvider';
|
||||||
import { Metadata, Viewport } from 'next';
|
import { Metadata, Viewport } from 'next';
|
||||||
|
import JsonLd from '@/components/JsonLd';
|
||||||
|
|
||||||
export async function generateMetadata({params: {locale}}: {params: {locale: string}}): Promise<Metadata> {
|
export async function generateMetadata({params: {locale}}: {params: {locale: string}}): Promise<Metadata> {
|
||||||
const t = await getTranslations({locale, namespace: 'Index.meta'});
|
const t = await getTranslations({locale, namespace: 'Index.meta'});
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import Hero from '@/components/home/Hero';
|
import Hero from '@/components/home/Hero';
|
||||||
|
import JsonLd from '@/components/JsonLd';
|
||||||
import ProductCategories from '@/components/home/ProductCategories';
|
import ProductCategories from '@/components/home/ProductCategories';
|
||||||
import WhatWeDo from '@/components/home/WhatWeDo';
|
import WhatWeDo from '@/components/home/WhatWeDo';
|
||||||
import RecentPosts from '@/components/home/RecentPosts';
|
import RecentPosts from '@/components/home/RecentPosts';
|
||||||
@@ -13,6 +14,21 @@ import Reveal from '@/components/Reveal';
|
|||||||
export default function HomePage({ params: { locale } }: { params: { locale: string } }) {
|
export default function HomePage({ params: { locale } }: { params: { locale: string } }) {
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col min-h-screen">
|
<div className="flex flex-col min-h-screen">
|
||||||
|
<JsonLd
|
||||||
|
id="breadcrumb-home"
|
||||||
|
data={{
|
||||||
|
'@context': 'https://schema.org',
|
||||||
|
'@type': 'BreadcrumbList',
|
||||||
|
itemListElement: [
|
||||||
|
{
|
||||||
|
'@type': 'ListItem',
|
||||||
|
position: 1,
|
||||||
|
name: 'Home',
|
||||||
|
item: `https://klz-cables.com/${locale}`,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}}
|
||||||
|
/>
|
||||||
<Hero />
|
<Hero />
|
||||||
<Reveal><ProductCategories /></Reveal>
|
<Reveal><ProductCategories /></Reveal>
|
||||||
<Reveal><WhatWeDo /></Reveal>
|
<Reveal><WhatWeDo /></Reveal>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import Script from 'next/script';
|
import Script from 'next/script';
|
||||||
|
import JsonLd from '@/components/JsonLd';
|
||||||
import ProductSidebar from '@/components/ProductSidebar';
|
import ProductSidebar from '@/components/ProductSidebar';
|
||||||
import ProductTabs from '@/components/ProductTabs';
|
import ProductTabs from '@/components/ProductTabs';
|
||||||
import ProductTechnicalData from '@/components/ProductTechnicalData';
|
import ProductTechnicalData from '@/components/ProductTechnicalData';
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { getTranslations } from 'next-intl/server';
|
import { getTranslations } from 'next-intl/server';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import JsonLd from '@/components/JsonLd';
|
||||||
import { Section, Container, Heading, Badge, Button } from '@/components/ui';
|
import { Section, Container, Heading, Badge, Button } from '@/components/ui';
|
||||||
import Image from 'next/image';
|
import Image from 'next/image';
|
||||||
import Reveal from '@/components/Reveal';
|
import Reveal from '@/components/Reveal';
|
||||||
|
|||||||
Reference in New Issue
Block a user