mirror of
https://github.com/JuanCanham/HackMyResume.git
synced 2025-05-04 13:27:07 +01:00
Add baseline Handlebars support.
This commit is contained in:
18
src/eng/handlebars-generator.js
Normal file
18
src/eng/handlebars-generator.js
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
Handlebars template generate for FluentCV.
|
||||
@license MIT. Copyright (c) 2015 James M. Devlin / FluentDesk.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
|
||||
var _ = require('underscore');
|
||||
var HANDLEBARS = require('handlebars');
|
||||
|
||||
module.exports = function( json, jst, format, cssInfo, opts ) {
|
||||
|
||||
var template = HANDLEBARS.compile(jst);
|
||||
return template( { r: json, filt: opts.filters, cssInfo: cssInfo, headFragment: opts.headFragment || '' } )
|
||||
|
||||
};
|
||||
|
||||
}());
|
37
src/eng/underscore-generator.js
Normal file
37
src/eng/underscore-generator.js
Normal file
@ -0,0 +1,37 @@
|
||||
/**
|
||||
Underscore template generate for FluentCV.
|
||||
@license MIT. Copyright (c) 2015 James M. Devlin / FluentDesk.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
|
||||
var _ = require('underscore');
|
||||
|
||||
module.exports = function( json, jst, format, cssInfo, opts ) {
|
||||
|
||||
// Tweak underscore's default template delimeters
|
||||
_.templateSettings = opts.template;
|
||||
|
||||
// Convert {{ someVar }} to {% print(filt.out(someVar) %}
|
||||
// Convert {{ someVar|someFilter }} to {% print(filt.someFilter(someVar) %}
|
||||
jst = jst.replace( _.templateSettings.interpolate, function replace(m, p1) {
|
||||
if( p1.indexOf('|') > -1 ) {
|
||||
var terms = p1.split('|');
|
||||
return '{% print( filt.' + terms[1] + '( ' + terms[0] + ' )) %}';
|
||||
}
|
||||
else {
|
||||
return '{% print( filt.out(' + p1 + ') ) %}';
|
||||
}
|
||||
});
|
||||
|
||||
// Strip {# comments #}
|
||||
jst = jst.replace( _.templateSettings.comment, '');
|
||||
|
||||
// Compile and run the template. TODO: avoid unnecessary recompiles.
|
||||
jst = _.template(jst)({ r: json, filt: opts.filters, cssInfo: cssInfo, headFragment: opts.headFragment || '' });
|
||||
|
||||
return jst;
|
||||
|
||||
};
|
||||
|
||||
}());
|
Reference in New Issue
Block a user