mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-22 10:33:22 +00:00
47 lines
904 B
JavaScript
47 lines
904 B
JavaScript
var _ = require("lodash");
|
|
var Q = require("q");
|
|
var fs = require("fs");
|
|
var gm = require("gm");
|
|
var request = require("request");
|
|
|
|
var links = require("./links");
|
|
|
|
// Convert a file
|
|
var convertFile = function(source, dest, options) {
|
|
var d = Q.defer();
|
|
options = _.defaults(options || {}, {
|
|
resize: null
|
|
});
|
|
|
|
var img = gm(source)
|
|
.options({
|
|
imageMagick: true
|
|
});
|
|
|
|
if (options.resize) img = img.resize(options.resize.w, options.resize.h);
|
|
|
|
img.noProfile()
|
|
.write(dest, function(err) {
|
|
if (!err) return d.resolve();
|
|
|
|
if (err.code == "ENOENT") {
|
|
err = new Error("Need to install 'ImageMagick'");
|
|
}
|
|
d.reject(err);
|
|
});
|
|
|
|
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"]
|
|
};
|