-
Notifications
You must be signed in to change notification settings - Fork 5
/
html.js
65 lines (55 loc) · 2.24 KB
/
html.js
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
import React, { PropTypes } from 'react';
import Helmet from 'react-helmet';
import { prefixLink } from 'gatsby-helpers'; // eslint-disable-line
const BUILD_TIME = new Date().getTime();
export default function HTML(props) {
const { body } = props;
const { title, meta } = Helmet.rewind();
let path = '';
if (props.location && props.location.pathname) {
path = props.location.pathname;
}
let css;
if (process.env.NODE_ENV === 'production') {
css = <style dangerouslySetInnerHTML={{ __html: require('!raw!./public/styles.css') }} />; // eslint-disable-line
}
return (
<html lang='en'>
<head>
<meta charSet='utf-8' />
<meta httpEquiv='X-UA-Compatible' content='IE=edge' />
<meta
name='viewport'
content='width=device-width, initial-scale=1.0'
/>
{title.toComponent()}
<meta name='robots' content='index, follow' />
<meta name='author' content='Sid Jain' />
<meta name='twitter:card' content='summary_large_image' />
<meta name='twitter:creator' content='@f0rr0' />
<meta property='fb:app_id' content='532441146961582' />
<meta property='og:url' content={`https://yuppi.es${path}`} />
<meta property='og:site_name' content='Yuppies' />
{meta.toComponent()}
<link href='https://fonts.googleapis.com/css?family=Inconsolata:400,700' rel='stylesheet' />
{css}
</head>
<body className='container'>
<div id='react-mount' dangerouslySetInnerHTML={{ __html: body }} />
<script async src={prefixLink(`/bundle.js?t=${BUILD_TIME}`)} />
<script
async
dangerouslySetInnerHTML={{
__html: '(function(i,s,o,g,r,a,m){i[\'GoogleAnalyticsObject\']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,\'script\',\'https://www.google-analytics.com/analytics.js\',\'ga\'); ga(\'create\', \'UA-84957482-1\', \'auto\'); ga(\'send\', \'pageview\');'
}}
/>
</body>
</html>
);
}
HTML.propTypes = {
body: PropTypes.string,
location: PropTypes.shape({
pathname: PropTypes.string
})
};