-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Expand file tree
/
Copy pathHtmlHead.tsx
More file actions
75 lines (56 loc) · 2.21 KB
/
Copy pathHtmlHead.tsx
File metadata and controls
75 lines (56 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { useRouter } from 'next/router';
import Head from 'next/head';
import { useSiteConfig } from '../hooks/useSiteConfig';
import type { LegacyFrontMatter } from '../types';
type HeaderProps = { frontMatter: LegacyFrontMatter };
const HtmlHead = ({ frontMatter }: HeaderProps) => {
const siteConfig = useSiteConfig();
const { route, basePath } = useRouter();
const canonicalLink = `https://nodejs.org${route}`;
const pageTitle = frontMatter.title
? `${frontMatter.title} | ${siteConfig.title}`
: siteConfig.title;
return (
<Head>
<title>{pageTitle}</title>
<meta name="theme-color" content={siteConfig.accentColor}></meta>
<link
rel="icon"
href={`${basePath}${siteConfig.favicon}`}
type="image/png"
/>
<meta name="robots" content={frontMatter.robots || 'index, follow'} />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content={siteConfig.description} />
<meta property="og:title" content={pageTitle} />
<meta property="og:site_name" content={siteConfig.title} />
<meta property="og:description" content={siteConfig.description} />
<meta
property="og:image"
content={`${basePath}${siteConfig.featuredImage}`}
/>
<meta property="og:image:type" content={siteConfig.og.imgType} />
<meta property="og:image:width" content={siteConfig.og.imgWidth} />
<meta property="og:image:height" content={siteConfig.og.imgHeight} />
<meta name="twitter:card" content={siteConfig.twitter.card} />
<meta name="twitter:site" content={siteConfig.twitter.username} />
<meta name="twitter:title" content={pageTitle} />
<meta
name="twitter:image"
content={`${basePath}${siteConfig.twitter.img}`}
/>
<meta name="twitter:image:alt" content={siteConfig.twitter.imgAlt} />
<link rel="canonical" href={canonicalLink} />
{siteConfig.rssFeeds.map(feed => (
<link
key={feed.file}
rel="alternate"
href={`${basePath}/en/feed/${feed.file}`}
title={feed.title}
type="application/rss+xml"
/>
))}
</Head>
);
};
export default HtmlHead;