diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | index.html | 77 | ||||
| -rw-r--r-- | lib/browser.js | 3 | ||||
| -rw-r--r-- | makefile | 12 |
4 files changed, 93 insertions, 1 deletions
@@ -1,3 +1,5 @@ /node_modules /_build /static/bootstrap +/static/jszip +/bundle.js diff --git a/index.html b/index.html new file mode 100644 index 0000000..b3bc2e0 --- /dev/null +++ b/index.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> +<html> + <head> + <title>Mammoth</title> + <link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap.min.css"> + <link rel="stylesheet" type="text/css" href="/static/style.css"> + </head> + <body> + <div class="banner"> + <div class="container"> + <h1><a href="/">Mammoth</a></h1> + </div> + </div> + <div class="container"> + <input id="document" type="file" /> + </div> + + <script src="static/jszip/jszip.js"></script> + <script src="static/jszip/jszip-deflate.js"></script> + <script src="static/jszip/jszip-inflate.js"></script> + <script src="static/jszip/jszip-load.js"></script> + <script src="bundle.js"></script> + <script> + (function() { + var mammoth = MAMMOTH.mammoth; + var q = MAMMOTH.q; + var Buffer = MAMMOTH.Buffer; + + var converter = new mammoth.Converter(); + 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) { + console.log(result); + }) + .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); + })(); + </script> + </body> +</html> + diff --git a/lib/browser.js b/lib/browser.js new file mode 100644 index 0000000..6d06c4a --- /dev/null +++ b/lib/browser.js @@ -0,0 +1,3 @@ +exports.q = require("q"); +exports.mammoth = require("./"); +exports.Buffer = Buffer; @@ -3,9 +3,19 @@ test: node_modules/.bin/mocha tests -setup: +setup: static/bootstrap static/jszip + +static/bootstrap: mkdir -p _build/bootstrap curl -L https://github.com/twitter/bootstrap/archive/v2.3.1.tar.gz | tar xz --directory _build/bootstrap --strip-components 1 cd _build/bootstrap; npm install; make bootstrap cp -rT _build/bootstrap/bootstrap static/bootstrap + +static/jszip: + mkdir -p _build/jszip + curl -L https://github.com/Stuk/jszip/archive/v1.0.1.tar.gz | tar xz --directory _build/jszip --strip-components 1 + mkdir -p static/jszip + cp _build/jszip/*.js static/jszip +bundle.js: + node_modules/.bin/browserify lib/browser.js --standalone MAMMOTH > bundle.js |
