mirror of
				https://github.com/JuanCanham/HackMyResume.git
				synced 2025-10-31 05:07:26 +00:00 
			
		
		
		
	Class-ify Underscore/Handlebars engine.
This commit is contained in:
		| @@ -17,31 +17,34 @@ Definition of the HandlebarsGenerator class. | ||||
|  | ||||
|   /** | ||||
|   Perform template-based resume generation using Handlebars.js. | ||||
|   @method generate | ||||
|   @class HandlebarsGenerator | ||||
|   */ | ||||
|   module.exports = function( json, jst, format, cssInfo, opts, theme ) { | ||||
|   var HandlebarsGenerator = module.exports = { | ||||
|  | ||||
|     // Pre-compile any partials present in the theme. | ||||
|     _.each( theme.partials, function( el ) { | ||||
|       var tplData = FS.readFileSync( el.path, 'utf8' ); | ||||
|       var compiledTemplate = HANDLEBARS.compile( tplData ); | ||||
|       HANDLEBARS.registerPartial( el.name, compiledTemplate ); | ||||
|     }); | ||||
|     generate: function( json, jst, format, cssInfo, opts, theme ) { | ||||
|  | ||||
|     // Register necessary helpers. | ||||
|     registerHelpers(); | ||||
|       // Pre-compile any partials present in the theme. | ||||
|       _.each( theme.partials, function( el ) { | ||||
|         var tplData = FS.readFileSync( el.path, 'utf8' ); | ||||
|         var compiledTemplate = HANDLEBARS.compile( tplData ); | ||||
|         HANDLEBARS.registerPartial( el.name, compiledTemplate ); | ||||
|       }); | ||||
|  | ||||
|     // Compile and run the Handlebars template. | ||||
|     var template = HANDLEBARS.compile(jst); | ||||
|     return template({ | ||||
|       r: json, | ||||
|       filt: opts.filters, | ||||
|       cssInfo: cssInfo, | ||||
|       headFragment: opts.headFragment || '' | ||||
|     }); | ||||
|       // Register necessary helpers. | ||||
|       registerHelpers(); | ||||
|  | ||||
|       // Compile and run the Handlebars template. | ||||
|       var template = HANDLEBARS.compile(jst); | ||||
|       return template({ | ||||
|         r: format === 'html' || format === 'pdf' ? json.markdownify() : json, | ||||
|         RAW: json, | ||||
|         filt: opts.filters, | ||||
|         cssInfo: cssInfo, | ||||
|         headFragment: opts.headFragment || '' | ||||
|       }); | ||||
|  | ||||
|     } | ||||
|  | ||||
|   }; | ||||
|  | ||||
|  | ||||
|  | ||||
| }()); | ||||
|   | ||||
| @@ -1,37 +1,52 @@ | ||||
| /** | ||||
| Definition of the UnderscoreGenerator class. | ||||
| @license MIT. Copyright (c) 2015 James Devlin / FluentDesk. | ||||
| @module underscore-generator.js | ||||
| */ | ||||
|  | ||||
| (function() { | ||||
|  | ||||
|  | ||||
|  | ||||
|   var _ = require('underscore'); | ||||
|  | ||||
|   module.exports = function( json, jst, format, cssInfo, opts, theme ) { | ||||
|  | ||||
|     // Tweak underscore's default template delimeters | ||||
|     var delims = (opts.themeObj && opts.themeObj.delimeters) || opts.template; | ||||
|     if( opts.themeObj && opts.themeObj.delimeters ) { | ||||
|       delims = _.mapObject( delims, function(val,key) { | ||||
|         return new RegExp( val, "ig"); | ||||
|  | ||||
|   /** | ||||
|   Perform template-based resume generation using Underscore.js. | ||||
|   @class UnderscoreGenerator | ||||
|   */ | ||||
|   var UnderscoreGenerator = module.exports = { | ||||
|  | ||||
|     generate: function( json, jst, format, cssInfo, opts, theme ) { | ||||
|  | ||||
|       // Tweak underscore's default template delimeters | ||||
|       var delims = (opts.themeObj && opts.themeObj.delimeters) || opts.template; | ||||
|       if( opts.themeObj && opts.themeObj.delimeters ) { | ||||
|         delims = _.mapObject( delims, function(val,key) { | ||||
|           return new RegExp( val, "ig"); | ||||
|         }); | ||||
|       } | ||||
|       _.templateSettings = delims; | ||||
|  | ||||
|       // Strip {# comments #} | ||||
|       jst = jst.replace( delims.comment, ''); | ||||
|  | ||||
|       // Compile and run the template. TODO: avoid unnecessary recompiles. | ||||
|       var compiled = _.template(jst); | ||||
|       var ret = compiled({ | ||||
|         r: format === 'html' || format === 'pdf' ? json.markdownify() : json, | ||||
|         filt: opts.filters, | ||||
|         XML: require('xml-escape'), | ||||
|         RAW: json, | ||||
|         cssInfo: cssInfo, | ||||
|         headFragment: opts.headFragment || '' | ||||
|       }); | ||||
|       return ret; | ||||
|     } | ||||
|     _.templateSettings = delims; | ||||
|  | ||||
|     // Strip {# comments #} | ||||
|     jst = jst.replace( delims.comment, ''); | ||||
|     // Compile and run the template. TODO: avoid unnecessary recompiles. | ||||
|     var compiled = _.template(jst); | ||||
|     var ret = compiled({ | ||||
|       r: format === 'html' || format === 'pdf' ? json.markdownify() : json, | ||||
|       filt: opts.filters, | ||||
|       XML: require('xml-escape'), | ||||
|       RAW: json, | ||||
|       cssInfo: cssInfo, | ||||
|       headFragment: opts.headFragment || '' | ||||
|     }); | ||||
|     return ret; | ||||
|  | ||||
|   }; | ||||
|  | ||||
|    | ||||
|  | ||||
| }()); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user