mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-29 18:27:56 +02:00
87 lines
2.9 KiB
JavaScript
87 lines
2.9 KiB
JavaScript
/**
|
|
* Copyright (c) 2017-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
const React = require("react");
|
|
const Container = require("./Container.js");
|
|
const Doc = require("./Doc.js");
|
|
const DocsSidebar = require("./DocsSidebar.js");
|
|
const Site = require("./Site.js");
|
|
const translation = require("../server/translation.js");
|
|
|
|
// component used to generate whole webpage for docs, including sidebar/header/footer
|
|
class DocsLayout extends React.Component {
|
|
render() {
|
|
const metadata = this.props.metadata;
|
|
const content = this.props.children;
|
|
const i18n = translation[this.props.metadata.language];
|
|
return (
|
|
<Site
|
|
config={this.props.config}
|
|
className="sideNavVisible"
|
|
title={
|
|
i18n
|
|
? translation[this.props.metadata.language]["localized-strings"][
|
|
this.props.metadata.localized_id
|
|
] || this.props.metadata.title
|
|
: this.props.metadata.title
|
|
}
|
|
description={content.trim().split("\n")[0]}
|
|
language={metadata.language}
|
|
version={metadata.version}
|
|
>
|
|
<div className="docMainWrapper wrapper">
|
|
<DocsSidebar metadata={metadata} />
|
|
<Container className="mainContainer">
|
|
<Doc
|
|
content={content}
|
|
config={this.props.config}
|
|
source={metadata.source}
|
|
title={
|
|
i18n
|
|
? translation[this.props.metadata.language][
|
|
"localized-strings"
|
|
][this.props.metadata.localized_id] ||
|
|
this.props.metadata.title
|
|
: this.props.metadata.title
|
|
}
|
|
language={metadata.language}
|
|
/>
|
|
<div className="docs-prevnext">
|
|
{metadata.previous_id &&
|
|
<a
|
|
className="docs-prev button"
|
|
href={metadata.previous_id + ".html#content"}
|
|
>
|
|
←{" "}
|
|
{i18n
|
|
? translation[this.props.metadata.language][
|
|
"localized-strings"
|
|
]["previous"] || "Previous"
|
|
: "Previous"}
|
|
</a>}
|
|
{metadata.next_id &&
|
|
<a
|
|
className="docs-next button"
|
|
href={metadata.next_id + ".html#content"}
|
|
>
|
|
{i18n
|
|
? translation[this.props.metadata.language][
|
|
"localized-strings"
|
|
]["next"] || "Next"
|
|
: "Next"}{" "}
|
|
→
|
|
</a>}
|
|
</div>
|
|
</Container>
|
|
</div>
|
|
</Site>
|
|
);
|
|
}
|
|
}
|
|
module.exports = DocsLayout;
|