diff --git a/package.json b/package.json index 369c316..9a0f51b 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "start": "astro dev", "build": "astro build", "preview": "astro preview", + "astro": "astro", "format": "prettier -w .", "lint:eslint": "eslint . --ext .js,.ts,.astro", "subfont": "subfont -ir --no-fallbacks --silent --root dist" @@ -18,6 +19,7 @@ "@astrojs/rss": "^1.0.0", "@astrojs/sitemap": "^1.0.0", "@astrojs/tailwind": "^1.0.0", + "@astrolib/seo": "^0.2.0", "@fontsource/inter": "^4.5.12", "@tailwindcss/typography": "^0.5.4", "@typescript-eslint/eslint-plugin": "^5.36.2", diff --git a/src/components/core/MetaTags.astro b/src/components/core/MetaTags.astro index 576f5b0..6354ff8 100644 --- a/src/components/core/MetaTags.astro +++ b/src/components/core/MetaTags.astro @@ -1,4 +1,5 @@ --- +import { AstroSeo } from "@astrolib/seo" import { getImage } from '@astrojs/image'; import { getRelativeUrlByFilePath } from '~/utils/directories'; @@ -19,9 +20,13 @@ const { title = SITE.name, description = '', image: _image = defaultImage, + canonical, noindex = false, nofollow = false, + + ogTitle = title, + ogType = 'website', } = Astro.props; const image = @@ -35,30 +40,33 @@ const image = -{title} - -{canonical && } + + canonical={canonical} + noindex={noindex} + nofollow={nofollow} - - - -{image && } - - -{canonical && } - - - -{image && } - - -{canonical && } - - - -{image && } + openGraph={{ + url: canonical, + title: ogTitle, + description: description, + type: ogType, + images: image ? [ + { + url: image.toString(), + alt: ogTitle, + }, + ] : undefined, + // site_name: 'SiteName', + }} + twitter={{ + // handle: '@handle', + // site: '@site', + cardType: image ? 'summary_large_image' : undefined, + }} +/> diff --git a/src/pages/[...blog]/[...page].astro b/src/pages/[...blog]/[...page].astro index cb893be..5944dcd 100644 --- a/src/pages/[...blog]/[...page].astro +++ b/src/pages/[...blog]/[...page].astro @@ -26,6 +26,7 @@ const meta = { title: `Blog ${currentPage > 1 ? `— Page ${currentPage} ` : ''}— ${SITE.name}`, description: SITE.description, canonical: getCanonical(getPermalink(page.url.current)), + ogType: "blog" }; --- diff --git a/src/pages/[...blog]/[slug].astro b/src/pages/[...blog]/[slug].astro index 243490c..1a03ee7 100644 --- a/src/pages/[...blog]/[slug].astro +++ b/src/pages/[...blog]/[slug].astro @@ -29,6 +29,8 @@ const meta = { description: post.description, canonical: post.canonical || getCanonical(getPermalink(post.slug, 'post')), image: await findImage(post.image), + ogTitle: post.title, + ogType: "article" }; --- diff --git a/src/pages/[...categories]/[category]/[...page].astro b/src/pages/[...categories]/[category]/[...page].astro index 93901e6..cfd6549 100644 --- a/src/pages/[...categories]/[category]/[...page].astro +++ b/src/pages/[...categories]/[category]/[...page].astro @@ -38,10 +38,11 @@ const meta = { title: `Category '${category}' ${currentPage > 1 ? `— Page ${currentPage} ` : ''}— ${SITE.name}`, description: SITE.description, canonical: getCanonical(getPermalink(page.url.current)), + noindex: true, }; --- - + Category: {category} diff --git a/src/pages/[...tags]/[tag]/[...page].astro b/src/pages/[...tags]/[tag]/[...page].astro index 893052f..a1bdfc6 100644 --- a/src/pages/[...tags]/[tag]/[...page].astro +++ b/src/pages/[...tags]/[tag]/[...page].astro @@ -38,10 +38,11 @@ const meta = { title: `Posts by tag '${tag}' ${currentPage > 1 ? `— Page ${currentPage} ` : ''}— ${SITE.name}`, description: SITE.description, canonical: getCanonical(getPermalink(page.url.current)), + noindex: true }; --- - + Tag: {tag}