Cscott has uploaded a new change for review.
https://gerrit.wikimedia.org/r/96522
Change subject: Convert gifs to pngs.
......................................................................
Convert gifs to pngs.
Change-Id: Ia25fa8d9cdb99a15d8a17ae1e064fe48bf2f0307
---
M lib/index.js
1 file changed, 32 insertions(+), 8 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
refs/changes/22/96522/1
diff --git a/lib/index.js b/lib/index.js
index bb7c2fb..951ec48 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -3,6 +3,7 @@
var json = require('../package.json');
var domino = require('domino');
+var easyimage = require('easyimage');
var fs = require('fs');
var gammalatex = require('gammalatex');
var guard = require('when/guard');
@@ -515,9 +516,26 @@
});
}).done();
return deferred.promise.then(function(uniqname) {
- // rename the file, then return the new filename
+ // rename the file, then return the new filename (relative to
dir)
return pcall(fs.rename, fs, path.join(dir, oldname), uniqname).
- then(function() { return uniqname; });
+ then(function() { return path.relative(dir, uniqname);
});
+ });
+});
+
+// convert gif to png. takes a filename, returns a promise for a new filename
+var convertGif = guard(guard.n(5), function(info) {
+ return pcall(tmp.tmpName, tmp, {
+ dir: info.imagedir,
+ prefix: info.filename,
+ postfix: '.png'
+ }).then(function(name) {
+ return pcall(easyimage.convert, easyimage, {
+ src: path.join(info.imagedir, info.filename),
+ dst: name
+ }).then(function() {
+ info.filename = path.relative(info.imagedir, name);
+ return info;
+ });
});
});
@@ -525,6 +543,7 @@
// (after image processing / renaming has been done)
var processImages = function(metabook, builddir, options) {
options.log('Processing images');
+ var imagedir = path.join(builddir, 'images');
var imagemap = new Map();
var imagedb =
new Db(path.join(builddir, 'imageinfo.db'), { readonly: true });
@@ -536,14 +555,19 @@
}
var filename = val.filename;
if (!filename) { return; }
- // XXX convert gifs to pngs, and svgs to pngs
+ var pp = when.resolve({ imagedir: imagedir, filename: filename
});
+ // convert gifs to pngs
+ if (val.mime === 'image/gif') {
+ pp = pp.then(convertGif);
+ }
+ // xxx convert svgs to pdfs
// rename file if it is not TeX safe.
- var pp = when.resolve().then(function() {
- var safe = filename.replace(/[^A-Za-z0-9.:]+/g, '-');
- return (safe === filename) ? path.join(builddir,
'images', safe) :
- renameFile(path.join(builddir, 'images'),
filename, safe);
+ pp = pp.then(function(info) {
+ var safe = info.filename.replace(/[^A-Za-z0-9.:]+/g,
'-');
+ return (safe === info.filename) ? safe :
+ renameFile(imagedir, info.filename, safe);
}).then(function(newname) {
- imagemap.set(key, newname);
+ imagemap.set(key, path.join(imagedir, newname));
});
p = p.then(function() { return pp; }); // serialize completion
}).then(function() {
--
To view, visit https://gerrit.wikimedia.org/r/96522
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia25fa8d9cdb99a15d8a17ae1e064fe48bf2f0307
Gerrit-PatchSet: 1
Gerrit-Project:
mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits