/* * 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 docs206Config from '../../../site_config/docs2-0-6'; import docs207Config from '../../../site_config/docs2-0-7'; import docs300Config from '../../../site_config/docs3-0-0'; import docs301Config from '../../../site_config/docs3-0-1'; import docs310Config from '../../../site_config/docs3-1-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, '2.0.6': docs206Config, '2.0.7': docs207Config, '3.0.0': docs300Config, '3.0.1': docs301Config, '3.1.0': docs310Config, 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 (