docusaurus/lib/core/Head.js
Christian Oliff 3e2cfc27ff No need for chromeframe tag (#328)
Remove the unneeded chromeframe tag, it has long since been retired by Google and was only ever needed for very old IE (would render the page in Chrome within IE).
REF: http://www.chromium.org/developers/how-tos/chrome-frame-getting-started
2017-12-20 10:56:00 -08:00

112 lines
3.5 KiB
JavaScript

/**
* Copyright (c) 2017-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const React = require('react');
// html head for each page
class Head extends React.Component {
render() {
const links = this.props.config.headerLinks;
let hasBlog = false;
links.map(link => {
if (link.blog) hasBlog = true;
});
const highlightDefaultVersion = '9.12.0';
const highlightConfig = this.props.config.highlight || {
version: highlightDefaultVersion,
theme: 'default',
};
const highlightVersion = highlightConfig.version || highlightDefaultVersion;
const highlightTheme = highlightConfig.theme || 'default';
return (
<head>
<meta charSet="utf-8" />
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
<title>{this.props.title}</title>
<meta name="viewport" content="width=device-width" />
<meta name="generator" content="Docusaurus" />
<meta property="og:title" content={this.props.title} />
<meta property="og:type" content="website" />
<meta property="og:url" content={this.props.url} />
<meta property="og:description" content={this.props.description} />
{this.props.config.noIndex && <meta name="robots" content="noindex" />}
{this.props.config.ogImage && (
<meta
property="og:image"
content={
this.props.config.url +
this.props.config.baseUrl +
this.props.config.ogImage
}
/>
)}
{this.props.redirect && (
<meta
http-equiv="refresh"
content={'0; URL=' + this.props.redirect}
/>
)}
<link
rel="shortcut icon"
href={this.props.config.baseUrl + this.props.config.favicon}
/>
{this.props.config.algolia && (
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"
/>
)}
<link
rel="stylesheet"
href={`//cdnjs.cloudflare.com/ajax/libs/highlight.js/${highlightVersion}/styles/${highlightTheme}.min.css`}
/>
{hasBlog && (
<link
rel="alternate"
type="application/atom+xml"
href={this.props.config.url + '/blog/atom.xml'}
title={this.props.config.title + ' Blog ATOM Feed'}
/>
)}
{hasBlog && (
<link
rel="alternate"
type="application/rss+xml"
href={this.props.config.url + '/blog/feed.xml'}
title={this.props.config.title + ' Blog RSS Feed'}
/>
)}
{/* External resources */}
{this.props.config.stylesheets &&
this.props.config.stylesheets.map(function(source) {
return <link rel="stylesheet" href={source} />;
})}
{this.props.config.scripts &&
this.props.config.scripts.map(function(source, idx) {
return (
<script
type="text/javascript"
key={'script' + idx}
src={source}
/>
);
})}
{/* Site defined code. Keep these at the end to avoid overriding. */}
<link
rel="stylesheet"
href={this.props.config.baseUrl + 'css/main.css'}
/>
</head>
);
}
}
module.exports = Head;