diff --git a/lib/cli/helper.js b/lib/cli/helper.js index 1086b4da6..6dae58c24 100644 --- a/lib/cli/helper.js +++ b/lib/cli/helper.js @@ -1,4 +1,5 @@ var _ = require('lodash'); +var path = require('path'); var Book = require('../book'); var NodeFS = require('../fs/node'); @@ -36,7 +37,7 @@ var FORMATS = { // the root of the book is the first argument (or current directory) function bookCmd(fn) { return function(args, kwargs) { - var input = args[0] || process.cwd(); + var input = path.resolve(args[0] || process.cwd()); var book = new Book({ fs: new NodeFS(), root: input, diff --git a/lib/cli/index.js b/lib/cli/index.js index 0492c298f..07c4888b0 100644 --- a/lib/cli/index.js +++ b/lib/cli/index.js @@ -94,7 +94,7 @@ module.exports = { helper.options.log ], exec: function(args, kwargs) { - var input = args[0] || process.cwd(); + var input = path.resolve(args[0] || process.cwd()); var server = new Server(); // Init livereload server diff --git a/lib/output/base.js b/lib/output/base.js index 6678bb092..2a7ec488e 100644 --- a/lib/output/base.js +++ b/lib/output/base.js @@ -76,12 +76,12 @@ Output.prototype.generate = function() { .value(); return Promise.serie(byTypes.asset, function(filename) { - that.log.info.ln('copy asset', filename); + that.log.debug.ln('copy asset', filename); return that.onAsset(filename); }) .then(function() { return Promise.serie(byTypes.page, function(filename) { - that.log.info.ln('process page', filename); + that.log.debug.ln('process page', filename); return that.onPage(that.book.getPage(filename)); }); }); @@ -154,6 +154,7 @@ Output.prototype.onOutputSVG = function(page, svg) { // Output an image as a file // Normalize the relative link Output.prototype.onOutputImage = function(page, imgFile) { + imgFile = page.resolveLocal(imgFile); return page.relative(imgFile); }; diff --git a/lib/output/folder.js b/lib/output/folder.js index 14e3f227f..9e139c0d9 100644 --- a/lib/output/folder.js +++ b/lib/output/folder.js @@ -88,7 +88,12 @@ module.exports = function folderOutput(Base) { return Promise() .then(function() { to = that.resolve(to); + var folder = path.dirname(to); + // Ensure folder exists + return fs.mkdirp(folder); + }) + .then(function() { return fs.copy(from, to); }); }; @@ -102,7 +107,7 @@ module.exports = function folderOutput(Base) { filename = that.resolve(filename); var folder = path.dirname(filename); - // Ensure fodler exists + // Ensure folder exists return fs.mkdirp(folder); }) diff --git a/test/page.js b/test/page.js index 41a08934b..52d86d8e5 100644 --- a/test/page.js +++ b/test/page.js @@ -11,6 +11,9 @@ describe('Page', function() { 'links.md': '[link](hello.md) [link 2](variables/page/next.md) [readme](README.md)', 'links/relative.md': '[link](../hello.md) [link 2](/variables/page/next.md) [readme](../README.md)', + 'images.md': '  ', + 'images/relative.md': ' ', + 'annotations/simple.md': 'A magicien say abracadabra!', 'annotations/code.md': 'A magicien say `abracadabra`!', 'annotations/class.md': 'A magicien say