diff --git a/components/SEO.js b/components/SEO.js
index 6a9252c..a62dd68 100644
--- a/components/SEO.js
+++ b/components/SEO.js
@@ -2,7 +2,7 @@ import Head from 'next/head'
import { useRouter } from 'next/router'
import siteMetadata from '@/data/siteMetadata'
-export const PageSeo = ({ title, description, taxonomy }) => {
+const CommonSEO = ({ title, description, ogType, ogImage, twImage }) => {
const router = useRouter()
return (
@@ -10,29 +10,64 @@ export const PageSeo = ({ title, description, taxonomy }) => {
-
+
-
+ {ogImage.constructor.name === 'Array' ? (
+ ogImage.map(({ url }) => )
+ ) : (
+
+ )}
-
- {taxonomy && (
+
+
+ )
+}
+
+export const PageSEO = ({ title, description }) => {
+ const ogImageUrl = siteMetadata.siteUrl + siteMetadata.socialBanner
+ const twImageUrl = siteMetadata.siteUrl + siteMetadata.socialBanner
+ return (
+
+ )
+}
+
+export const TagSEO = ({ title, description }) => {
+ const ogImageUrl = siteMetadata.siteUrl + siteMetadata.socialBanner
+ const twImageUrl = siteMetadata.siteUrl + siteMetadata.socialBanner
+ const router = useRouter()
+ return (
+ <>
+
+
- )}
-
+
+ >
)
}
-export const BlogSeo = ({ authorDetails, title, summary, date, lastmod, url, images = [] }) => {
+export const BlogSEO = ({ authorDetails, title, summary, date, lastmod, url, images = [] }) => {
const router = useRouter()
const publishedAt = new Date(date).toISOString()
const modifiedAt = new Date(lastmod || date).toISOString()
@@ -88,31 +123,26 @@ export const BlogSeo = ({ authorDetails, title, summary, date, lastmod, url, ima
description: summary,
}
+ const twImageUrl = featuredImages[0].url
+
return (
<>
+
- {title}
-
-
-
-
-
-
-
- {featuredImages.map((img) => (
-
- ))}
-
-
-
-
-
{date && }
{lastmod && }
>
diff --git a/layouts/AuthorLayout.js b/layouts/AuthorLayout.js
index dd749b2..ed24052 100644
--- a/layouts/AuthorLayout.js
+++ b/layouts/AuthorLayout.js
@@ -1,13 +1,13 @@
import SocialIcon from '@/components/social-icons'
import Image from '@/components/Image'
-import { PageSeo } from '@/components/SEO'
+import { PageSEO } from '@/components/SEO'
export default function AuthorLayout({ children, frontMatter }) {
const { name, avatar, occupation, company, email, twitter, linkedin, github } = frontMatter
return (
<>
-
+
diff --git a/layouts/PostLayout.js b/layouts/PostLayout.js
index a821bc8..67c2de7 100644
--- a/layouts/PostLayout.js
+++ b/layouts/PostLayout.js
@@ -1,7 +1,7 @@
import Link from '@/components/Link'
import PageTitle from '@/components/PageTitle'
import SectionContainer from '@/components/SectionContainer'
-import { BlogSeo } from '@/components/SEO'
+import { BlogSEO } from '@/components/SEO'
import Image from '@/components/Image'
import Tag from '@/components/Tag'
import siteMetadata from '@/data/siteMetadata'
@@ -20,7 +20,7 @@ export default function PostLayout({ frontMatter, authorDetails, next, prev, chi
return (
-
-
+
diff --git a/pages/blog.js b/pages/blog.js
index 1154abc..19802c7 100644
--- a/pages/blog.js
+++ b/pages/blog.js
@@ -1,7 +1,7 @@
import { getAllFilesFrontMatter } from '@/lib/mdx'
import siteMetadata from '@/data/siteMetadata'
import ListLayout from '@/layouts/ListLayout'
-import { PageSeo } from '@/components/SEO'
+import { PageSEO } from '@/components/SEO'
export const POSTS_PER_PAGE = 5
@@ -19,7 +19,7 @@ export async function getStaticProps() {
export default function Blog({ posts, initialDisplayPosts, pagination }) {
return (
<>
-
+
-
+
-
+
diff --git a/pages/projects.js b/pages/projects.js
index dc9a0e5..0abb8cc 100644
--- a/pages/projects.js
+++ b/pages/projects.js
@@ -1,14 +1,12 @@
import siteMetadata from '@/data/siteMetadata'
import projectsData from '@/data/projectsData'
-import Image from '@/components/Image'
-import Link from '@/components/Link'
import Card from '@/components/Card'
-import { PageSeo } from '@/components/SEO'
+import { PageSEO } from '@/components/SEO'
export default function Projects() {
return (
<>
-
+
diff --git a/pages/tags.js b/pages/tags.js
index c122832..21fa048 100644
--- a/pages/tags.js
+++ b/pages/tags.js
@@ -1,5 +1,5 @@
import Link from '@/components/Link'
-import { PageSeo } from '@/components/SEO'
+import { PageSEO } from '@/components/SEO'
import Tag from '@/components/Tag'
import siteMetadata from '@/data/siteMetadata'
import { getAllTags } from '@/lib/tags'
@@ -15,7 +15,7 @@ export default function Tags({ tags }) {
const sortedTags = Object.keys(tags).sort((a, b) => tags[b] - tags[a])
return (
<>
-
+
diff --git a/pages/tags/[tag].js b/pages/tags/[tag].js
index 9a6cc9e..44b7117 100644
--- a/pages/tags/[tag].js
+++ b/pages/tags/[tag].js
@@ -1,4 +1,4 @@
-import { PageSeo } from '@/components/SEO'
+import { TagSEO } from '@/components/SEO'
import siteMetadata from '@/data/siteMetadata'
import ListLayout from '@/layouts/ListLayout'
import generateRss from '@/lib/generate-rss'
@@ -43,10 +43,9 @@ export default function Tag({ posts, tag }) {
const title = tag[0].toUpperCase() + tag.split(' ').join('-').slice(1)
return (
<>
-
>