You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

44 lines
1.7 KiB

import NextHead from 'next/head';
import { useRouter } from 'next/router';
import React from 'react';
import { MetaProps } from '../types/layout';
export type WithYandexMetrikaProps = {
children: React.ReactNode;
}
export const WEBSITE_HOST_URL = 'https://krasnikov.pro';
const Head = ({ customMeta }: { customMeta?: MetaProps }): JSX.Element => {
const router = useRouter();
const meta: MetaProps = {
title: 'Krasnikov.pro',
description: 'Krasnikov.pro – робототехника, программирование',
image: `${WEBSITE_HOST_URL}/images/site-preview.png`,
type: 'website',
...customMeta,
};
return (
<NextHead>
<title>{meta.title}</title>
<meta content={meta.description} name="Krasnikov.pro – робототехника, программирование" />
<meta property="og:url" content={`${WEBSITE_HOST_URL}${router.asPath}`} />
<link rel="canonical" href={`${WEBSITE_HOST_URL}${router.asPath}`} />
<meta property="og:type" content={meta.type} />
<meta property="og:site_name" content="Krasnikov.pro – робототехника, программирование" />
<meta property="og:description" content={meta.description} />
<meta property="og:title" content={meta.title} />
<meta property="og:image" content={meta.image} />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={meta.title} />
<meta name="twitter:description" content={meta.description} />
<meta name="twitter:image" content={meta.image} />
{meta.date && (
<meta property="article:published_time" content={meta.date} />
)}
</NextHead>
);
};
export default Head;