code: function one(schema, node, stack) {
      // console.log(node);
      var type = node && node.type
      var replacement = {type: node.type}
      var replace = true
      var definition
      var allowed
      var result
      var key
  
      if (!own.call(NODES, type)) {
          replace = false
      }
      else {
          definition = NODES[type]
  
          if (typeof definition === 'function') {
              definition = definition(schema, node)
          }
  
          if (!definition) {
              replace = false
          } else {
              /* old start */
              allowed = xtend(definition, NODES['*'])
              /* old end */
  
              /* new start */
              // allowed = xtend(definition, NODES['*'], (schema.NODES && schema.NODES['*'])?schema.NODES['*']:{})
              /* new end */
  
              for (key in allowed) {
                  result = allowed[key](schema, node[key], node, stack)
  
                  if (result === false) {
                      replace = false
  
                      /* Set the non-safe value. */
                      replacement[key] = node[key]
                  } else if (result !== null && result !== undefined) {
                      replacement[key] = result
                  }
              }
          }
      }
  
      if (!replace) {
          if (
              !replacement.children ||
              replacement.children.length === 0 ||
              schema.strip.indexOf(replacement.tagName) !== -1
          ) {
              return null
          }
  
          return replacement.children
      }
      // console.log(replacement);
  
  
      /* new start */
      var options = {};
      NODE_KEYS.forEach(function (key) {
          if(node.hasOwnProperty(key)) {
              options[key] = node[key];
          }
      });
      Object.assign(replacement, options);
      /* new end */
  
  
  
      return replacement
  }
docs: /* Sanitize `node`.