123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- ;(function(window){
-
-
- var baidu = typeof module === 'undefined' ? (window.baidu = window.baidu || {}) : module.exports;
-
- baidu.template = function(str, data){
-
- var fn = (function(){
-
- if(!window.document){
- return bt._compile(str);
- };
-
- var element = document.getElementById(str);
- if (element) {
-
-
- if (bt.cache[str]) {
- return bt.cache[str];
- };
-
- var html = /^(textarea|input)$/i.test(element.nodeName) ? element.value : element.innerHTML;
- return bt._compile(html);
- }else{
-
-
- return bt._compile(str);
- };
- })();
-
- var result = bt._isObject(data) ? fn( data ) : fn;
- fn = null;
- return result;
- };
-
- var bt = baidu.template;
-
- bt.versions = bt.versions || [];
- bt.versions.push('1.0.6');
-
- bt.cache = {};
-
-
- bt.LEFT_DELIMITER = bt.LEFT_DELIMITER||'<%';
- bt.RIGHT_DELIMITER = bt.RIGHT_DELIMITER||'%>';
-
- bt.ESCAPE = true;
-
- bt._encodeHTML = function (source) {
- return String(source)
- .replace(/&/g,'&')
- .replace(/</g,'<')
- .replace(/>/g,'>')
- .replace(/\\/g,'\')
- .replace(/"/g,'"')
- .replace(/'/g,''');
- };
-
- bt._encodeReg = function (source) {
- return String(source).replace(/([.*+?^=!:${}()|[\]/\\])/g,'\\$1');
- };
-
- bt._encodeEventHTML = function (source) {
- return String(source)
- .replace(/&/g,'&')
- .replace(/</g,'<')
- .replace(/>/g,'>')
- .replace(/"/g,'"')
- .replace(/'/g,''')
- .replace(/\\\\/g,'\\')
- .replace(/\\\//g,'\/')
- .replace(/\\n/g,'\n')
- .replace(/\\r/g,'\r');
- };
-
- bt._compile = function(str){
- var funBody = "var _template_fun_array=[];\nvar fn=(function(__data__){\nvar _template_varName='';\nfor(name in __data__){\n_template_varName+=('var '+name+'=__data__[\"'+name+'\"];');\n};\neval(_template_varName);\n_template_fun_array.push('"+bt._analysisStr(str)+"');\n_template_varName=null;\n})(_template_object);\nfn = null;\nreturn _template_fun_array.join('');\n";
- return new Function("_template_object",funBody);
- };
-
- bt._isObject = function (source) {
- return 'function' === typeof source || !!(source && 'object' === typeof source);
- };
-
- bt._analysisStr = function(str){
-
- var _left_ = bt.LEFT_DELIMITER;
- var _right_ = bt.RIGHT_DELIMITER;
-
- var _left = bt._encodeReg(_left_);
- var _right = bt._encodeReg(_right_);
- str = String(str)
-
-
- .replace(new RegExp("("+_left+"[^"+_right+"]*)//.*\n","g"), "$1")
-
-
- .replace(new RegExp("<!--.*?-->", "g"),"")
- .replace(new RegExp(_left+"\\*.*?\\*"+_right, "g"),"")
-
- .replace(new RegExp("[\\r\\t\\n]","g"), "")
-
- .replace(new RegExp(_left+"(?:(?!"+_right+")[\\s\\S])*"+_right+"|((?:(?!"+_left+")[\\s\\S])+)","g"),function (item, $1) {
- var str = '';
- if($1){
-
- str = $1.replace(/\\/g,"\").replace(/'/g,''');
- while(/<[^<]*?'[^<]*?>/g.test(str)){
-
- str = str.replace(/(<[^<]*?)'([^<]*?>)/g,'$1\r$2')
- };
- }else{
- str = item;
- }
- return str ;
- });
- str = str
-
- .replace(new RegExp("("+_left+"[\\s]*?var[\\s]*?.*?[\\s]*?[^;])[\\s]*?"+_right,"g"),"$1;"+_right_)
-
- .replace(new RegExp("("+_left+":?[hvu]?[\\s]*?=[\\s]*?[^;|"+_right+"]*?);[\\s]*?"+_right,"g"),"$1"+_right_)
-
-
- .split(_left_).join("\t");
-
- if(bt.ESCAPE){
- str = str
-
-
-
- .replace(new RegExp("\\t=(.*?)"+_right,"g"),"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'");
- }else{
- str = str
-
-
- .replace(new RegExp("\\t=(.*?)"+_right,"g"),"',typeof($1) === 'undefined'?'':$1,'");
- };
- str = str
-
- .replace(new RegExp("\\t:h=(.*?)"+_right,"g"),"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'")
-
- .replace(new RegExp("\\t(?::=|-)(.*?)"+_right,"g"),"',typeof($1)==='undefined'?'':$1,'")
-
- .replace(new RegExp("\\t:u=(.*?)"+_right,"g"),"',typeof($1)==='undefined'?'':encodeURIComponent($1),'")
-
- .replace(new RegExp("\\t:v=(.*?)"+_right,"g"),"',typeof($1)==='undefined'?'':baidu.template._encodeEventHTML($1),'")
-
-
- .split("\t").join("');")
-
-
-
-
- .split(_right_).join("_template_fun_array.push('")
-
- .split("\r").join("\\'");
- return str;
- };
- })(window);
|