UNPKG

jquery-crate

Version:

Cratify tool that turns a division into a distributed and decentralized collaborative editor

55 lines (47 loc) 1.75 kB
//var markdown = require('markdown').markdown; var marked = require('marked'); marked.setOptions({ renderer: new marked.Renderer(), gfm: true, tables: true, breaks: false, pedantic: false, sanitize: false, smartLists: true, smartypants: false }); function Preview(buttonView, editorView, previewView){ var self = this; this.isPreviewing = false; this.startPreviewText = '<i class="fa fa-eye"></i>'; this.startPreviewTooltip = 'switch to preview'; this.stopPreviewText = '<i class="fa fa-eye-slash"></i>'; this.stopPreviewTooltip = 'switch to editor'; this.refreshTimeout = 5000; // (TODO) configuable this.refresh = null; buttonView.button.click(function(){ if (!self.isPreviewing){ self.isPreviewing = true; editorView.div.hide(); previewView.div.html(marked(editorView.editor.getValue())); previewView.div.show(); buttonView.button.html(self.stopPreviewText); buttonView.button.attr('title', self.stopPreviewTooltip) .tooltip('fixTitle'); self.refresh = setInterval(function(){ previewView.div.html(marked(editorView.editor.getValue())); }, self.refreshTimeout) ; } else { self.isPreviewing = false; previewView.div.hide(); editorView.div.show(); editorView.editor.resize(); buttonView.button.html(self.startPreviewText); buttonView.button.attr('title', self.startPreviewTooltip) .tooltip('fixTitle'); clearTimeout(self.refresh); self.refresh = null; }; }); }; module.exports = Preview;