diff --git a/package.json b/package.json index 93d04d4440..d9b22287ce 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "devDependencies": { "canonical-path": "0.0.2", "connect": "^3.3.4", + "cpr": "^0.4.1", "del": "~1.1.1", "dgeni": "^0.4.1", "dgeni-packages": "^0.10.18", @@ -42,6 +43,7 @@ "lazypipe": "^0.2.3", "lodash": "^2.4.1", "minimist": "^1.1.3", + "mkdirp": "^0.5.1", "node-html-encoder": "0.0.2", "node-libs-browser": "^0.5.2", "node-uuid": "^1.4.1", diff --git a/scripts/docs/dgeni-config.js b/scripts/docs/dgeni-config.js index 0d54423ce1..d46a90e7a8 100644 --- a/scripts/docs/dgeni-config.js +++ b/scripts/docs/dgeni-config.js @@ -13,6 +13,8 @@ var _ = require('lodash'); module.exports = function(currentVersion){ return new Package('ionic-v2-docs', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage, gitPackage]) + +.processor(require('./processors/latest-version')) .processor(require('./processors/index-page')) .processor(require('./processors/jekyll')) @@ -39,12 +41,6 @@ module.exports = function(currentVersion){ 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, 'nightly') && versions.unshift('nightly'); diff --git a/scripts/docs/processors/index-page.js b/scripts/docs/processors/index-page.js index 51ce1ef3b4..30cc9fb8f3 100644 --- a/scripts/docs/processors/index-page.js +++ b/scripts/docs/processors/index-page.js @@ -5,6 +5,7 @@ module.exports = function indexPage(renderDocsProcessor) { $runAfter: ['adding-extra-docs'], $runBefore: ['extra-docs-added'], $process: function(docs) { + //TODO(tlancina): move versionData into its own service var versionData = renderDocsProcessor.extraData.version; var currentVersion = versionData.current.name; var latestVersion = versionData.latest.name; diff --git a/scripts/docs/processors/latest-version.js b/scripts/docs/processors/latest-version.js index 15b6070042..28f6b39db6 100644 --- a/scripts/docs/processors/latest-version.js +++ b/scripts/docs/processors/latest-version.js @@ -2,29 +2,32 @@ var copy = require('cpr').cpr; var mkdirp = require('mkdirp'); var path = require('canonical-path'); var q = require('q'); +var fs = require('fs'); -module.exports = { - name: 'latest-version', - runAfter: ['write-files'], - description: 'Copy the latest version (that was compiled to docs/) into docs/versionName', - process: function(docs, config) { - var versionData = config.get('versionData'); +module.exports = function latestVersion(renderDocsProcessor) { + return { + name: 'latest-version', + $runAfter: ['files-written'], + description: 'Copy the latest version (that was compiled to docs/) into docs/versionName', + $process: function(docs) { + var versionData = renderDocsProcessor.extraData.version; - var docsBase = path.join(config.get('rendering.outputFolder'), 'docs'); - var versionDir = path.join(docsBase, versionData.latest.name); - var latestDir = path.join(docsBase, 'api'); + var docsBase = 'dist/ionic-site/docs'; + var versionDir = path.resolve(docsBase, versionData.latest.name); + var latestDir = path.resolve(docsBase, 'api'); - var deferred = q.defer(); + var deferred = q.defer(); - mkdirp(versionDir, function() { - copy(latestDir, path.join(versionDir, 'api'), { - deleteFirst: true, - overwrite: true - }, function(err, files) { - deferred.resolve(docs); + mkdirp(versionDir, function() { + copy(latestDir, path.join(versionDir, 'api'), { + deleteFirst: true, + overwrite: true + }, function(err, files) { + deferred.resolve(docs); + }); }); - }); - return deferred.promise; + return deferred.promise; + } } }; diff --git a/scripts/docs/processors/version-data.js b/scripts/docs/processors/version-data.js index 05ed9ff703..903f8ef59c 100644 --- a/scripts/docs/processors/version-data.js +++ b/scripts/docs/processors/version-data.js @@ -1,52 +1,52 @@ -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; - } -}; +// 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; +// } +// };