docs: function parse (node, self) {
    let block = false
  
    if (node.nodeType === 3) {
      let delimiters = self.templateDelimiters
  
      if (delimiters) {
        let tokens = parseTemplate(node.data, delimiters)
  
        if (tokens.length) {
          if (!(tokens.length === 1 && tokens[0].type === 0)) {
            tokens.forEach((token, i) => {
              let text = document.createTextNode(token.value)
              node.parentNode.insertBefore(text, node)
  
              if (token.type === 1) {
                self.buildBinding(TextBinding, text, null, token.value)
              }
            })
  
            node.parentNode.removeChild(node)
          }
        }
      }
    } else if (node.nodeType === 1) {
      block = self.traverse(node)
    }
  
    if (!block) {
      Array.prototype.slice.call(node.childNodes).forEach(function (node) { parse(node, self) })
    }
  }