snakeskin
Advanced tools
Comparing version 2.3.13 to 2.3.14
@@ -7,3 +7,3 @@ #!/usr/bin/env node | ||
Program | ||
.version('2.3.13') | ||
.version('2.3.14') | ||
.option('-s, --source [src]', 'source file') | ||
@@ -10,0 +10,0 @@ .option('-o, --output [src]', 'output file') |
@@ -6,3 +6,3 @@ /*! | ||
var Snakeskin = { | ||
VERSION: '2.3.13', | ||
VERSION: '2.3.14', | ||
@@ -9,0 +9,0 @@ Directions: {}, |
@@ -10,4 +10,4 @@ /** | ||
if (!dirObj.parentTplName && !dirObj.protoStart) { | ||
dirObj.save(command + ';'); | ||
dirObj.save(dirObj.prepareOutput(command + ';')); | ||
} | ||
}; |
{ | ||
"name": "snakeskin", | ||
"version": "2.3.13", | ||
"version": "2.3.14", | ||
"description": "Snakeskin — компилятор блочных шаблонов c поддержкой наследования.\r Независим от среды исполнения, для работы нужен лишь интерпретатор JavaScript.", | ||
@@ -5,0 +5,0 @@ "main": "snakeskin.js", |
@@ -392,2 +392,5 @@ # Snakeskin | ||
Если вы транслируете шаблоны с помощью консольного приложения snakeskin, то в файлах шаблонов вы можете использовать | ||
директивы [jossy](https://github.com/Kolyaj/Jossy) для сборки множества файлов. | ||
## Установка | ||
@@ -394,0 +397,0 @@ |
@@ -6,3 +6,3 @@ /*! | ||
var Snakeskin = { | ||
VERSION: '2.3.13', | ||
VERSION: '2.3.14', | ||
@@ -9,0 +9,0 @@ Directions: {}, |
@@ -1,2 +0,2 @@ | ||
var Snakeskin={VERSION:"2.3.13",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
var Snakeskin={VERSION:"2.3.14",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
(function(g){function h(a){return k[a]}function l(a){return m[a]}Snakeskin.forEach=function(a,c,e){var b=-1,d;if(Array.isArray(a))for(d=a.length;++b<d;)if(e){if(!1===c.call(e,a[b],b,0===b,b===d-1,d))break}else{if(!1===c(a[b],b,0===b,b===d-1,d))break}else{var b=0,f;for(f in a)a.hasOwnProperty(f)&&b++;d=b;b=-1;for(f in a)if(a.hasOwnProperty(f))if(b++,e){if(!1===c.call(e,a[f],f,b,0===b,b===d-1,d))break}else if(!1===c(a[f],f,b,0===b,b===d-1,d))break}};var k={"&":"&","<":"<",">":">",'"':""", | ||
@@ -3,0 +3,0 @@ "'":"'","/":"/"},n=/[&<>"'\/]/g;Snakeskin.Filters.html=function(a){return(a+"").replace(n,h)};Snakeskin.Filters.undef=function(a){return"undefined"!==typeof a?a:""};var m={"&":"&","<":"<",">":">",""":'"',"'":"'","/":"/"},p=/&|<|>|"|'|//g;Snakeskin.Filters.uhtml=function(a){return(a+"").replace(p,l)};var q=/<\/?[^>]+>/g;Snakeskin.Filters.stripTags=function(a){return(a+"").replace(q,"")};var r=/%5B/g,s=/%5D/g;Snakeskin.Filters.uri=function(a){return encodeURI(a+ |
@@ -1,2 +0,2 @@ | ||
var Snakeskin={VERSION:"2.3.13",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
var Snakeskin={VERSION:"2.3.14",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
(function(G){function M(b){return N[b]}function O(b){return P[b]}function n(b,c,a){var e=this.prototype,d;for(d in e)e.hasOwnProperty(d)&&e[d].init&&(this[d]=e[d].init());this.canWrite=!0;this.i=-1;this.openBlockI=0;this.posCache={};this.sysPosCache={};this.quotContent=[];var f=this.cDataContent=[];this.source=String(b).replace(/{cdata}([\s\S]*?){(?:\/cdata|end cdata)}/gm,function(a,b){f.push(b);return"__SNAKESKIN_CDATA__"+(f.length-1)}).trim();this.res=(a?"":"/* This code is generated automatically, don't alter it. */")+ | ||
@@ -33,5 +33,5 @@ (c?"var Snakeskin = global.Snakeskin;exports.liveInit = function (path) { Snakeskin = require(path);exec();return this;};function exec() {":"")}Array.isArray||(Array.isArray=function(b){return"[object Array]"===Object.prototype.toString.call(b)});String.prototype.trim||(String.prototype.trim=function(){for(var b=this.replace(/^\s\s*/,""),c=b.length;/\s/.test(b.charAt(--c)););return b.substring(0,c+1)});Snakeskin.forEach=function(b,c,a){var e=-1,d;if(Array.isArray(b))for(d=b.length;++e<d;)if(a){if(!1=== | ||
a.i=h-1,a.openBlockI++,!1===Snakeskin.write[l]&&(a.res=a.res.replace(RegExp("/\\* Snakeskin template: "+l.replace(/([.\[\]^$])/gm,"\\$1")+";[\\s\\S]*?/\\* Snakeskin template\\. \\*/","m"),"")),a.parentTplName=null,!1;a.save("return __SNAKESKIN_RESULT__; };if (typeof Snakeskin !== 'undefined') {Snakeskin.cache['"+a.defEscape(a.pasteDangerBlocks(d))+"'] = "+(e.commonJS?"exports.":"")+d+";}/* Snakeskin template. */");a.canWrite=!0;a.tplName=null}};Snakeskin.Directions.call=function(b,c,a){a.parentTplName|| | ||
a.protoStart||a.save("__SNAKESKIN_RESULT__ += "+b+";")};Snakeskin.Directions["void"]=function(b,c,a){a.parentTplName||a.protoStart||a.save(b+";")};n.prototype.varCache={init:function(){return{}}};Snakeskin.Directions["var"]=function(b,c,a,e){c=a.tplName;var d=b.split("=")[0].trim();if(y[c][d]||C[c][d])throw a.error('Variable "'+d+'" is already defined as constant (command: {var '+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');a.varCache[d]=!0;a.parentTplName||a.protoStart||a.save(a.prepareOutput("var "+ | ||
b+";",!0))};Snakeskin.Directions.block=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(A[c][b])throw a.error('Block "'+b+'" is already defined (command: {block '+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');A[c][b]={from:a.i-a.startI+1}}a.pushPos("block",{name:b,i:++a.openBlockI},!0)};Snakeskin.Directions.blockEnd=function(b,c,a,e){b=a.popPos("block");e.dryRun||(!a.parentTplName||a.hasPos("block")||a.hasPos("proto"))&& | ||
a.parentTplName||(A[a.tplName][b.name].to=a.i-a.startI-c-1)};n.prototype.protoStart=!1;Snakeskin.Directions.proto=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(u[c][b])throw a.error('Proto "'+b+'" is already defined (command: {proto'+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');u[c][b]={from:a.i-a.startI+1}}a.pushPos("proto",{name:b,i:++a.openBlockI,startI:a.i+1},!0);d||(a.protoStart=!0)};Snakeskin.Directions.protoEnd= | ||
a.protoStart||a.save("__SNAKESKIN_RESULT__ += "+b+";")};Snakeskin.Directions["void"]=function(b,c,a){a.parentTplName||a.protoStart||a.save(a.prepareOutput(b+";"))};n.prototype.varCache={init:function(){return{}}};Snakeskin.Directions["var"]=function(b,c,a,e){c=a.tplName;var d=b.split("=")[0].trim();if(y[c][d]||C[c][d])throw a.error('Variable "'+d+'" is already defined as constant (command: {var '+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');a.varCache[d]=!0;a.parentTplName||a.protoStart|| | ||
a.save(a.prepareOutput("var "+b+";",!0))};Snakeskin.Directions.block=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(A[c][b])throw a.error('Block "'+b+'" is already defined (command: {block '+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');A[c][b]={from:a.i-a.startI+1}}a.pushPos("block",{name:b,i:++a.openBlockI},!0)};Snakeskin.Directions.blockEnd=function(b,c,a,e){b=a.popPos("block");e.dryRun||(!a.parentTplName||a.hasPos("block")|| | ||
a.hasPos("proto"))&&a.parentTplName||(A[a.tplName][b.name].to=a.i-a.startI-c-1)};n.prototype.protoStart=!1;Snakeskin.Directions.proto=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(u[c][b])throw a.error('Proto "'+b+'" is already defined (command: {proto'+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');u[c][b]={from:a.i-a.startI+1}}a.pushPos("proto",{name:b,i:++a.openBlockI,startI:a.i+1},!0);d||(a.protoStart=!0)};Snakeskin.Directions.protoEnd= | ||
function(b,c,a,e){var d=a.tplName;b=a.parentTplName;var f=a.i,h=a.backHash,l=a.popPos("proto");e.dryRun||(!b||a.hasPos("block")||a.hasPos("proto"))&&b||(u[d][l.name].to=f-a.startI-c-1,H[d]=f-a.startI+1);b||(u[d][l.name].body=Snakeskin.compile("{template "+d+"()}"+a.source.substring(l.startI,f-c-1)+"{end}",null,null,!0,a.getPos("with")));h[l.name]&&!h[l.name].protoStart&&(Snakeskin.forEach(h[l.name],function(b){a.replace(a.res.substring(0,b)+u[d][l.name].body+a.res.substring(b))}),delete h[l.name], | ||
@@ -38,0 +38,0 @@ a.backHashI--);a.hasPos("proto")||(a.protoStart=!1)};n.prototype.backHash={init:function(){return{}}};n.prototype.backHashI=0;n.prototype.lastBack=null;Snakeskin.Directions.apply=function(b,c,a){a.parentTplName||a.hasPos("proto")||(u[a.tplName][b]?a.save(u[a.tplName][b].body):(a.backHash[b]||(a.backHash[b]=[],a.backHash[b].protoStart=a.protoStart,a.lastBack=b,a.backHashI++),a.backHash[b].push(a.res.length)))};Snakeskin.Directions.forEach=function(b,c,a){a.pushPos("forEach",++a.openBlockI);a.parentTplName|| |
Sorry, the diff of this file is too big to display
6548449
5008
425