Вход Регистрация
Файл: error-kitty/node_modules/cheerio/node_modules/entities/lib/encode.js
Строк: 92
<?php
var inverseXML getInverseObj(require("../maps/xml.json")),
    
xmlReplacer getInverseReplacer(inverseXML);

exports.XML getInverse(inverseXMLxmlReplacer);

var 
inverseHTML getInverseObj(require("../maps/entities.json")),
    
htmlReplacer getInverseReplacer(inverseHTML);

exports.HTML getInverse(inverseHTMLhtmlReplacer);

function 
getInverseObj(obj){
    return 
Object.keys(obj).sort().reduce(function(inversename){
        
inverse[obj[name]] = "&" name ";";
        return 
inverse;
    }, {});
}

function 
getInverseReplacer(inverse){
    var 
single = [],
        
multiple = [];

    
Object.keys(inverse).forEach(function(k){
        if(
k.length === 1){
            
single.push("\" + k);
        } else {
            multiple.push(k);
        }
    });

    //TODO add ranges
    multiple.unshift("
[" + single.join("") + "]");

    return new RegExp(multiple.join("
|"), "g");
}

var re_nonASCII = /[^-x7F]/g,
    re_astralSymbols = /[uD800-uDBFF][uDC00-uDFFF]/g;

function singleCharReplacer(c){
    return "
&#x" + c.charCodeAt(0).toString(16).toUpperCase() + ";";
}

function 
astralReplacer(c){
    
// http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
    
var high c.charCodeAt(0);
    var 
low  c.charCodeAt(1);
    var 
codePoint = (high 0xD800) * 0x400 low 0xDC00 0x10000;
    return 
"&#x" codePoint.toString(16).toUpperCase() + ";";
}

function 
getInverse(inversere){
    function 
func(name){
        return 
inverse[name];
    }

    return function(
data){
        return 
data
                
.replace(refunc)
                .
replace(re_astralSymbolsastralReplacer)
                .
replace(re_nonASCIIsingleCharReplacer);
    };
}

var 
re_xmlChars getInverseReplacer(inverseXML);

function 
escapeXML(data){
    return 
data
            
.replace(re_xmlCharssingleCharReplacer)
            .
replace(re_astralSymbolsastralReplacer)
            .
replace(re_nonASCIIsingleCharReplacer);
}

exports.escape escapeXML;
?>
Онлайн: 0
Реклама