|
|
|
/*
|
|
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
|
|
* or more contributor license agreements. See the NOTICE file
|
|
|
|
* distributed with this work for additional information
|
|
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
|
|
* to you under the Apache License, Version 2.0 (the
|
|
|
|
* "License"); you may not use this file except in compliance
|
|
|
|
* with the License. You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing,
|
|
|
|
* software distributed under the License is distributed on an
|
|
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
|
|
* KIND, either express or implied. See the License for the
|
|
|
|
* specific language governing permissions and limitations
|
|
|
|
* under the License.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
import React from 'react';
|
|
|
|
import ReactDOM from 'react-dom';
|
|
|
|
import cookie from 'js-cookie';
|
|
|
|
import Language from '../../components/language';
|
|
|
|
import Header from '../../components/header';
|
|
|
|
import Footer from '../../components/footer';
|
|
|
|
import Md2Html from '../../components/md2html';
|
|
|
|
import Sidemenu from '../../components/sidemenu';
|
|
|
|
import siteConfig from '../../../site_config/site';
|
|
|
|
import docs120Config from '../../../site_config/docs1-2-0';
|
|
|
|
import docs121Config from '../../../site_config/docs1-2-1';
|
|
|
|
import docs131Config from '../../../site_config/docs1-3-1';
|
|
|
|
import docs132Config from '../../../site_config/docs1-3-2';
|
|
|
|
import docs133Config from '../../../site_config/docs1-3-3';
|
|
|
|
import docs134Config from '../../../site_config/docs1-3-4';
|
|
|
|
import docs135Config from '../../../site_config/docs1-3-5';
|
|
|
|
import docs136Config from '../../../site_config/docs1-3-6';
|
|
|
|
import docs138Config from '../../../site_config/docs1-3-8';
|
|
|
|
import docs139Config from '../../../site_config/docs1-3-9';
|
|
|
|
import docs200Config from '../../../site_config/docs2-0-0';
|
|
|
|
import docs201Config from '../../../site_config/docs2-0-1';
|
|
|
|
import docs202Config from '../../../site_config/docs2-0-2';
|
|
|
|
import docs203Config from '../../../site_config/docs2-0-3';
|
|
|
|
import docs205Config from '../../../site_config/docs2-0-5';
|
|
|
|
import docs300Config from '../../../site_config/docs3-0-0';
|
|
|
|
import docsDevConfig from '../../../site_config/docsdev';
|
|
|
|
|
|
|
|
const docsSource = {
|
|
|
|
'1.2.0': docs120Config,
|
|
|
|
'1.2.1': docs121Config,
|
|
|
|
'1.3.1': docs131Config,
|
|
|
|
'1.3.2': docs132Config,
|
|
|
|
'1.3.3': docs133Config,
|
|
|
|
'1.3.4': docs134Config,
|
|
|
|
'1.3.5': docs135Config,
|
|
|
|
'1.3.6': docs136Config,
|
|
|
|
'1.3.8': docs138Config,
|
|
|
|
'1.3.9': docs139Config,
|
|
|
|
'2.0.0': docs200Config,
|
|
|
|
'2.0.1': docs201Config,
|
|
|
|
'2.0.2': docs202Config,
|
|
|
|
'2.0.3': docs203Config,
|
|
|
|
'2.0.5': docs205Config,
|
|
|
|
'3.0.0': docs300Config,
|
|
|
|
dev: docsDevConfig,
|
|
|
|
};
|
|
|
|
|
|
|
|
const isValidVersion = version => version && docsSource.hasOwnProperty(version);
|
|
|
|
|
|
|
|
class Docs extends Md2Html(Language) {
|
|
|
|
render() {
|
|
|
|
const language = this.getLanguage();
|
|
|
|
let dataSource = {};
|
|
|
|
// from location path
|
|
|
|
let version = window.location.pathname.split('/')[3];
|
|
|
|
if (isValidVersion(version) || version === 'latest') {
|
|
|
|
cookie.set('docs_version', version);
|
|
|
|
}
|
|
|
|
// from rendering html
|
|
|
|
if (!version && this.props.subdir) {
|
|
|
|
version = this.props.subdir.split('/')[0];
|
|
|
|
}
|
|
|
|
if (isValidVersion(version)) {
|
|
|
|
dataSource = docsSource[version][language];
|
|
|
|
} else if (isValidVersion(cookie.get('docs_version'))) {
|
|
|
|
dataSource = docsSource[cookie.get('docs_version')][language];
|
|
|
|
} else if (isValidVersion(siteConfig.docsLatest)) {
|
|
|
|
dataSource = docsSource[siteConfig.docsLatest][language];
|
|
|
|
dataSource.sidemenu.forEach((menu) => {
|
|
|
|
menu.children.forEach((submenu) => {
|
|
|
|
if (!submenu.children) {
|
|
|
|
submenu.link = submenu.link.replace(`docs/${siteConfig.docsLatest}`, 'docs/latest');
|
|
|
|
} else {
|
|
|
|
submenu.children.forEach((menuLevel3) => {
|
|
|
|
menuLevel3.link = menuLevel3.link.replace(`docs/${siteConfig.docsLatest}`, 'docs/latest');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
const __html = this.props.__html || this.state.__html;
|
|
|
|
return (
|
|
|
|
<div className="md2html docs-page">
|
|
|
|
<Header
|
|
|
|
currentKey="docs"
|
|
|
|
type="dark"
|
|
|
|
logo="/img/hlogo_white.svg"
|
|
|
|
language={language}
|
|
|
|
onLanguageChange={this.onLanguageChange}
|
|
|
|
/>
|
|
|
|
<section className="content-section">
|
|
|
|
<Sidemenu dataSource={dataSource.sidemenu} />
|
|
|
|
<div
|
|
|
|
className="doc-content markdown-body"
|
|
|
|
ref={(node) => { this.markdownContainer = node; }}
|
|
|
|
dangerouslySetInnerHTML={{ __html }}
|
|
|
|
/>
|
|
|
|
</section>
|
|
|
|
<Footer logo="/img/ds_gray.svg" language={language} />
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
document.getElementById('root') && ReactDOM.render(<Docs />, document.getElementById('root'));
|
|
|
|
|
|
|
|
export default Docs;
|