diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-01-28 12:46:15 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-01-28 12:46:15 +0100 |
commit | 534edaceac1bc436a5230094cc2ae5cb32596fb8 (patch) | |
tree | 707de4eac7610ee8426cd63a8c8e80e13c999cad /lib | |
parent | ee13b4bf75b05bf4814deffdfc9609ce7fa8922a (diff) | |
download | gitbook-534edaceac1bc436a5230094cc2ae5cb32596fb8.zip gitbook-534edaceac1bc436a5230094cc2ae5cb32596fb8.tar.gz gitbook-534edaceac1bc436a5230094cc2ae5cb32596fb8.tar.bz2 |
Handle absolute url for images conversion (svg -> png)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/utils/images.js | 12 | ||||
-rw-r--r-- | lib/utils/page.js | 12 |
2 files changed, 20 insertions, 4 deletions
diff --git a/lib/utils/images.js b/lib/utils/images.js index 5c2db69..ebe9043 100644 --- a/lib/utils/images.js +++ b/lib/utils/images.js @@ -2,9 +2,12 @@ var _ = require("lodash"); var Q = require("q"); var fs = require("fs"); var gm = require("gm"); +var request = require("request"); +var links = require("./links"); -var convert = function(source, dest, options) { +// Convert a file +var convertFile = function(source, dest, options) { var d = Q.defer(); options = _.defaults(options || {}, { resize: null @@ -30,6 +33,13 @@ var convert = function(source, dest, options) { return d.promise; }; +// Convert a file or url +var convert = function(source, dest, options) { + if (links.isExternal(source)) source = request(source); + + return convertFile(source, dest, options); +}; + module.exports = { convert: convert, INVALID: [".svg"] diff --git a/lib/utils/page.js b/lib/utils/page.js index fa333f2..483fdfd 100644 --- a/lib/utils/page.js +++ b/lib/utils/page.js @@ -78,8 +78,14 @@ function normalizeHtml(src, options) { if (options.convertImages) { var ext = path.extname(src); if (_.contains(imgUtils.INVALID, ext)) { - // Replace extension - var dest = path.join(path.dirname(src), path.basename(src, ext)+".png"); + var dest = ""; + + if (links.isExternal(src)) { + dest = path.basename(src, ext)+".png"; + } else { + // Replace extension + var dest = path.join(path.dirname(src), path.basename(src, ext)+".png"); + } // Absolute with input dest = path.resolve(options.book.root, dest); @@ -148,7 +154,7 @@ function normalizeHtml(src, options) { function convertImages(images, options) { return _.reduce(images, function(prev, image) { return prev.then(function() { - var imgin = path.resolve(options.book.root, image.source); + var imgin = links. isExternal(image.source)? image.source : path.resolve(options.book.root, image.source); var imgout = path.resolve(options.book.options.output, image.dest); options.book.log.debug("convert image", image.source, "to", image.dest, "..."); |