docs: function ( range, root ) {
      var container = range.startContainer,
          block;
  
      // If inline, get the containing block.
      if ( isInline( container ) ) {
        block = getPreviousBlock( container, root );
      } else if ( container !== root && isBlock( container ) ) {
        block = container;
      } else {
        block = getNodeBefore( container, range.startOffset );
        block = getNextBlock( block, root );
      }
      // Check the block actually intersects the range
      return block && isNodeContainedInRange( range, block, true ) ? block : null;
    }