Ivan Li
3932a2b612
Some checks failed
🚀 Build and deploy by ftp / 🎉 Deploy (push) Failing after 8m21s
37 lines
864 B
TypeScript
37 lines
864 B
TypeScript
import { Metadata } from 'next';
|
|
import siteMetadata from '@/data/siteMetadata';
|
|
|
|
interface PageSEOProps {
|
|
title: string;
|
|
description?: string;
|
|
image?: string;
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
[key: string]: any;
|
|
}
|
|
|
|
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,
|
|
};
|
|
}
|