JSFiddle - React, Tailwind, and code Playground
Code indent
by Dave
HTML
<pre id="out"></pre>
JavaScript
var str = '<div id="a">zzz<span class="b"><span>Hello</span></span><input type="text"><p><b>b <i>italic</i></b></p>zzz</div>';
$('#out').text(process(str));
function process(str) {
var div = document.createElement('div');
div.innerHTML = str.trim();
return format(div, 0).innerHTML;
}
function format(node, level) {
var indentBefore = new Array(level++ + 1).join(' '),
indentAfter = new Array(level - 1).join(' '),
textNode;
for (var i = 0; i < node.children.length; i++) {
textNode = document.createTextNode('\n' + indentBefore);
node.insertBefore(textNode, node.children[i]);
format(node.children[i], level);
if (node.lastElementChild == node.children[i]) {
textNode = document.createTextNode('\n' + indentAfter);
node.appendChild(textNode);
}
}
return node;
}