aboutsummaryrefslogtreecommitdiffstats
path: root/packages/react-docs/src/components/documentation.tsx
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-07-20 00:14:58 +0800
committerGitHub <noreply@github.com>2018-07-20 00:14:58 +0800
commit9b6476a6b7db8db7b0fc6bbf9306c01566fb47a9 (patch)
treef96d1aa76c7e5aa9e3311d5cdbd0d31c8ec8d7fb /packages/react-docs/src/components/documentation.tsx
parent3de88d5345c7a4549bc69e2ca28f0601f5d42189 (diff)
parentd8898cf9a30cc349868afcf2b78e6369e57aa726 (diff)
downloaddexon-sol-tools-9b6476a6b7db8db7b0fc6bbf9306c01566fb47a9.tar.gz
dexon-sol-tools-9b6476a6b7db8db7b0fc6bbf9306c01566fb47a9.tar.zst
dexon-sol-tools-9b6476a6b7db8db7b0fc6bbf9306c01566fb47a9.zip
Merge pull request #844 from 0xProject/support-multiple-doc-md
Support version-specific doc ref markdown sections
Diffstat (limited to 'packages/react-docs/src/components/documentation.tsx')
-rw-r--r--packages/react-docs/src/components/documentation.tsx16
1 files changed, 15 insertions, 1 deletions
diff --git a/packages/react-docs/src/components/documentation.tsx b/packages/react-docs/src/components/documentation.tsx
index a4e6f4f6e..ff33220d2 100644
--- a/packages/react-docs/src/components/documentation.tsx
+++ b/packages/react-docs/src/components/documentation.tsx
@@ -12,6 +12,7 @@ import {
import * as _ from 'lodash';
import CircularProgress from 'material-ui/CircularProgress';
import * as React from 'react';
+import * as semver from 'semver';
import { DocsInfo } from '../docs_info';
import {
@@ -180,7 +181,20 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
return renderedSections;
}
private _renderSection(typeDefinitionByName: TypeDefinitionByName, sectionName: string): React.ReactNode {
- const markdownFileIfExists = this.props.docsInfo.sectionNameToMarkdown[sectionName];
+ const markdownVersions = _.keys(this.props.docsInfo.sectionNameToMarkdownByVersion);
+ const eligibleVersions = _.filter(markdownVersions, mdVersion => {
+ return semver.lte(mdVersion, this.props.selectedVersion);
+ });
+ if (_.isEmpty(eligibleVersions)) {
+ throw new Error(
+ `No eligible markdown sections found for ${this.props.docsInfo.displayName} version ${
+ this.props.selectedVersion
+ }.`,
+ );
+ }
+ const sortedEligibleVersions = eligibleVersions.sort(semver.rcompare.bind(semver));
+ const closestVersion = sortedEligibleVersions[0];
+ const markdownFileIfExists = this.props.docsInfo.sectionNameToMarkdownByVersion[closestVersion][sectionName];
if (!_.isUndefined(markdownFileIfExists)) {
return (
<MarkdownSection