serialize text nodes correctly
This commit is contained in:
@@ -24,7 +24,8 @@ define([], function () {
|
|||||||
return callOnHyperJSON(child, cb);
|
return callOnHyperJSON(child, cb);
|
||||||
} else if (typeof (child) === 'string') {
|
} else if (typeof (child) === 'string') {
|
||||||
// string nodes have leading and trailing quotes
|
// string nodes have leading and trailing quotes
|
||||||
return child.replace(/(^"|"$)/g,"");
|
// don't strip them!
|
||||||
|
return child; //child.replace(/(^"|"$)/g,"");
|
||||||
} else {
|
} else {
|
||||||
// the above branches should cover all methods
|
// the above branches should cover all methods
|
||||||
// if we hit this, there is a problem
|
// if we hit this, there is a problem
|
||||||
|
|||||||
@@ -32,12 +32,17 @@
|
|||||||
<!-- put in weird HTML that might cause problems -->
|
<!-- put in weird HTML that might cause problems -->
|
||||||
<div id="target"><p class=" alice bob charlie has.dot" id="bang">pewpewpew</p></div>
|
<div id="target"><p class=" alice bob charlie has.dot" id="bang">pewpewpew</p></div>
|
||||||
|
|
||||||
|
<h2>Test 1</h2>
|
||||||
|
<h3>paragraph text</h3>
|
||||||
|
<!-- -->
|
||||||
|
<div id="quot"><p>"pewpewpew"</p></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>Test 2</h2>
|
<h2>Test 2</h2>
|
||||||
<h3>XWiki Macros</h3>
|
<h3>XWiki Macros</h3>
|
||||||
|
|
||||||
<!-- Can we serialize XWiki Macros? -->
|
<!-- Can we serialize XWiki Macros? -->
|
||||||
<div id="widget"><div data-cke-widget-id="0" tabindex="-1" data-cke-widget-wrapper="1" data-cke-filter="off" class="cke_widget_wrapper cke_widget_block" data-cke-display-name="macro:velocity" contenteditable="false"><div class="macro cke_widget_element" data-macro="startmacro:velocity|-||-|Here is a macro" data-cke-widget-data="%7B%22classes%22%3A%7B%22macro%22%3A1%7D%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="xwiki-macro"><p>Here is a macro</p></div><span style='background: rgba(220, 220, 220, 0.5) url("/common/cryptofist.png") repeat scroll 0% 0%; top: -15px; left: 0px; display: block;' class="cke_reset cke_widget_drag_handler_container"><img title="Click and drag to move" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" data-cke-widget-drag-handler="1" class="cke_reset cke_widget_drag_handler" height="15" width="15"></span></div></div>
|
<div id="widget"><div data-cke-widget-id="0" tabindex="-1" data-cke-widget-wrapper="1" data-cke-filter="off" class="cke_widget_wrapper cke_widget_block" data-cke-display-name="macro:velocity" contenteditable="false"><div class="macro cke_widget_element" data-macro="startmacro:velocity|-||-|Here is a macro" data-cke-widget-data="%7B%22classes%22%3A%7B%22macro%22%3A1%7D%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="xwiki-macro"><p>Here is a macro</p></div><span style='background: rgba(220, 220, 220, 0.5) url("/customize/cryptofist_small.png") repeat scroll 0% 0%; top: -15px; left: 0px; display: block;' class="cke_reset cke_widget_drag_handler_container"><img title="Click and drag to move" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" data-cke-widget-drag-handler="1" class="cke_reset cke_widget_drag_handler" height="15" width="15"></span></div></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -46,14 +46,15 @@ define([
|
|||||||
var success = cloned.outerHTML === target.outerHTML;
|
var success = cloned.outerHTML === target.outerHTML;
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
|
var op = TextPatcher.diff(target.outerHTML, cloned.outerHTML);
|
||||||
window.DEBUG = {
|
window.DEBUG = {
|
||||||
error: "Expected equality between A and B",
|
error: "Expected equality between A and B",
|
||||||
A: target.outerHTML,
|
A: target.outerHTML,
|
||||||
B: cloned.outerHTML,
|
B: cloned.outerHTML,
|
||||||
target: target,
|
diff: op
|
||||||
diff: TextPatcher.diff(target.outerHTML, cloned.outerHTML)
|
|
||||||
};
|
};
|
||||||
console.log(JSON.stringify(window.DEBUG, null, 2));
|
console.log(JSON.stringify(window.DEBUG, null, 2));
|
||||||
|
TextPatcher.log(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
@@ -62,6 +63,7 @@ define([
|
|||||||
|
|
||||||
[ '#target',
|
[ '#target',
|
||||||
'#widget',
|
'#widget',
|
||||||
|
'#quot',
|
||||||
].forEach(function (sel) {
|
].forEach(function (sel) {
|
||||||
roundTrip($(sel)[0]);
|
roundTrip($(sel)[0]);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user