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

+