// var _ = require('lodash'); // var fs = require('fs'); // var semver = require('semver'); // var path = require('canonical-path'); // // module.exports = { // name: 'version-data', // runBefore: ['reading-files'], // description: 'Expose version data to templates', // process: function(extraData, 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 = fs.readdirSync(docsBaseFolder) // .filter(semver.valid) // .sort(semver.rcompare); // } catch(e) { // versions = []; // } // // !_.contains(versions, currentVersion) && versions.unshift(currentVersion); // !_.contains(versions, 'nightly') && versions.unshift('nightly'); // // //First semver valid version is latest // var latestVersion = _.find(versions, semver.valid); // versions = versions.map(function(version) { // //Latest version is in docs root // var folder = version == latestVersion ? '' : version; // return { // href: path.join('/', config.get('versionFolderBase') || '', folder), // folder: folder, // name: version // }; // }); // // var versionData = { // list: versions, // current: _.find(versions, { name: currentVersion }), // latest: _.find(versions, {name: latestVersion}) || _.first(versions) // }; // // config.set('rendering.contentsFolder', // path.join(config.get('versionFolderBase') || '', versionData.current.folder || '')); // config.set('versionData', versionData); // extraData.version = versionData; // } // };