scripts/versions.js (91 lines of code) (raw):
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
const React = require('react');
const CompLibrary = require('../../core/CompLibrary');
const Container = CompLibrary.Container;
const CWD = process.cwd();
const versions = require(`${CWD}/_versions.json`);
// Sort the versions, handling the version numbers and extra characters
versions.sort(function(a, b) {
a = a.replace("v", "");
b = b.replace("v", "");
var aArr = a.split(".");
var bArr = b.split(".");
if (aArr.len !== bArr.len) {
throw 'Version formats do not match';
}
var aInt, bInt;
for (var i = 0 ; i < aArr.length; i++) {
aInt = parseInt(aArr[i]);
bInt = parseInt(bArr[i]);
if (aInt === bInt) {
continue;
}
return aInt - bInt;
}
return 0;
}).reverse();
function Versions(props) {
const {config: siteConfig} = props;
const baseUrl = siteConfig.baseUrl;
const latestVersion = versions[0];
return (
<div className="docMainWrapper wrapper">
<Container className="mainContainer versionsContainer">
<div className="post">
<header className="postHeader">
<h1>{siteConfig.title} Versions</h1>
</header>
<table className="versions">
<tbody>
<tr>
<th>Version</th>
<th>Install with</th>
<th>Documentation</th>
</tr>
<tr>
<td>{`stable (${latestVersion})`}</td>
<td>
<code>pip3 install ax-platform</code>
</td>
<td>
<a href={`${baseUrl}index.html`}>stable</a>
</td>
</tr>
<tr>
<td>
{'latest'}
{' (main)'}
</td>
<td>
<code>
pip3 install git+ssh://git@github.com/facebook/Ax.git
</code>
</td>
<td>
<a href={`${baseUrl}versions/latest/index.html`}>latest</a>
</td>
</tr>
</tbody>
</table>
<h3 id="archive">Past Versions</h3>
<table className="versions">
<tbody>
{versions.map(
version =>
version !== latestVersion && (
<tr key={version}>
<th>{version}</th>
<td>
<a href={`${baseUrl}versions/${version}/index.html`}>
Documentation
</a>
</td>
</tr>
),
)}
</tbody>
</table>
</div>
</Container>
</div>
);
}
module.exports = Versions;