serialize text nodes correctly
This commit is contained in:
@@ -24,7 +24,8 @@ define([], function () {
|
||||
return callOnHyperJSON(child, cb);
|
||||
} else if (typeof (child) === 'string') {
|
||||
// string nodes have leading and trailing quotes
|
||||
return child.replace(/(^"|"$)/g,"");
|
||||
// don't strip them!
|
||||
return child; //child.replace(/(^"|"$)/g,"");
|
||||
} else {
|
||||
// the above branches should cover all methods
|
||||
// if we hit this, there is a problem
|
||||
|
||||
@@ -32,12 +32,17 @@
|
||||
<!-- put in weird HTML that might cause problems -->
|
||||
<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>
|
||||
|
||||
<h2>Test 2</h2>
|
||||
<h3>XWiki Macros</h3>
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@@ -46,14 +46,15 @@ define([
|
||||
var success = cloned.outerHTML === target.outerHTML;
|
||||
|
||||
if (!success) {
|
||||
var op = TextPatcher.diff(target.outerHTML, cloned.outerHTML);
|
||||
window.DEBUG = {
|
||||
error: "Expected equality between A and B",
|
||||
A: target.outerHTML,
|
||||
B: cloned.outerHTML,
|
||||
target: target,
|
||||
diff: TextPatcher.diff(target.outerHTML, cloned.outerHTML)
|
||||
diff: op
|
||||
};
|
||||
console.log(JSON.stringify(window.DEBUG, null, 2));
|
||||
TextPatcher.log(op);
|
||||
}
|
||||
|
||||
return success;
|
||||
@@ -62,6 +63,7 @@ define([
|
||||
|
||||
[ '#target',
|
||||
'#widget',
|
||||
'#quot',
|
||||
].forEach(function (sel) {
|
||||
roundTrip($(sel)[0]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user