diff --git a/README.md b/README.md index 46c0b48..c37c9a9 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,12 @@ Swag is a growing collection of helpers for [Handlebars.js](https://github.com/w Swag = require('swag'); Swag.registerHelpers(Handlebars); + + //Usage with express3-handlebars + exphbs = require('express3-handlebars); + hbs = exphbs.create({ + handlebars: Handlebars //Pass the Handlebar instance with Swag + }); ## Swag.registerHelpers This method will register all Swag helpers with the instance of Handlebars you pass to it. @@ -626,6 +632,23 @@ Usage: {{round value}} 6 +#### random + +Returns a random number within the provided limit. + +Parameters: + + lower [int] - The lower limit for the random number. (Required) + upper [int] - The upper limit for the random number. (Required) + +Usage: + + lower = 10 + upper = 50 + + {{random lower upper}} + + 27 ## Numbers @@ -1139,7 +1162,23 @@ Usage: # Your template {{partial "planet_express" data template}} +### PhotosetLayout + +Generates layout for [Photoset Grid](http://stylehatch.github.io/photoset-grid/) plugin to render Tumblr like image layouts. +Parameters: +images[array] - An array of images for which the layout has to be generated. (Required) +Eg: ["image1.jpg","image2.jpg","image3.jpg"] + +Usage: + ``` +
+ {{#unserialize images}} + + {{/unserialize}} +
+ ``` + [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/elving/swag/trend.png)](https://bitdeli.com/free "Bitdeli Badge") diff --git a/lib/swag.js b/lib/swag.js index 1272ca5..df09c11 100644 --- a/lib/swag.js +++ b/lib/swag.js @@ -407,6 +407,20 @@ } return result; }, 'array'); + + Swag.addHelper('unserialize', function(_array,options) { + var array = JSON.parse(_array); + var index, result, value, _i, _len; + result = ''; + for (index = _i = 0, _len = array.length; _i < _len; index = ++_i) { + value = array[index]; + result += options.fn({ + item: value, + index: index + }); + } + return result; + }, 'array'); Swag.addHelper('eachProperty', function(obj, options) { var key, result, value; @@ -420,6 +434,15 @@ } return result; }, 'object'); + + Swag.addHelper('photoLayout', function(_array,options) { + var array = JSON.parse(_array); + var _len = array.length; + if(_len == 1) return 1; + if(_len == 2) return 21; + if(_len == 3) return 12; + if(_len > 3) return 121; + }); Swag.addHelper('add', function(value, addition) { value = parseFloat(value); diff --git a/src/swag.math.coffee b/src/swag.math.coffee index 7dba3c0..e2fa01a 100644 --- a/src/swag.math.coffee +++ b/src/swag.math.coffee @@ -36,3 +36,9 @@ Swag.addHelper 'round', (value) -> value = parseFloat value Math.round value , 'number' + +Swag.addHelper 'random', (lower, upper) -> + lower = parseInt lower + upper = parseInt upper + Math.floor Math.random() * (upper - lower + 1) + lower +, ['number', 'number']