diff --git a/src/helpers/generic-helpers.coffee b/src/helpers/generic-helpers.coffee index 6e7c9e3..337b4d7 100644 --- a/src/helpers/generic-helpers.coffee +++ b/src/helpers/generic-helpers.coffee @@ -17,11 +17,15 @@ LO = require 'lodash' PATH = require 'path' printf = require 'printf' _ = require 'underscore' -unused = require '../utils/string'; +unused = require '../utils/string' + + ###* Generic template helper function definitions. ### GenericHelpers = module.exports = + + ###* Convert the input date to a specified format through Moment.js. If date is invalid, will return the time provided by the user, @@ -35,6 +39,8 @@ GenericHelpers = module.exports = datetime || (typeof fallback == 'string' ? fallback : (fallback == true ? 'Present' : null)); + + ###* Given a resume sub-object with a start/end date, format a representation of the date range. @@ -44,12 +50,16 @@ GenericHelpers = module.exports = return '' if !obj _fromTo obj.start, obj.end, fmt, sep, fallback, options + + ###* Format a from/to date range for display. @method toFrom ### fromTo: () -> _fromTo.apply this, arguments + + ###* Return a named color value as an RRGGBB string. @method toFrom @@ -66,6 +76,8 @@ GenericHelpers = module.exports = return colorDefault ret + + ###* Return true if the section is present on the resume and has at least one element. @@ -84,6 +96,8 @@ GenericHelpers = module.exports = ret = options.fn @ ret + + ###* Emit the size of the specified named font. @param key {String} A named style from the "fonts" section of the theme's @@ -133,6 +147,7 @@ GenericHelpers = module.exports = ret + ###* Emit the font face (such as 'Helvetica' or 'Calibri') associated with the provided key. @@ -185,6 +200,8 @@ GenericHelpers = module.exports = return ret; + + ###* Emit a comma-delimited list of font names suitable associated with the provided key. @@ -240,6 +257,8 @@ GenericHelpers = module.exports = return ret; + + ###* Capitalize the first letter of the word. @method section @@ -248,6 +267,8 @@ GenericHelpers = module.exports = val = (val && val.trim()) || '' return if val then (val.charAt(0).toUpperCase() + val.slice(1)) else val + + ###* Return true if the context has the property or subpropery. @method has @@ -258,6 +279,8 @@ GenericHelpers = module.exports = return options.fn this return + + ###* Generic template helper function to display a user-overridable section title for a FRESH resume theme. Use this in lieue of hard-coding section @@ -291,6 +314,8 @@ GenericHelpers = module.exports = this.opts.stitles[ sname.toLowerCase().trim() ] ) || stitle; + + ###* Convert inline Markdown to inline WordProcessingML. @method wpml @@ -304,6 +329,7 @@ GenericHelpers = module.exports = return txt + ###* Emit a conditional link. @method link @@ -311,6 +337,8 @@ GenericHelpers = module.exports = link: ( text, url ) -> return if url && url.trim() then ('' + text + '') else text + + ###* Return the last word of the specified text. @method lastWord @@ -318,6 +346,8 @@ GenericHelpers = module.exports = lastWord: ( txt ) -> return if txt && txt.trim() then _.last( txt.split(' ') ) else '' + + ###* Convert a skill level to an RGB color triplet. TODO: refactor @method skillColor @@ -333,6 +363,8 @@ GenericHelpers = module.exports = [ '#FFFFFF', '#5CB85C', '#F1C40F', '#428BCA', '#C00000' ] return skillColors[idx] + + ###* Return an appropriate height. TODO: refactor @method lastWord @@ -341,6 +373,8 @@ GenericHelpers = module.exports = idx = skillLevelToIndex lvl ['38.25', '30', '16', '8', '0'][idx] + + ###* Return all but the last word of the input text. @method initialWords @@ -348,6 +382,8 @@ GenericHelpers = module.exports = initialWords: ( txt ) -> if txt && txt.trim() then _.initial( txt.split(' ') ).join(' ') else '' + + ###* Trim the protocol (http or https) from a URL/ @method trimURL @@ -355,6 +391,8 @@ GenericHelpers = module.exports = trimURL: ( url ) -> if url && url.trim() then url.trim().replace(/^https?:\/\//i, '') else '' + + ###* Convert text to lowercase. @method toLower @@ -362,6 +400,8 @@ GenericHelpers = module.exports = toLower: ( txt ) -> if txt && txt.trim() then txt.toLowerCase() else '' + + ###* Convert text to lowercase. @method toLower @@ -369,6 +409,8 @@ GenericHelpers = module.exports = toUpper: ( txt ) -> if txt && txt.trim() then txt.toUpperCase() else '' + + ###* Return true if either value is truthy. @method either @@ -377,6 +419,8 @@ GenericHelpers = module.exports = if lhs || rhs return options.fn this + + ###* Conditional stylesheet link. Creates a link to the specified stylesheet with or embeds the styles inline with , depending on the @@ -413,6 +457,8 @@ GenericHelpers = module.exports = # it when Handlebars is the chosen engine, which is most of the time. ret + + ###* Perform a generic comparison. See: http://doginthehat.com.au/2012/02/comparison-block-helper-for-handlebars-templates @@ -445,6 +491,8 @@ relies on kludging the running verb into. opts. _reportError = ( code, params ) -> GenericHelpers.opts.errHandler.err( code, params ) + + ###* Format a from/to date range for display. ### @@ -487,6 +535,8 @@ _fromTo = ( dateA, dateB, fmt, sep, fallback ) -> return dateFrom || dateTo return '' + + skillLevelToIndex = ( lvl ) -> idx = 0 if String.is( lvl ) @@ -507,6 +557,7 @@ skillLevelToIndex = ( lvl ) -> idx + # Note [1] -------------------------------------------------------------------- # Make sure it's precisely a string or array since some template engines jam # their options/context object into the last parameter and we are allowing the