mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-04 11:52:39 +02:00
feat: custom pages (#994)
This commit is contained in:
parent
7d4d9fe961
commit
8691a2525c
25 changed files with 263 additions and 128 deletions
|
@ -52,10 +52,14 @@ export default class Docs extends React.Component {
|
|||
docsSidebars,
|
||||
metadata,
|
||||
} = this.props;
|
||||
const {language, version} = metadata;
|
||||
return (
|
||||
<Layout {...this.props}>
|
||||
<Helmet>
|
||||
<title>{(metadata && metadata.title) || siteConfig.title}</title>
|
||||
{language && <html lang={language} />}
|
||||
{language && <meta name="docsearch:language" content={language} />}
|
||||
{version && <meta name="docsearch:version" content={version} />}
|
||||
</Helmet>
|
||||
<div>{this.renderSidebar(metadata, docsSidebars, docsMetadatas)}</div>
|
||||
<div>
|
||||
|
|
|
@ -5,15 +5,18 @@ import styles from './styles.css';
|
|||
/* eslint-disable react/prefer-stateless-function */
|
||||
export default class Layout extends React.Component {
|
||||
render() {
|
||||
const {children, pagesMetadatas, docsMetadatas = {}, location} = this.props;
|
||||
const docsLinks = Object.values(docsMetadatas).map(data => ({
|
||||
path: `${data.permalink}`,
|
||||
}));
|
||||
const routeLinks = [...pagesMetadatas, ...docsLinks].map(
|
||||
const {
|
||||
children,
|
||||
pagesMetadatas = [],
|
||||
docsMetadatas = {},
|
||||
location,
|
||||
} = this.props;
|
||||
const docsFlatMetadatas = Object.values(docsMetadatas);
|
||||
const routeLinks = [...pagesMetadatas, ...docsFlatMetadatas].map(
|
||||
data =>
|
||||
data.path !== location.pathname && (
|
||||
<li key={data.path}>
|
||||
<Link to={data.path}>{data.path}</Link>
|
||||
data.permalink !== location.pathname && (
|
||||
<li key={data.permalink}>
|
||||
<Link to={data.permalink}>{data.permalink}</Link>
|
||||
</li>
|
||||
),
|
||||
);
|
||||
|
|
21
v2/lib/theme/Pages/index.js
Normal file
21
v2/lib/theme/Pages/index.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* eslint-disable */
|
||||
import React from 'react';
|
||||
import {Link} from 'react-router-dom';
|
||||
import Helmet from 'react-helmet';
|
||||
import Layout from '@theme/Layout'; // eslint-disable-line
|
||||
|
||||
export default class Pages extends React.Component {
|
||||
render() {
|
||||
const {metadata, children, siteConfig} = this.props;
|
||||
const {language} = metadata;
|
||||
return (
|
||||
<Layout {...this.props}>
|
||||
<Helmet defaultTitle={siteConfig.title}>
|
||||
{language && <html lang={language} />}
|
||||
{language && <meta name="docsearch:language" content={language} />}
|
||||
</Helmet>
|
||||
{children}
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue