nl_tokens: Inserts a block or br before / after or in the middle of a split list of the LI is empty
pl_tokens: function handleEmptyListItem ( ) { function isFirstOrLastLi ( first ) { var node = containerBlock [ <mask> ? 'firstChild' : 'lastChild' ] ; // Find first/last element since there might be whitespace there
   while ( node ) { if ( node . nodeType == 1 ) { break ; } node = node [ first ? 'nextSibling' : 'previousSibling' ] ; } return node === parentBlock ; } ; newBlock = newBlockName ? createNewBlock ( newBlockName ) : dom . create ( 'BR' ) ; if ( isFirstOrLastLi ( true ) && isFirstOrLastLi ( ) ) { // Is first and last list item then replace the OL/UL with a text block
   dom . replace ( newBlock , containerBlock ) ; } else if ( isFirstOrLastLi ( true ) ) { // First LI in list then remove LI and add text block before list
   containerBlock . parentNode . insertBefore ( newBlock , containerBlock ) ; } else if ( isFirstOrLastLi ( ) ) { // Last LI in list then temove LI and add text block after list
   dom . insertAfter ( newBlock , containerBlock ) ; renderBlockOnIE ( newBlock ) ; } else { // Middle LI in list the split the list and insert a text block in the middle
   // Extract after fragment and insert it after the current block
   tmpRng = rng . cloneRange ( ) ; tmpRng . setStartAfter ( parentBlock ) ; tmpRng . setEndAfter ( containerBlock ) ; fragment = tmpRng . extractContents ( ) ; dom . insertAfter ( fragment , containerBlock ) ; dom . insertAfter ( newBlock , containerBlock ) ; } dom . remove ( parentBlock ) ; moveToCaretPosition ( newBlock ) ; undoManager . add ( ) ; }