code: function($el, template, context, opts) {
        var newDOM, newHTML,
            el = $el.get(0);
        opts = opts || {};
  
        newHTML = opts.newHTML || template(context);
        if (opts.force) {
          $el.html(newHTML);
        } else {
          newDOM = this.copyTopElement(el);
          $(newDOM).html(newHTML);
          this.hotswapKeepCaret(el, newDOM, opts.ignoreElements);
        }
      }
docs: Performs efficient re-rendering of a template.
  @method render
  @param  $el {jQueryObject} The Element to render into
  @param  template {Handlebars Template} The HBS template to apply
  @param  context {Object} The context object to pass to the template
  @param  [opts] {Object} Other options
  @param  [opts.force=false] {Boolean} Will forcefully do a fresh render and not a diff-render
  @param  [opts.newHTML] {String} If you pass in newHTML, it will not use the template or context, but use this instead.
  @param  [opts.ignoreElements] {Array} jQuery selectors of DOM elements to ignore during render. Can be an expensive check