1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-11-22 16:30:11 +00:00

Support global theme partials (interim).

This commit is contained in:
hacksalot 2016-01-06 10:48:51 -05:00
parent bc9f0d468f
commit 712b504168
4 changed files with 57 additions and 4 deletions

View File

@ -50,7 +50,7 @@
"copy": "^0.1.3",
"fresca": "~0.3.0",
"fresh-resume-empty": "^0.1.0",
"fresh-themes": "~0.11.0-beta",
"fresh-themes": "~0.12.0-beta",
"fs-extra": "^0.24.0",
"handlebars": "^4.0.5",
"html": "0.0.10",
@ -66,6 +66,7 @@
"phantom": "^0.8.4",
"recursive-readdir-sync": "^1.0.6",
"simple-html-tokenizer": "^0.2.0",
"slash": "^1.0.0",
"string-padding": "^1.0.2",
"string.prototype.startswith": "^0.2.0",
"underscore": "^1.8.3",

View File

@ -1,9 +1,11 @@
/**
Definition of the HandlebarsGenerator class.
@license MIT. Copyright (c) 2015 James Devlin / FluentDesk.
@license MIT. See LICENSE.md for details.
@module handlebars-generator.js
*/
(function() {
@ -11,7 +13,11 @@ Definition of the HandlebarsGenerator class.
var _ = require('underscore')
, HANDLEBARS = require('handlebars')
, FS = require('fs')
, registerHelpers = require('./handlebars-helpers');
, registerHelpers = require('./handlebars-helpers')
, PATH = require('path')
, parsePath = require('parse-filepath')
, READFILES = require('recursive-readdir-sync')
, SLASH = require('slash');
@ -21,8 +27,51 @@ Definition of the HandlebarsGenerator class.
*/
var HandlebarsGenerator = module.exports = {
initialized: false,
init: function( format, theme ) {
// TODO: Move .partialsInitialized to application state; shouldn't be on theme
if( !theme.partialsInitialized ) {
if( format !== 'html' && format != 'doc' )
return;
// Precompile global partials in the /partials folder
var partialsFolder = PATH.join(
parsePath( require.resolve('fresh-themes') ).dirname,
'/partials/',
format
);
_.each( READFILES( partialsFolder, function(error){ }), function( el ) {
var pathInfo = parsePath( el );
var name = SLASH( PATH.relative( partialsFolder, el )
.replace(/\.html$|\.xml$/, '') );
// section-employment, section-education, etc
if( pathInfo.dirname.endsWith('section') ) {
name = SLASH(name.replace(/\.html$|\.xml$/, ''));
}
else {
}
var tplData = FS.readFileSync( el, 'utf8' );
var compiledTemplate = HANDLEBARS.compile( tplData );
HANDLEBARS.registerPartial( name, compiledTemplate );
theme.partialsInitialized = true;
});
}
},
generate: function( json, jst, format, cssInfo, opts, theme ) {
this.init( format, theme );
// Pre-compile any partials present in the theme.
_.each( theme.partials, function( el ) {
var tplData = FS.readFileSync( el.path, 'utf8' );
@ -52,6 +101,7 @@ Definition of the HandlebarsGenerator class.
}
};
};
}());

View File

@ -235,6 +235,7 @@ Definition of the TemplateGenerator class.
// Verify the specified theme name/path
var tFolder = PATH.join(
parsePath( require.resolve('fresh-themes') ).dirname,
'/themes/',
this.opts.theme
);

View File

@ -307,6 +307,7 @@ Implementation of the 'generate' verb for HackMyResume.
function verify_theme( themeNameOrPath ) {
var tFolder = PATH.join(
parsePath ( require.resolve('fresh-themes') ).dirname,
'/themes/',
themeNameOrPath
);
var exists = require('path-exists').sync;