aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-04-02 23:17:11 +0100
committerMichael Williamson <mike@zwobble.org>2013-04-02 23:17:11 +0100
commitb346be31b8103d403134f12141b51f3321a6f442 (patch)
tree67ebdb18b570756eb76c2c8d221317747b8286d1
parentcf81751b61fac1042623839d902ae31124d1f5fc (diff)
Write altText of image if available
-rw-r--r--lib/document-to-html.js6
-rw-r--r--lib/documents.js5
-rw-r--r--tests/document-to-html.tests.js20
3 files changed, 28 insertions, 3 deletions
diff --git a/lib/document-to-html.js b/lib/document-to-html.js
index 9951cbb..a1b2ec6 100644
--- a/lib/document-to-html.js
+++ b/lib/document-to-html.js
@@ -89,7 +89,11 @@ function DocumentConverter(options) {
return element.read().then(function(imageBuffer) {
// TODO: set alt attribute to wp:inline/wp:docPr/@descr
var src = "data:image/png;base64," + imageBuffer.toString("base64");
- html.selfClosing(styles.element("img", {"src": src}))
+ var attributes = {src: src};
+ if (element.altText) {
+ attributes.alt = element.altText;
+ }
+ html.selfClosing(styles.element("img", attributes));
});
}
};
diff --git a/lib/documents.js b/lib/documents.js
index b28281f..d1c1e03 100644
--- a/lib/documents.js
+++ b/lib/documents.js
@@ -33,10 +33,11 @@ function ElementWithChildren(type) {
};
}
-function Image(read) {
+function Image(read, altText) {
return {
type: "image",
- read: read
+ read: read,
+ altText: altText
};
}
diff --git a/tests/document-to-html.tests.js b/tests/document-to-html.tests.js
index f8ea482..e7d65e7 100644
--- a/tests/document-to-html.tests.js
+++ b/tests/document-to-html.tests.js
@@ -5,6 +5,7 @@ var documents = require("../lib/documents");
var DocumentConverter = require("../lib/document-to-html").DocumentConverter;
var test = require("./testing").test;
var styles = require("../lib/styles");
+var xmlreader = require("../lib/xmlreader");
describe('DocumentConverter', function() {
@@ -164,6 +165,25 @@ describe('DocumentConverter', function() {
assert.equal(result.html, '<img src="data:image/png;base64,' + imageBuffer.toString("base64") + '" />');
});
});
+
+ test('images have alt attribute if available', function() {
+ var imageBuffer = new Buffer("Not an image at all!");
+ var image = new documents.Image(
+ function() {
+ return q.when(imageBuffer);
+ },
+ "It's a hat"
+ );
+ var converter = new DocumentConverter();
+ return converter.convertToHtml(image)
+ .then(function(result) {
+ return xmlreader.read(result.html);
+ })
+ .then(function(htmlImageElementDocument) {
+ var htmlImageElement = htmlImageElementDocument.root;
+ assert.equal(htmlImageElement.attributes.alt, "It's a hat");
+ });
+ });
});
function paragraphOfText(text, styleName) {