57 lines
1.1 KiB
TypeScript
57 lines
1.1 KiB
TypeScript
import type { Metadata } from "next";
|
|
|
|
const baseUrl = process.env.VERCEL_PROJECT_PRODUCTION_URL
|
|
? `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}`
|
|
: `http://localhost:${process.env.PORT || 3000}`;
|
|
const titleTemplate = "%s | Speedrun Ethereum";
|
|
|
|
export const getMetadata = ({
|
|
title,
|
|
description,
|
|
imageRelativePath = "/social-card.png",
|
|
}: {
|
|
title: string;
|
|
description: string;
|
|
imageRelativePath?: string;
|
|
}): Metadata => {
|
|
const imageUrl = `${baseUrl}${imageRelativePath}`;
|
|
|
|
return {
|
|
metadataBase: new URL(baseUrl),
|
|
title: {
|
|
default: title,
|
|
template: titleTemplate,
|
|
},
|
|
description: description,
|
|
openGraph: {
|
|
title: {
|
|
default: title,
|
|
template: titleTemplate,
|
|
},
|
|
description: description,
|
|
images: [
|
|
{
|
|
url: imageUrl,
|
|
},
|
|
],
|
|
},
|
|
twitter: {
|
|
title: {
|
|
default: title,
|
|
template: titleTemplate,
|
|
},
|
|
description: description,
|
|
images: [imageUrl],
|
|
},
|
|
icons: {
|
|
icon: [
|
|
{
|
|
url: "/favicon.png",
|
|
sizes: "32x32",
|
|
type: "image/png",
|
|
},
|
|
],
|
|
},
|
|
};
|
|
};
|