From 488223df17ec7eb1bc42deea9426e507d909f1ec Mon Sep 17 00:00:00 2001 From: Christian Genco Date: Mon, 6 Apr 2015 22:08:56 -0500 Subject: [PATCH] cleaning up and tightening stuff --- browser.app.coffee | 46 ++++++++++++++++++++++++++++++++ browserifiable.js | 8 ------ index.html | 62 +++++-------------------------------------- js/markdowntomla.js | 64 ++++++++++++++++++++++++++++++++++++++++----- 4 files changed, 110 insertions(+), 70 deletions(-) create mode 100644 browser.app.coffee delete mode 100644 browserifiable.js diff --git a/browser.app.coffee b/browser.app.coffee new file mode 100644 index 0000000..3124335 --- /dev/null +++ b/browser.app.coffee @@ -0,0 +1,46 @@ +# browserify -t coffeeify browser.app.coffee > js/markdowntomla.js + +console.log "hi" + +window.markdowntomla = require('./markdowntomla.coffee') +window.md = require('markdown').markdown +window._ = require('underscore') +window.extractMetadata = markdowntomla.extractMetadata +window.createMLADocument = markdowntomla.createMLADocument +window.blobStream = require('blob-stream') + +window.editor = ace.edit("editor") +editor.setTheme("ace/theme/textmate") +editor.getSession().setMode("ace/mode/markdown") +editor.getSession().setUseWrapMode(true) +editor.renderer.setShowPrintMargin(false) + +# do we have anything saved? +if essay = localStorage?.getItem('essay') + editor.getSession().setValue(essay) + +refreshTimer = null +editor.getSession().on 'change', -> + clearTimeout(refreshTimer) + refreshTimer = setTimeout(-> + refresh() + localStorage?.setItem('essay', editor.getSession().getValue()) + , 1000) + +window.refresh = -> + stream = blobStream() + content = editor.getSession().getValue() + content = extractMetadata(content) + body = content.body + metadata = content.metadata + createMLADocument(body, metadata, stream) + stream.on 'finish', -> + # get a blob you can do whatever you like with + # blob = stream.toBlob('application/pdf') + + # or get a blob URL for display in the browser + url = stream.toBlobURL('application/pdf') + console.log url + document.getElementById('preview').src = url + +refresh() \ No newline at end of file diff --git a/browserifiable.js b/browserifiable.js deleted file mode 100644 index 6335611..0000000 --- a/browserifiable.js +++ /dev/null @@ -1,8 +0,0 @@ -// browserify -t coffeeify browserifiable.js > markdowntomla.js - -window.markdowntomla = require('./markdowntomla.coffee'); -window.md = require('markdown').markdown; -window._ = require('underscore'); -window.extractMetadata = markdowntomla.extractMetadata; -window.createMLADocument = markdowntomla.createMLADocument; -window.blobStream = require('blob-stream'); \ No newline at end of file diff --git a/index.html b/index.html index f94f6f6..2dabc11 100644 --- a/index.html +++ b/index.html @@ -8,27 +8,21 @@ padding: 0; } #editor, #preview{ - /*width: 49%;*/ - /*height: 400px;*/ + position: absolute; + top: 0; + bottom: 0; + width: 50%; + height: 100vh; } #editor { - margin: 0; - position: absolute; - top: 0; - bottom: 0; left: 0; right: 50%; } #preview{ - position: absolute; - top: 0; - bottom: 0; left: 50%; right: 0; - width: 50%; - height: 100vh; border: 0; } @@ -84,53 +78,9 @@ Wikipedia contributors. "Hacker News." Wikipedia, The Free Encyclopedia. Wikiped - - - - - - - + \ No newline at end of file diff --git a/js/markdowntomla.js b/js/markdowntomla.js index a578ce9..21401f4 100644 --- a/js/markdowntomla.js +++ b/js/markdowntomla.js @@ -1,12 +1,64 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o markdowntomla.js +var essay, refreshTimer; + +console.log("hi"); + +window.markdowntomla = require('./markdowntomla.coffee'); + +window.md = require('markdown').markdown; + +window._ = require('underscore'); + +window.extractMetadata = markdowntomla.extractMetadata; -window.markdowntomla = require('./markdowntomla.coffee'); -window.md = require('markdown').markdown; -window._ = require('underscore'); -window.extractMetadata = markdowntomla.extractMetadata; window.createMLADocument = markdowntomla.createMLADocument; -window.blobStream = require('blob-stream'); + +window.blobStream = require('blob-stream'); + +window.editor = ace.edit("editor"); + +editor.setTheme("ace/theme/textmate"); + +editor.getSession().setMode("ace/mode/markdown"); + +editor.getSession().setUseWrapMode(true); + +editor.renderer.setShowPrintMargin(false); + +if (essay = typeof localStorage !== "undefined" && localStorage !== null ? localStorage.getItem('essay') : void 0) { + editor.getSession().setValue(essay); +} + +refreshTimer = null; + +editor.getSession().on('change', function() { + clearTimeout(refreshTimer); + return refreshTimer = setTimeout(function() { + refresh(); + return typeof localStorage !== "undefined" && localStorage !== null ? localStorage.setItem('essay', editor.getSession().getValue()) : void 0; + }, 1000); +}); + +window.refresh = function() { + var body, content, metadata, stream; + stream = blobStream(); + content = editor.getSession().getValue(); + content = extractMetadata(content); + body = content.body; + metadata = content.metadata; + createMLADocument(body, metadata, stream); + return stream.on('finish', function() { + var url; + url = stream.toBlobURL('application/pdf'); + console.log(url); + return document.getElementById('preview').src = url; + }); +}; + +refresh(); + + + },{"./markdowntomla.coffee":2,"blob-stream":3,"markdown":14,"underscore":57}],2:[function(require,module,exports){ var Node, PDFDocument, _, addPageNum, base, base1, codeBlocks, coffee, colors, lastType, md, render, styles;