docs/prettify.js
function htmlToText(html) {
    var pos = html.indexOf('&');
    if (pos < 0) { return html; }
    // Handle numeric entities specially.  We can't use functional substitution
    // since that doesn't work in older versions of Safari.
    // These should be rare since most browsers convert them to normal chars.
    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
      var end = html.indexOf(';', pos);
      if (end >= 0) {
        var num = html.substring(pos + 3, end);
        var radix = 10;
        if (num && num.charAt(0) === 'x') {
          num = num.substring(1);
          radix = 16;
        }
        var codePoint = parseInt(num, radix);
        if (!isNaN(codePoint)) {
          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
                  html.substring(end + 1));
        }
      }
    }

    return html.replace(pr_ltEnt, '<')
        .replace(pr_gtEnt, '>')
        .replace(pr_aposEnt, "'")
        .replace(pr_quotEnt, '"')
        .replace(pr_nbspEnt, ' ')
        .replace(pr_ampEnt, '&');
  }
function htmlToText(html) {
    var pos = html.indexOf('&');
    if (pos < 0) { return html; }
    // Handle numeric entities specially.  We can't use functional substitution
    // since that doesn't work in older versions of Safari.
    // These should be rare since most browsers convert them to normal chars.
    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
      var end = html.indexOf(';', pos);
      if (end >= 0) {
        var num = html.substring(pos + 3, end);
        var radix = 10;
        if (num && num.charAt(0) === 'x') {
          num = num.substring(1);
          radix = 16;
        }
        var codePoint = parseInt(num, radix);
        if (!isNaN(codePoint)) {
          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
                  html.substring(end + 1));
        }
      }
    }

    return html.replace(pr_ltEnt, '<')
        .replace(pr_gtEnt, '>')
        .replace(pr_aposEnt, "'")
        .replace(pr_quotEnt, '"')
        .replace(pr_nbspEnt, ' ')
        .replace(pr_ampEnt, '&');
  }
function htmlToText ( html ) { var pos = html . indexOf ( '&' ) ; if ( pos < 0 ) { return html ; } // Handle numeric entities specially.  We can't use functional substitution // since that doesn't work in older versions of Safari. // These should be rare since most browsers convert them to normal chars. for ( -- pos ; ( pos = html . indexOf ( '&#' , pos + 1 ) ) >= 0 ; ) { var end = html . indexOf ( ';' , pos ) ; if ( end >= 0 ) { var num = html . substring ( pos + 3 , end ) ; var radix = 10 ; if ( num && num . charAt ( 0 ) === 'x' ) { num = num . substring ( 1 ) ; radix = 16 ; } var codePoint = parseInt ( num , radix ) ; if ( ! isNaN ( codePoint ) ) { html = ( html . substring ( 0 , pos ) + String . fromCharCode ( codePoint ) + html . substring ( end + 1 ) ) ; } } } return html . replace ( pr_ltEnt , '<' ) . replace ( pr_gtEnt , '>' ) . replace ( pr_aposEnt , "'" ) . replace ( pr_quotEnt , '"' ) . replace ( pr_nbspEnt , ' ' ) . replace ( pr_ampEnt , '&' ) ; }
unescapes html to plain text.
unescapes html to plain text .