copy latest docs version into its own directory

This commit is contained in:
Tim Lancina
2015-09-04 14:40:47 -05:00
parent 1fa21d9071
commit e3cdb78d09
5 changed files with 78 additions and 76 deletions

View File

@ -18,6 +18,7 @@
"devDependencies": { "devDependencies": {
"canonical-path": "0.0.2", "canonical-path": "0.0.2",
"connect": "^3.3.4", "connect": "^3.3.4",
"cpr": "^0.4.1",
"del": "~1.1.1", "del": "~1.1.1",
"dgeni": "^0.4.1", "dgeni": "^0.4.1",
"dgeni-packages": "^0.10.18", "dgeni-packages": "^0.10.18",
@ -42,6 +43,7 @@
"lazypipe": "^0.2.3", "lazypipe": "^0.2.3",
"lodash": "^2.4.1", "lodash": "^2.4.1",
"minimist": "^1.1.3", "minimist": "^1.1.3",
"mkdirp": "^0.5.1",
"node-html-encoder": "0.0.2", "node-html-encoder": "0.0.2",
"node-libs-browser": "^0.5.2", "node-libs-browser": "^0.5.2",
"node-uuid": "^1.4.1", "node-uuid": "^1.4.1",

View File

@ -13,6 +13,8 @@ var _ = require('lodash');
module.exports = function(currentVersion){ module.exports = function(currentVersion){
return new Package('ionic-v2-docs', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage, gitPackage]) return new Package('ionic-v2-docs', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage, gitPackage])
.processor(require('./processors/latest-version'))
.processor(require('./processors/index-page')) .processor(require('./processors/index-page'))
.processor(require('./processors/jekyll')) .processor(require('./processors/jekyll'))
@ -39,12 +41,6 @@ module.exports = function(currentVersion){
versions = []; versions = [];
} }
var versionData = {
list: versions,
current: _.find(versions, { name: currentVersion }),
latest: _.find(versions, {name: latestVersion}) || _.first(versions)
};
!_.contains(versions, currentVersion) && versions.unshift(currentVersion); !_.contains(versions, currentVersion) && versions.unshift(currentVersion);
!_.contains(versions, 'nightly') && versions.unshift('nightly'); !_.contains(versions, 'nightly') && versions.unshift('nightly');

View File

@ -5,6 +5,7 @@ module.exports = function indexPage(renderDocsProcessor) {
$runAfter: ['adding-extra-docs'], $runAfter: ['adding-extra-docs'],
$runBefore: ['extra-docs-added'], $runBefore: ['extra-docs-added'],
$process: function(docs) { $process: function(docs) {
//TODO(tlancina): move versionData into its own service
var versionData = renderDocsProcessor.extraData.version; var versionData = renderDocsProcessor.extraData.version;
var currentVersion = versionData.current.name; var currentVersion = versionData.current.name;
var latestVersion = versionData.latest.name; var latestVersion = versionData.latest.name;

View File

@ -2,17 +2,19 @@ var copy = require('cpr').cpr;
var mkdirp = require('mkdirp'); var mkdirp = require('mkdirp');
var path = require('canonical-path'); var path = require('canonical-path');
var q = require('q'); var q = require('q');
var fs = require('fs');
module.exports = { module.exports = function latestVersion(renderDocsProcessor) {
return {
name: 'latest-version', name: 'latest-version',
runAfter: ['write-files'], $runAfter: ['files-written'],
description: 'Copy the latest version (that was compiled to docs/) into docs/versionName', description: 'Copy the latest version (that was compiled to docs/) into docs/versionName',
process: function(docs, config) { $process: function(docs) {
var versionData = config.get('versionData'); var versionData = renderDocsProcessor.extraData.version;
var docsBase = path.join(config.get('rendering.outputFolder'), 'docs'); var docsBase = 'dist/ionic-site/docs';
var versionDir = path.join(docsBase, versionData.latest.name); var versionDir = path.resolve(docsBase, versionData.latest.name);
var latestDir = path.join(docsBase, 'api'); var latestDir = path.resolve(docsBase, 'api');
var deferred = q.defer(); var deferred = q.defer();
@ -27,4 +29,5 @@ module.exports = {
return deferred.promise; return deferred.promise;
} }
}
}; };

View File

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