Lohand
A library for wrapping many Lodash functions into Handlebars.
Installation
npm install lohand
Basic Setup
var handlebars = require;require .registerAll;
Individual Helpers
var lohand = require; lohand.helpers; // a dictionary of helpers
Testing
npm test
Helpers
Iterators
every
{{#every 3 [1, 2, 3]}} <!-- index % 3 === 0 -->{{else}} <!-- otherwise -->{{/every}}
iter
{{#iter items}} {{i}} // index {{iPlus1}} // index + 1{{/iter}}
Collection
at
{{at [1, 2, 3] 1}}→ 2
pluck
{{at {foo: 'bar'} 'foo'}}→ bar
sample
{{#each (sample [1, 2, 3], 2)}} {{this}};{{/each}}1;3;
shuffle
{{#each (shuffle [1, 2, 3])}} {{this}};{{/each}}3;1;2;
size
{{size [1, 2, 3]}}→ 3
Comparisons
endsWith
{{#endsWith 'abc' 'c'}} <!-- string starts with 'c' -->{{else}} <!-- string does not start with 'c' -->{{/endsWith}}
eq
{{#eq val1 val2}} <!-- === -->{{else}} <!-- !== -->{{/eq}}
greaterThan
{{#greaterThan left right}} <!-- left > right -->{{else}} <!-- left <= right -->{{/greaterThan}}
lessThan
{{#lessThan left right}} <!-- left < right -->{{else}} <!-- left >= right -->{{/lessThan}}
startsWith
{{#startsWith 'abc' 'a'}} // if 'abc' starts with 'a'{{else}} // if 'abc' does not start with 'a'{{/startsWith}}
Strings
camelCase
Utilizes Lodash’s camelCase.
{{camelCase 'Foo Bar'}}→ fooBar
capitalize
{{capitalize 'foo bar'}}→ Foo Bar
deburr
{{deburr 'déjà vu'}}→ deja vu
encodeURIComponent
{{encodeURIComponent 'Foo Bar'}}→ Foo%20Bar
kebabCase
{{kebabCase 'Foo Bar'}} // 'foo-bar'
markdown
Utilizes Showdown to transform text into Markdown.
{{{markdown '# Foo'}}}→ <h1>Foo</h1>
encodeURIComponent
{{encodeURIComponent 'Foo Bar'}}→ Foo%20Bar
kebabCase
{{kebabCase 'Foo Bar'}} // 'foo-bar'
markdown
{{{markdown '# Foo'}}}
pad
{{pad 'abc' 8}} // ' abc '{{pad 'abc' 8 '_-'}} // _-abc_-_
padLeft
{{padLeft 'abc' 6}} // ' abc'{{padLeft 'abc' 6 '_-'}} // _-_abc
padRight
{{padRight 'abc' 6}} // 'abc '{{padRight 'abc' 6 '_-'}} // abc_-_
parseInt
{{parseInt '08'}} // 8
possessive
{{possessive 'Susan'}} // Susan’s{{possessive 'Chris'}} // Chris’
repeat
{{repeat '*' 3}} // ***
snakeCase
{{snakeCase 'Foo Bar'}} // foo_bar
startCase
A naive version of “Title Case” which simply upper cases the first letter of each word.
{{startCase '--foo-bar'}}<!-- Foo Bar -->
trim
{{trim ' abc '}}<!-- abc --> {{trim '-_-abc-_-' '_-'}}<!-- abc -->
trimLeft
{{trimLeft ' abc '}}<!-- 'abc ' --> {{trimLeft '-_-abc-_-' '_-'}}<!-- abc-_- -->
trimRight
{{trimRight ' abc '}}<!-- ' abc' --> {{trimRight '-_-abc-_-' '_-'}}<!-- -_-abc -->
trunc
{{trunc 'hi-diddly-ho there, neighborino'}}<!-- hi-diddly-ho there, neighbo... --> {{trunc 'hi-diddly-ho there, neighborino' 24}}<!-- hi-diddly-ho there, n... -->
unescape
{{unescape 'fred, barney, & pebbles'}}<!-- fred, barney, & pebbles -->
words
{{#each (words 'foo bar')}} <div>{{this}}</div>{{/each}} <div>foo</div><div>bar</div>
union
{{union [1, 2, 3] [4, 5]}}// → [1, 2, 3, 4, 5]