diff options
Diffstat (limited to 'docs/src')
| -rwxr-xr-x | docs/src/gen-docs.js | 47 | ||||
| -rw-r--r-- | docs/src/templates/index.html | 2 | ||||
| -rw-r--r-- | docs/src/writer.js | 50 |
3 files changed, 53 insertions, 46 deletions
diff --git a/docs/src/gen-docs.js b/docs/src/gen-docs.js index aac9134b..e0a67dc6 100755 --- a/docs/src/gen-docs.js +++ b/docs/src/gen-docs.js @@ -12,8 +12,10 @@ process.on('uncaughtException', function(err) { var start = now(); var docs; -writer.makeDir('build/docs/syntaxhighlighter').then(function() { - console.log('Generating Angular Reference Documentation...'); +writer.makeDir('build/docs/', true).then(function() { + return writer.makeDir('build/docs/partials/'); +}).then(function() { + console.log('Generating AngularJS Reference Documentation...'); return reader.collect(); }).then(function generateHtmlDocPartials(docs_) { docs = docs_; @@ -41,8 +43,10 @@ writer.makeDir('build/docs/syntaxhighlighter').then(function() { function writeTheRest(writesFuture) { var metadata = ngdoc.metadata(docs); - writesFuture.push(writer.copyDir('img')); - writesFuture.push(writer.copyDir('font')); + writesFuture.push(writer.symlinkTemplate('css')); + writesFuture.push(writer.symlinkTemplate('font')); + writesFuture.push(writer.symlinkTemplate('img')); + writesFuture.push(writer.symlinkTemplate('js')); var manifest = 'manifest="/build/docs/appcache.manifest"'; @@ -66,38 +70,27 @@ function writeTheRest(writesFuture) { writesFuture.push(writer.copy('docs/src/templates/index.html', 'index-jq-debug.html', writer.replace, {'doc:manifest': ''})); - writesFuture.push(writer.copyTpl('offline.html')); - writesFuture.push(writer.copyTpl('docs-scenario.html')); - writesFuture.push(writer.copyTpl('js/jquery.min.js')); - writesFuture.push(writer.copyTpl('js/jquery.js')); + writesFuture.push(writer.symlinkTemplate('offline.html')); - writesFuture.push(writer.output('js/docs-keywords.js', + writesFuture.push(writer.copyTemplate('docs-scenario.html')); // will be rewritten, don't symlink + writesFuture.push(writer.output('docs-scenario.js', ngdoc.scenarios(docs))); + + writesFuture.push(writer.output('docs-keywords.js', ['NG_PAGES=', JSON.stringify(metadata).replace(/{/g, '\n{'), ';'])); writesFuture.push(writer.output('sitemap.xml', new SiteMap(docs).render())); - writesFuture.push(writer.output('docs-scenario.js', ngdoc.scenarios(docs))); + writesFuture.push(writer.output('robots.txt', 'Sitemap: http://docs.angularjs.org/sitemap.xml\n')); writesFuture.push(writer.output('appcache.manifest',appCache())); - writesFuture.push(writer.copyTpl('.htaccess')); + writesFuture.push(writer.copyTemplate('.htaccess')); // will be rewritten, don't symlink - writesFuture.push(writer.copy('docs/src/templates/js/docs.js', 'js/docs.js')); - - writesFuture.push(writer.copy('docs/src/templates/css/bootstrap.min.css', 'css/bootstrap.min.css')); - writesFuture.push(writer.copy('docs/src/templates/css/docs.css', 'css/docs.css')); - writesFuture.push(writer.copy('docs/src/templates/css/font-awesome.css', 'css/font-awesome.css')); - - writesFuture.push(writer.copyTpl('font/fontawesome-webfont.eot')); - writesFuture.push(writer.copyTpl('font/fontawesome-webfont.svg')); - writesFuture.push(writer.copyTpl('font/fontawesome-webfont.svgz')); - writesFuture.push(writer.copyTpl('font/fontawesome-webfont.ttf')); - writesFuture.push(writer.copyTpl('font/fontawesome-webfont.woff')); - - writesFuture.push(writer.copyTpl('app.yaml')); - writesFuture.push(writer.copyTpl('index.yaml')); - writesFuture.push(writer.copyTpl('favicon.ico')); - writesFuture.push(writer.copyTpl('main.py')); + writesFuture.push(writer.symlinkTemplate('app.yaml')); + writesFuture.push(writer.symlinkTemplate('index.yaml')); + writesFuture.push(writer.symlinkTemplate('favicon.ico')); + writesFuture.push(writer.symlinkTemplate('main.py')); } function now() { return new Date().getTime(); } function noop() {}; + diff --git a/docs/src/templates/index.html b/docs/src/templates/index.html index 49a1beec..dc654a4e 100644 --- a/docs/src/templates/index.html +++ b/docs/src/templates/index.html @@ -42,7 +42,7 @@ addTag('script', {src: path('angular-bootstrap.js') }, sync); addTag('script', {src: path('angular-bootstrap-prettify.js') }, sync); addTag('script', {src: 'js/docs.js'}, sync); - addTag('script', {src: 'js/docs-keywords.js'}, sync); + addTag('script', {src: 'docs-keywords.js'}, sync); function path(name) { if (gae) { diff --git a/docs/src/writer.js b/docs/src/writer.js index e99ad73e..6ca1dbab 100644 --- a/docs/src/writer.js +++ b/docs/src/writer.js @@ -4,7 +4,7 @@ */ var qfs = require('q-fs'); var Q = require('qq'); -var OUTPUT_DIR = "build/docs/"; +var OUTPUT_DIR = 'build/docs/'; var fs = require('fs'); exports.output = output; @@ -17,29 +17,27 @@ function output(file, content) { }; //recursively create directory -exports.makeDir = function(path) { - var parts = path.split(/\//); +exports.makeDir = function(p) { + var parts = p.split(/\//); var path = "."; - //Sequentially create directories - var done = Q.defer(); - (function createPart() { - if(!parts.length) { - done.resolve(); - } else { - path += "/" + parts.shift(); - qfs.isDirectory(path).then(function(isDir) { - if(!isDir) { - qfs.makeDirectory(path); + // Recursively rebuild directory structure + return qfs.exists(p). + then(function createPart(exists) { + if(!exists && parts.length) { + path += "/" + parts.shift(); + return qfs.exists(path).then(function(exists) { + if (!exists) { + return qfs.makeDirectory(path).then(createPart, createPart); + } else { + return createPart(); + } + }); } - createPart(); }); - } - })(); - return done.promise; }; -exports.copyTpl = function(filename) { +exports.copyTemplate = function(filename) { return exports.copy('docs/src/templates/' + filename, filename); }; @@ -59,8 +57,23 @@ exports.copy = function(from, to, transform) { } return output(to, content); }); +}; + + +exports.symlinkTemplate= symlinkTemplate; +function symlinkTemplate(filename) { + var dest = OUTPUT_DIR + filename, + dirDepth = dest.split('/').length, + src = Array(dirDepth).join('../') + 'docs/src/templates/' + filename; + + return qfs.exists(dest).then(function(exists) { + if (!exists) { + qfs.symbolicLink(dest, src); + } + }); } + /* Replace placeholders in content accordingly * @param content{string} content to be modified * @param replacements{obj} key and value pairs in which key will be replaced with value in content @@ -132,3 +145,4 @@ exports.toString = function toString(obj) { function noop() {}; + |
