aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--index.html77
-rw-r--r--lib/browser.js3
-rw-r--r--makefile12
4 files changed, 93 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 928aae9..df8e9e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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;
diff --git a/makefile b/makefile
index c95ce77..aa71fe0 100644
--- a/makefile
+++ b/makefile
@@ -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