From 5e25491cba002a1c412262db136b8991be4dab77 Mon Sep 17 00:00:00 2001
From: Cory Forsyth
Date: Wed, 29 Jul 2015 11:09:43 -0400
Subject: [PATCH] Show innerHTML (with | between text nodes) of editor in demo
---
demo/demo.js | 42 ++++++++++++++++++++++++++++++++++++------
demo/index.html | 5 +++++
2 files changed, 41 insertions(+), 6 deletions(-)
diff --git a/demo/demo.js b/demo/demo.js
index 7510fab1a..baabc7790 100644
--- a/demo/demo.js
+++ b/demo/demo.js
@@ -187,12 +187,39 @@ var ContentKitDemo = exports.ContentKitDemo = {
$('#rendered-mobiledoc').empty();
$('#rendered-mobiledoc')[0].appendChild(rendered);
- var htmlRenderer = new MobiledocHTMLRenderer();
- var html = htmlRenderer.render(mobiledoc);
+ var displayHTML = function(html) {
+ return html.replace(/&/g,'&').replace(//g,'>');
+ };
+
+ // adds a pipe ("|") between adjacent text nodes for visual debugging
+ var debugNodeHTML = function(node) {
+ function convertTextNodes(parentNode, converterFn) {
+ var iterator = document.createNodeIterator(parentNode, NodeFilter.SHOW_TEXT);
+ var node = iterator.nextNode();
+ while (node) {
+ converterFn(node);
+ node = iterator.nextNode();
+ }
+ }
+
+ function addPipeBetweenAdjacentTextNodes(textNode) {
+ var nextSibling = textNode.nextSibling;
+ if (nextSibling && nextSibling.nodeType === Node.TEXT_NODE) {
+ textNode.textContent = textNode.textContent + '|';
+ }
+ }
+
+ var deep = true;
+ var cloned = node.cloneNode(deep);
+ convertTextNodes(cloned, addPipeBetweenAdjacentTextNodes);
+ return displayHTML(cloned.innerHTML);
+ };
- html = html.replace(/&/g,'&').replace(//g,'>');
+ var htmlRenderer = new MobiledocHTMLRenderer();
+ $('#rendered-mobiledoc-html').html(displayHTML(htmlRenderer.render(mobiledoc)));
- $('#rendered-mobiledoc-html').html(html);
+ var editorHTML = debugNodeHTML($('#editor')[0]);
+ $('#editor-html').html(editorHTML);
},
syntaxHighlight: function(json) {
@@ -230,9 +257,12 @@ function bootEditor(element, mobiledoc) {
cards: [simpleCard, cardWithEditMode, cardWithInput, selfieCard]
});
- editor.on('update', function() {
+ function sync() {
ContentKitDemo.syncCodePane(editor);
- });
+ }
+
+ editor.on('update', sync);
+ sync();
}
function readMobiledoc(string) {
diff --git a/demo/index.html b/demo/index.html
index 8916a89bc..c8bc75d4f 100644
--- a/demo/index.html
+++ b/demo/index.html
@@ -72,6 +72,11 @@ rendered mobiledoc (dom)
on the serialized mobiledoc.
+
+
+
+ innerHTML of editor surface
+