diff options
| author | Michael Williamson <mike@zwobble.org> | 2013-04-12 19:42:10 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2013-04-12 19:42:10 +0100 |
| commit | 9d9de782a10d1217c55e2cab764924493ee3435b (patch) | |
| tree | c84f4c6dab0805476752487be5778dae9a52c64b /lib | |
| parent | 1a8e6ced5cdfa0ec9216e75bdb28155ce3080240 (diff) | |
Simplify generation of browser JavaScript
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/browser.js | 50 |
1 files changed, 47 insertions, 3 deletions
diff --git a/lib/browser.js b/lib/browser.js index 6d06c4a..04d73ee 100644 --- a/lib/browser.js +++ b/lib/browser.js @@ -1,3 +1,47 @@ -exports.q = require("q"); -exports.mammoth = require("./"); -exports.Buffer = Buffer; +var q = require("q"); +var mammoth = require("./"); + +var converter = new mammoth.Converter(mammoth.standardOptions); +function handleFileSelect(event) { + var files = event.target.files; + + for (var i = 0; i < files.length; i++) { + var file = files[i]; + var reader = new FileReader(); + + reader.onload = function(loadEvent) { + var arrayBuffer = loadEvent.target.result; + converter.convertToHtml({file: openFile(arrayBuffer)}) + .then(function(result) { + document.getElementById("output").innerHTML = result.html; + }) + .done(); + }; + + + reader.readAsArrayBuffer(file); + } + + function openFile(arrayBuffer) { + var zipFile = new JSZip(arrayBuffer); + function exists(name) { + return zipFile.file(name) !== null; + } + + function read(name, encoding) { + var array = zipFile.file(name).asUint8Array(); + var buffer = new Buffer(array); + if (encoding) { + return q.when(buffer.toString(encoding)); + } else { + return q.when(buffer); + } + } + return { + exists: exists, + read: read + }; + } +} + +document.getElementById("document").addEventListener('change', handleFileSelect, false); |
