Always serialize the DOM in one way.
This commit is contained in:
parent
f4c5b2a996
commit
a1fe941f69
@ -45,6 +45,16 @@ define([
|
||||
return true;
|
||||
};
|
||||
|
||||
/* catch `type="_moz"` before it goes over the wire */
|
||||
var brFilter = function (hj) {
|
||||
if (hj[1].type === '_moz') { hj[1].type = undefined; }
|
||||
return hj;
|
||||
};
|
||||
|
||||
var stringifyDOM = function (dom) {
|
||||
return JSON.stringify(Hyperjson.fromDOM(dom, isNotMagicLine, brFilter));
|
||||
};
|
||||
|
||||
var andThen = function (Ckeditor) {
|
||||
$(window).on('hashchange', function() {
|
||||
window.location.reload();
|
||||
@ -76,6 +86,8 @@ define([
|
||||
var inner = window.inner = documentBody;
|
||||
var cursor = window.cursor = Cursor(inner);
|
||||
|
||||
|
||||
|
||||
var setEditable = function (bool) {
|
||||
// careful about putting attributes onto the DOM
|
||||
// they get put into the chain, and you can have trouble
|
||||
@ -165,8 +177,7 @@ define([
|
||||
doc: inner,
|
||||
|
||||
// provide initialstate...
|
||||
initialState: JSON.stringify(Hyperjson
|
||||
.fromDOM(inner, isNotMagicLine)) || '{}',
|
||||
initialState: stringifyDOM(inner) || '{}',
|
||||
|
||||
// really basic operational transform
|
||||
// reject patch if it results in invalid JSON
|
||||
@ -221,7 +232,8 @@ define([
|
||||
// build a dom from HJSON, diff, and patch the editor
|
||||
applyHjson(shjson);
|
||||
|
||||
var shjson2 = JSON.stringify(Hyperjson.fromDOM(inner));
|
||||
var shjson2 = stringifyDOM(inner);
|
||||
|
||||
if (shjson2 !== shjson) {
|
||||
console.error("shjson2 !== shjson");
|
||||
module.realtimeInput.patchText(shjson2);
|
||||
@ -255,11 +267,6 @@ define([
|
||||
|
||||
var rti = module.realtimeInput = realtimeInput.start(realtimeOptions);
|
||||
|
||||
/* catch `type="_moz"` before it goes over the wire */
|
||||
var brFilter = function (hj) {
|
||||
if (hj[1].type === '_moz') { hj[1].type = undefined; }
|
||||
return hj;
|
||||
};
|
||||
|
||||
/* It's incredibly important that you assign 'rti.onLocal'
|
||||
It's used inside of realtimeInput to make sure that all changes
|
||||
@ -270,7 +277,7 @@ define([
|
||||
the code less extensible.
|
||||
*/
|
||||
var propogate = rti.onLocal = function () {
|
||||
var shjson = JSON.stringify(Hyperjson.fromDOM(inner, isNotMagicLine, brFilter));
|
||||
var shjson = stringifyDOM(inner);
|
||||
if (!rti.patchText(shjson)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user