code: function createNewBlock(name) {
            var node = container, block, clonedNode, caretNode, textInlineElements = schema.getTextInlineElements();
  
            if (name || parentBlockName == "TABLE") {
              block = dom.create(name || newBlockName);
              setForcedBlockAttrs(block);
            } else {
              block = parentBlock.cloneNode(false);
            }
  
            caretNode = block;
  
            // Clone any parent styles
            if (settings.keep_styles !== false) {
              do {
                if (textInlineElements[node.nodeName]) {
                  // Never clone a caret containers
                  if (node.id == '_mce_caret') {
                    continue;
                  }
  
                  clonedNode = node.cloneNode(false);
                  dom.setAttrib(clonedNode, 'id', ''); // Remove ID since it needs to be document unique
  
                  if (block.hasChildNodes()) {
                    clonedNode.appendChild(block.firstChild);
                    block.appendChild(clonedNode);
                  } else {
                    caretNode = clonedNode;
                    block.appendChild(clonedNode);
                  }
                }
              } while ((node = node.parentNode) && node != editableRoot);
            }
  
            // BR is needed in empty blocks on non IE browsers
            if (!isIE) {
              caretNode.innerHTML = '<br data-mce-bogus="1">';
            }
  
            return block;
          }
docs: Creates a new block element by cloning the current one or creating a new one if the name is specified This function will also copy any text formatting from the parent block and add it to the new one