From f89612f9de9adb3ab4745d9c50903a6128ffd33f Mon Sep 17 00:00:00 2001 From: Braydon Fuller Date: Thu, 18 Dec 2014 18:38:47 -0500 Subject: [PATCH] Added jsdoc2md to generate api reference documentation to markdown, and organized docs into 'api' and 'guide' --- docs/{ => guide}/address.md | 0 docs/{ => guide}/block.md | 0 docs/{ => guide}/crypto.md | 0 docs/{ => guide}/ecies.md | 0 docs/{ => guide}/encoding.md | 0 docs/{ => guide}/examples.md | 0 docs/{ => guide}/hierarchical.md | 0 docs/{ => guide}/index.md | 0 docs/{ => guide}/jsonrpc.md | 0 docs/{ => guide}/navigation.md | 0 docs/{Networks.md => guide/networks.md} | 0 .../paymentprotocol.md} | 0 docs/{ => guide}/peer.md | 0 docs/{ => guide}/pool.md | 0 docs/{ => guide}/privatekey.md | 0 docs/{ => guide}/publickey.md | 0 docs/{ => guide}/script.md | 0 docs/{ => guide}/transaction.md | 0 docs/{ => guide}/unit.md | 0 docs/{ => guide}/uri.md | 0 gulpfile.js | 32 +++++++++++++++++-- package.json | 5 ++- 22 files changed, 34 insertions(+), 3 deletions(-) rename docs/{ => guide}/address.md (100%) rename docs/{ => guide}/block.md (100%) rename docs/{ => guide}/crypto.md (100%) rename docs/{ => guide}/ecies.md (100%) rename docs/{ => guide}/encoding.md (100%) rename docs/{ => guide}/examples.md (100%) rename docs/{ => guide}/hierarchical.md (100%) rename docs/{ => guide}/index.md (100%) rename docs/{ => guide}/jsonrpc.md (100%) rename docs/{ => guide}/navigation.md (100%) rename docs/{Networks.md => guide/networks.md} (100%) rename docs/{PaymentProtocol.md => guide/paymentprotocol.md} (100%) rename docs/{ => guide}/peer.md (100%) rename docs/{ => guide}/pool.md (100%) rename docs/{ => guide}/privatekey.md (100%) rename docs/{ => guide}/publickey.md (100%) rename docs/{ => guide}/script.md (100%) rename docs/{ => guide}/transaction.md (100%) rename docs/{ => guide}/unit.md (100%) rename docs/{ => guide}/uri.md (100%) diff --git a/docs/address.md b/docs/guide/address.md similarity index 100% rename from docs/address.md rename to docs/guide/address.md diff --git a/docs/block.md b/docs/guide/block.md similarity index 100% rename from docs/block.md rename to docs/guide/block.md diff --git a/docs/crypto.md b/docs/guide/crypto.md similarity index 100% rename from docs/crypto.md rename to docs/guide/crypto.md diff --git a/docs/ecies.md b/docs/guide/ecies.md similarity index 100% rename from docs/ecies.md rename to docs/guide/ecies.md diff --git a/docs/encoding.md b/docs/guide/encoding.md similarity index 100% rename from docs/encoding.md rename to docs/guide/encoding.md diff --git a/docs/examples.md b/docs/guide/examples.md similarity index 100% rename from docs/examples.md rename to docs/guide/examples.md diff --git a/docs/hierarchical.md b/docs/guide/hierarchical.md similarity index 100% rename from docs/hierarchical.md rename to docs/guide/hierarchical.md diff --git a/docs/index.md b/docs/guide/index.md similarity index 100% rename from docs/index.md rename to docs/guide/index.md diff --git a/docs/jsonrpc.md b/docs/guide/jsonrpc.md similarity index 100% rename from docs/jsonrpc.md rename to docs/guide/jsonrpc.md diff --git a/docs/navigation.md b/docs/guide/navigation.md similarity index 100% rename from docs/navigation.md rename to docs/guide/navigation.md diff --git a/docs/Networks.md b/docs/guide/networks.md similarity index 100% rename from docs/Networks.md rename to docs/guide/networks.md diff --git a/docs/PaymentProtocol.md b/docs/guide/paymentprotocol.md similarity index 100% rename from docs/PaymentProtocol.md rename to docs/guide/paymentprotocol.md diff --git a/docs/peer.md b/docs/guide/peer.md similarity index 100% rename from docs/peer.md rename to docs/guide/peer.md diff --git a/docs/pool.md b/docs/guide/pool.md similarity index 100% rename from docs/pool.md rename to docs/guide/pool.md diff --git a/docs/privatekey.md b/docs/guide/privatekey.md similarity index 100% rename from docs/privatekey.md rename to docs/guide/privatekey.md diff --git a/docs/publickey.md b/docs/guide/publickey.md similarity index 100% rename from docs/publickey.md rename to docs/guide/publickey.md diff --git a/docs/script.md b/docs/guide/script.md similarity index 100% rename from docs/script.md rename to docs/guide/script.md diff --git a/docs/transaction.md b/docs/guide/transaction.md similarity index 100% rename from docs/transaction.md rename to docs/guide/transaction.md diff --git a/docs/unit.md b/docs/guide/unit.md similarity index 100% rename from docs/unit.md rename to docs/guide/unit.md diff --git a/docs/uri.md b/docs/guide/uri.md similarity index 100% rename from docs/uri.md rename to docs/guide/uri.md diff --git a/gulpfile.js b/gulpfile.js index adcbf43..eb9519b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -37,7 +37,10 @@ var jshint = require('gulp-jshint'); var mocha = require('gulp-mocha'); var runSequence = require('run-sequence'); var shell = require('gulp-shell'); - +var through = require('through2'); +var gutil = require('gulp-util'); +var jsdoc2md = require('jsdoc-to-markdown'); +var mfs = require('more-fs'); var files = ['lib/**/*.js']; var tests = ['test/**/*.js']; @@ -126,7 +129,32 @@ gulp.task('lint', function() { gulp.task('plato', shell.task(['plato -d report -r -l .jshintrc -t bitcore lib'])); -gulp.task('jsdoc', shell.task(['node_modules/.bin/jsdoc2md lib/address.js > docs/api/address.md'])); +gulp.task('jsdoc', function() { + + function jsdoc() { + return through.obj(function(file, enc, cb) { + + if (file.isNull()){ + cb(null, file); + return; + } + if (file.isStream()) { + cb(new gutil.PluginError('gulp-jsdoc2md', 'Streaming not supported')); + return; + } + var destination = 'docs/api/'+file.path.replace(file.base, '').replace(/\.js$/, '.md'); + jsdoc2md.render(file.path, {}) + .on('error', function(err) { + gutil.log(gutil.colors.red('jsdoc2md failed', err.message)); + }) + .pipe(mfs.writeStream(destination)); + cb(null, file); + }); + } + + return gulp.src(files).pipe(jsdoc()); + +}); gulp.task('coverage', shell.task(['node_modules/.bin/./istanbul cover node_modules/.bin/_mocha -- --recursive'])); diff --git a/package.json b/package.json index b2a8e99..2138bec 100644 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "gulp-jshint": "^1.9.0", "gulp-mocha": "^2.0.0", "gulp-shell": "^0.2.10", + "gulp-util": "^3.0.1", "ink-docstrap": "git://github.com/bitpay/bitcore-jsdoctemplates.git", "istanbul": "^0.3.5", "jsdoc-to-markdown": "=0.5.9", @@ -105,8 +106,10 @@ "karma-firefox-launcher": "^0.1.3", "karma-mocha": "^0.1.9", "mocha": "~2.0.1", + "more-fs": "^0.5.0", "run-sequence": "^1.0.2", - "sinon": "^1.12.2" + "sinon": "^1.12.2", + "through2": "^0.6.3" }, "license": "MIT" }