mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
var _ = require('lodash');
|
|
var fs = require('fs');
|
|
var semver = require('semver');
|
|
var path = require('canonical-path');
|
|
|
|
module.exports = function(config) {
|
|
var basePath = config.get('basePath');
|
|
var outputFolder = config.get('rendering.outputFolder');
|
|
var currentVersion = config.get('currentVersion');
|
|
|
|
var docsBaseFolder = path.resolve(basePath, outputFolder, 'docs');
|
|
|
|
var versions;
|
|
try {
|
|
versions = require(docsBaseFolder + '/version-data.json');
|
|
} catch(e) {
|
|
versions = [];
|
|
}
|
|
|
|
var hasNightlyVersion = currentVersion == 'nightly' ||
|
|
_.find(versions, {name: 'nightly'});
|
|
var nightlyVersion = {
|
|
href: '/docs/nightly',
|
|
folder: 'nightly',
|
|
name: 'nightly'
|
|
};
|
|
|
|
//Remove nightly from versions before trying to sort things out
|
|
//because it's different (the only non-semver version)
|
|
_.remove(versions, {name: 'nightly'});
|
|
|
|
if (currentVersion == 'nightly') {
|
|
//do nothing
|
|
|
|
} else if ( !_.find(versions, {name: currentVersion}) ) {
|
|
//If version doesn't exist, add it...
|
|
versions.unshift({
|
|
href: '/docs/latest',
|
|
folder: 'latest',
|
|
name: currentVersion
|
|
});
|
|
|
|
versions.forEach(function(version, index) {
|
|
//Make sure the other versions aren't still latest,
|
|
//if so rename them
|
|
if (_.contains(version.href, 'latest') && index > 0) {
|
|
version.href = '/docs/'+version.name,
|
|
version.folder = version.name;
|
|
fs.unlinkSync(docsBaseFolder + '/' + version.name);
|
|
fs.renameSync(
|
|
docsBaseFolder + '/latest',
|
|
docsBaseFolder + '/' + version.name
|
|
);
|
|
}
|
|
});
|
|
}
|
|
|
|
//Add nightly back to front if it exists
|
|
if (hasNightlyVersion) {
|
|
versions.unshift(nightlyVersion);
|
|
}
|
|
console.log(versions);
|
|
|
|
return {
|
|
list: versions,
|
|
current: _.find(versions, { name: currentVersion }),
|
|
latest: _.find(versions, function(v) { return semver.valid(v.name); }) ||
|
|
_.first(versions)
|
|
};
|
|
};
|