diff --git a/losos/html.js b/losos/html.js index ae2cd1a..cfa5f58 100644 --- a/losos/html.js +++ b/losos/html.js @@ -17,7 +17,7 @@ export function onUnmount(container, fn) { }).observe(parent, { childList: true }) } -var HOLE = '\u200B\u200C\u200B' // zero-width chars — survives innerHTML +var HOLE = '' // comment marker — survives inside var cache = new WeakMap() export function html(strings) { @@ -79,21 +79,13 @@ export function render(container, template) { } function findParts(node, parts) { - if (node.nodeType === 3) { - // Text node — split on HOLE markers - var text = node.textContent - if (text.indexOf(HOLE) === -1) return - var pieces = text.split(HOLE) + if (node.nodeType === 8 && node.textContent === 'losos') { + // Comment marker — replace with empty text node for content insertion var parent = node.parentNode - for (var i = 0; i < pieces.length; i++) { - if (pieces[i]) parent.insertBefore(document.createTextNode(pieces[i]), node) - if (i < pieces.length - 1) { - var marker = document.createTextNode('') - parent.insertBefore(marker, node) - parts.push({ type: 'text', node: marker }) - } - } + var marker = document.createTextNode('') + parent.insertBefore(marker, node) parent.removeChild(node) + parts.push({ type: 'text', node: marker }) return }