docs: function highlightBlock(block, tabReplace, useBR) {
      var text = blockText(block, useBR);
      var language = blockLanguage(block);
      if (language == 'no-highlight')
          return;
      if (language) {
        var result = highlight(language, text);
      } else {
        var result = highlightAuto(text);
        language = result.language;
      }
      var original = nodeStream(block);
      if (original.length) {
        var pre = document.createElement('pre');
        pre.innerHTML = result.value;
        result.value = mergeStreams(original, nodeStream(pre), text);
      }
      result.value = fixMarkup(result.value, tabReplace, useBR);
  
      var class_name = block.className;
      if (!class_name.match('(\\s|^)(language-)?' + language + '(\\s|$)')) {
        class_name = class_name ? (class_name + ' ' + language) : language;
      }
      if (/MSIE [678]/.test(navigator.userAgent) && block.tagName == 'CODE' && block.parentNode.tagName == 'PRE') {
        // This is for backwards compatibility only. IE needs this strange
        // hack becasue it cannot just cleanly replace <code> block contents.
        var pre = block.parentNode;
        var container = document.createElement('div');
        container.innerHTML = '<pre><code>' + result.value + '</code></pre>';
        block = container.firstChild.firstChild;
        container.firstChild.className = pre.className;
        pre.parentNode.replaceChild(container.firstChild, pre);
      } else {
        block.innerHTML = result.value;
      }
      block.className = class_name;
      block.result = {
        language: language,
        kw: result.keyword_count,
        re: result.relevance
      };
      if (result.second_best) {
        block.second_best = {
          language: result.second_best.language,
          kw: result.second_best.keyword_count,
          re: result.second_best.relevance
        };
      }
    }