cryptpad/www/md/main.js
ansuz 2e3b424a1a sanitize markdown before rendering to prevent XSS
draw rainbox borders on element redraws in vdom method.
This lets us see what being redrawn, as the vdom.diff method
is breaking a few things.
2016-01-30 13:54:12 +01:00

55 lines
1.4 KiB
JavaScript

define([
'/api/config?cb=' + Math.random().toString(16).substring(2),
'/common/realtime-input.js',
'/common/messages.js',
'/common/crypto.js',
'/common/marked.js',
'/bower_components/jquery/dist/jquery.min.js',
'/customize/pad.js'
], function (Config, Realtime, Messages, Crypto, Marked) {
var $ = jQuery;
$(window).on('hashchange', function() {
window.location.reload();
});
if (window.location.href.indexOf('#') === -1) {
window.location.href = window.location.href + '#' + Crypto.genKey();
return;
}
var key = Crypto.parseKey(window.location.hash.substring(1));
var $textarea = $('textarea'),
$target = $('#target');
Marked.setOptions({
sanitize: true
});
var draw = function (content) {
// draw stuff
$target.html(Marked(content));
};
var rts = $textarea.toArray().map(function (e, i) {
var rt = Realtime.start(e, // window
Config.websocketURL, // websocketUrl
Crypto.rand64(8), // userName
key.channel, // channel
key.cryptKey,
null,
function (){
draw($textarea.val());
}); // cryptKey
return rt;
})[0];
//rts.onEvent
window.rts = rts;
$textarea.on('change keyup keydown', function () {
//console.log("pewpew");
draw($textarea.val());
});
});