docusaurus/packages/docusaurus/lib/default-theme/DocBody/index.js
Yangshun Tay 5d6dc49bcd
docs(v2): add docs skeleton and structure (#1412)
* docs(v2): add docs skeleton and structure

* docs(v2): add on

* docs(v2): move motivation into contributing
2019-04-28 20:20:24 -07:00

69 lines
2 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.
*/
import React from 'react';
import DocsPaginator from '@theme/DocsPaginator'; // eslint-disable-line
import Head from '@docusaurus/Head';
import './styles.css';
import styles from './styles.module.css';
const Headings = ({headings, isChild}) => {
if (!headings.length) return null;
return (
<ul className={isChild ? 'contents' : 'contents contents__left-border'}>
{headings.map(heading => (
<li key={heading.id}>
<a href={`#${heading.id}`} className="contents__link">
{heading.value}
</a>
<Headings isChild headings={heading.children} />
</li>
))}
</ul>
);
};
function DocBody(props) {
const {metadata, content, docsMetadata} = props;
const {language, version} = metadata;
const DocContents = content;
return (
<div className={styles.docBody}>
<Head>
{metadata && metadata.title && <title>{metadata.title}</title>}
{language && <html lang={language} />}
{language && <meta name="docsearch:language" content={language} />}
{version && <meta name="docsearch:version" content={version} />}
</Head>
<div className="container margin-vert--lg">
<div className="row">
<div className="col col--8">
<header>
<h1 className="margin-bottom--lg">{metadata.title}</h1>
</header>
<article>
<div className="markdown">
<DocContents />
</div>
</article>
<div className="margin-vert--lg">
<DocsPaginator docsMetadata={docsMetadata} metadata={metadata} />
</div>
</div>
<div className="col col--3 col--offset-1">
{content.rightToc && <Headings headings={content.rightToc} />}
</div>
</div>
</div>
</div>
);
}
export default DocBody;