gatsby-theme-wordpress-mdx
Version:
<p align="center"> <img width='200px' alt="Gatsby Theme" src="https://raw.githubusercontent.com/artezan/gatsby-theme-wordpress-mdx/master/%40artezan/gatsby-theme-wordpress-mdx/dn.png" />
71 lines (66 loc) • 2.12 kB
JavaScript
import * as React from 'react'
import { Helmet } from 'react-helmet'
import { useSiteMetadata } from '../../Hooks'
import SchemaOrg from './SchemaOrg'
export const Seo = ({
title,
titleTemplate,
description,
siteURL,
image,
keywords = [],
isBlogPostPage
}) => {
const {
title: siteTitle,
description: siteDescription,
siteURL: siteHookUrl,
siteImage,
twitterUsername,
author
} = useSiteMetadata()
const seoTitle = title || siteTitle
const seoDescription = description || siteDescription
const seoSiteUrl = siteURL || siteHookUrl
const seoUrlImage = isBlogPostPage
? `${siteHookUrl}/${image ? image : ''}`
: `${siteHookUrl}${siteImage}`
return (
<>
<Helmet defer={false}>
{/* General tags */}
<title>{seoTitle}</title>
<meta name="description" content={seoDescription} />
<meta name="image" content={seoUrlImage} />
<link rel="canonical" href={seoSiteUrl} />
<meta name="keywords" content={keywords.join(', ')} />
{/* OpenGraph tags */}
<meta property="og:url" content={seoSiteUrl} />
{isBlogPostPage ? (
<meta property="og:type" content="article" />
) : (
<meta property="og:type" content="website" />
)}
<meta property="og:title" content={seoTitle} />
<meta property="og:description" content={seoDescription} />
<meta property="og:image" content={seoUrlImage} />
{/* Twitter Card tags */}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content={twitterUsername} />
<meta name="twitter:title" content={seoTitle} />
<meta name="twitter:description" content={seoDescription} />
<meta name="twitter:image" content={seoUrlImage} />
</Helmet>
<SchemaOrg
isBlogPost={isBlogPostPage}
url={seoSiteUrl}
title={seoTitle}
image={seoUrlImage}
description={seoDescription}
siteUrl={siteHookUrl}
author={author}
defaultTitle={siteTitle}
/>
</>
)
}