tailwind-nextjs-blog/app/seo.tsx

37 lines
864 B
TypeScript
Raw Normal View History

2023-08-16 23:55:57 +08:00
import { Metadata } from 'next';
import siteMetadata from '@/data/siteMetadata';
interface PageSEOProps {
2023-08-16 23:55:57 +08:00
title: string;
description?: string;
image?: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2023-08-16 23:55:57 +08:00
[key: string]: any;
}
2023-08-16 23:55:57 +08:00
export function genPageMetadata({
title,
description,
image,
...rest
}: PageSEOProps): Metadata {
return {
title,
openGraph: {
title: `${title} | ${siteMetadata.title}`,
description: description || siteMetadata.description,
url: './',
siteName: siteMetadata.title,
images: image ? [image] : [siteMetadata.socialBanner],
locale: 'en_US',
type: 'website',
},
twitter: {
title: `${title} | ${siteMetadata.title}`,
card: 'summary_large_image',
images: image ? [image] : [siteMetadata.socialBanner],
},
...rest,
2023-08-16 23:55:57 +08:00
};
}