summaryrefslogtreecommitdiffstats
path: root/lib/utils
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-01-28 12:46:15 +0100
committerSamy Pessé <samypesse@gmail.com>2015-01-28 12:46:15 +0100
commit534edaceac1bc436a5230094cc2ae5cb32596fb8 (patch)
tree707de4eac7610ee8426cd63a8c8e80e13c999cad /lib/utils
parentee13b4bf75b05bf4814deffdfc9609ce7fa8922a (diff)
downloadgitbook-534edaceac1bc436a5230094cc2ae5cb32596fb8.zip
gitbook-534edaceac1bc436a5230094cc2ae5cb32596fb8.tar.gz
gitbook-534edaceac1bc436a5230094cc2ae5cb32596fb8.tar.bz2
Handle absolute url for images conversion (svg -> png)
Diffstat (limited to 'lib/utils')
-rw-r--r--lib/utils/images.js12
-rw-r--r--lib/utils/page.js12
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, "...");