84 lines
1.9 KiB
JavaScript
Raw Normal View History

2021-01-10 17:35:37 +08:00
import { NextSeo, ArticleJsonLd } from 'next-seo'
2021-01-09 17:50:45 +08:00
import siteMetadata from '@/data/siteMetadata'
2021-01-10 17:35:37 +08:00
export const SEO = {
2021-01-09 17:50:45 +08:00
title: siteMetadata.title,
description: siteMetadata.description,
openGraph: {
type: 'website',
locale: siteMetadata.language,
url: siteMetadata.siteUrl,
title: siteMetadata.title,
description: siteMetadata.description,
images: [
{
2021-01-10 17:35:37 +08:00
url: siteMetadata.socialBanner,
2021-01-09 17:50:45 +08:00
alt: siteMetadata.title,
width: 1280,
height: 720,
},
],
},
twitter: {
handle: siteMetadata.twitter,
site: siteMetadata.twitter,
cardType: 'summary_large_image',
},
}
2021-01-10 17:35:37 +08:00
export const PageSeo = ({ title, description, url }) => {
return (
<>
<NextSeo
title={`${title} ${siteMetadata.title}`}
description
canonical={url}
openGraph={{
url,
title,
description,
}}
/>
</>
)
}
export const BlogSeo = ({ title, summary, date, url, image = siteMetadata.socialBanner }) => {
const publishedAt = new Date(date).toISOString()
const featuredImage = {
url: `${siteMetadata.siteUrl}${image}`,
alt: title,
}
return (
<>
<NextSeo
title={`${title} ${siteMetadata.title}`}
description={summary}
canonical={url}
openGraph={{
type: 'article',
article: {
publishedTime: publishedAt,
},
url,
title,
description: summary,
images: [featuredImage],
}}
/>
<ArticleJsonLd
authorName={siteMetadata.author}
dateModified={publishedAt}
datePublished={publishedAt}
description={summary}
images={[featuredImage]}
publisherLogo="/static/favicons/android-chrome-96x96.png"
publisherName={siteMetadata.author}
title={title}
url={url}
/>
</>
)
}