Fix image in meta tags

This commit is contained in:
prototypa
2022-08-24 20:03:23 -04:00
parent bd90eaf841
commit 2738dd1db9
4 changed files with 40 additions and 8 deletions

View File

@ -1,5 +1,6 @@
---
import { getImage } from "@astrojs/image";
import { getRelativeUrlByFilePath } from "~/utils/getRelativeUrlByFilePath";
const { src: defaultImage } = await getImage({
src: import("~/assets/images/default.png"),
@ -10,11 +11,16 @@ const { src: defaultImage } = await getImage({
const {
title = "AstroWind",
description = "",
image = defaultImage,
image: _image = defaultImage,
canonical,
} = Astro.props;
const absoluteImageUrl = new URL(image, Astro.site);
const image =
typeof _image === "string"
? new URL(_image, Astro.site)
: typeof _image["src"] !== "undefined"
? new URL(getRelativeUrlByFilePath(_image.src), Astro.site)
: null;
---
<meta charset="UTF-8" />
@ -28,21 +34,21 @@ const absoluteImageUrl = new URL(image, Astro.site);
<!-- Google / Search Engine Tags -->
<meta itemprop="name" content={title} />
<meta itemprop="description" content={description} />
<meta itemprop="image" content={absoluteImageUrl} />
{image && <meta itemprop="image" content={image} />}
<!-- Facebook Meta Tags -->
{canonical && <meta property="og:url" content={canonical} />}
<meta property="og:type" content="website" />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content={absoluteImageUrl} />
{image && <meta property="og:image" content={image} />}
<!-- Twitter Meta Tags -->
{canonical && <meta name="twitter:url" content={canonical} />}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content={absoluteImageUrl} />
{image && <meta name="twitter:image" content={image} />}
<!-- Fonts -->
<link