From ade60022fd5141f468ec9927fd9e24fb6717e270 Mon Sep 17 00:00:00 2001 From: hacksalot Date: Sat, 19 Dec 2015 00:24:21 -0500 Subject: [PATCH] Introduce new helpers. --- src/eng/handlebars-helpers.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/eng/handlebars-helpers.js b/src/eng/handlebars-helpers.js index 6e255b3..e3458bf 100644 --- a/src/eng/handlebars-helpers.js +++ b/src/eng/handlebars-helpers.js @@ -37,12 +37,41 @@ Template helper definitions for Handlebars. return txt; }); + // Set up a last-word helper so we can do: + // {{lastWord val [true|false]}} + HANDLEBARS.registerHelper("link", function( text, url ) { + return url && url.trim() ? + ('' + text + '') : text; + }); + // Set up a last-word helper so we can do: // {{lastWord val [true|false]}} HANDLEBARS.registerHelper("lastWord", function( txt ) { return txt && txt.trim() ? _.last( txt.split(' ') ) : ''; }); + // Set up a skill colorizing helper: + // {{skillColor val}} + HANDLEBARS.registerHelper("skillColor", function( lvl ) { + switch(lvl) { + case 'beginner': return '#5CB85C'; + case 'intermediate': return '#F1C40F'; + case 'advanced': return '#428BCA'; + case 'master': return '#C00000'; + } + }); + + // Set up a skill colorizing helper: + // {{skillColor val}} + HANDLEBARS.registerHelper("skillHeight", function( lvl ) { + switch(lvl) { + case 'beginner': return '30'; + case 'intermediate': return '16'; + case 'advanced': return '8'; + case 'master': return '0'; + } + }); + // Set up a Markdown-to-WordProcessingML helper so we can do: // {{initialWords val [true|false]}} HANDLEBARS.registerHelper("initialWords", function( txt ) { @@ -55,6 +84,12 @@ Template helper definitions for Handlebars. return url && url.trim() ? url.trim().replace(/^https?:\/\//i, '') : ''; }); + // Set up a URL-trimming helper to drop the protocol so we can do: + // {{trimURL url}} + HANDLEBARS.registerHelper("toLower", function( txt ) { + return txt && txt.trim() ? txt.toLowerCase() : ''; + }); + // Set up a Markdown-to-WordProcessingML helper so we can do: // {{either A B}} HANDLEBARS.registerHelper("either", function( lhs, rhs, options ) {