mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 03:32:21 +08:00
copy latest docs version into its own directory
This commit is contained in:
@ -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",
|
||||||
|
@ -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');
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -2,29 +2,32 @@ 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) {
|
||||||
name: 'latest-version',
|
return {
|
||||||
runAfter: ['write-files'],
|
name: 'latest-version',
|
||||||
description: 'Copy the latest version (that was compiled to docs/) into docs/versionName',
|
$runAfter: ['files-written'],
|
||||||
process: function(docs, config) {
|
description: 'Copy the latest version (that was compiled to docs/) into docs/versionName',
|
||||||
var versionData = config.get('versionData');
|
$process: function(docs) {
|
||||||
|
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();
|
||||||
|
|
||||||
mkdirp(versionDir, function() {
|
mkdirp(versionDir, function() {
|
||||||
copy(latestDir, path.join(versionDir, 'api'), {
|
copy(latestDir, path.join(versionDir, 'api'), {
|
||||||
deleteFirst: true,
|
deleteFirst: true,
|
||||||
overwrite: true
|
overwrite: true
|
||||||
}, function(err, files) {
|
}, function(err, files) {
|
||||||
deferred.resolve(docs);
|
deferred.resolve(docs);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -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;
|
||||||
}
|
// }
|
||||||
};
|
// };
|
||||||
|
Reference in New Issue
Block a user