feat: allow standalone FRESH themes to inherit

This commit is contained in:
hacksalot 2018-02-05 23:43:38 -05:00
parent 66f3cb15c9
commit 7262578c81
No known key found for this signature in database
GPG Key ID: 2F343EC247CA4B06
2 changed files with 25 additions and 7 deletions

View File

@ -62,10 +62,14 @@ Definition of the FRESHTheme class.
if (this.inherits) {
cached = {};
_.each(this.inherits, function(th, key) {
var d, themePath, themesFolder;
themesFolder = require.resolve('fresh-themes');
d = parsePath(themeFolder).dirname;
themePath = PATH.join(d, th);
var d, themePath, themesObj;
themesObj = require('fresh-themes');
if (_.has(themesObj.themes, th)) {
themePath = PATH.join(parsePath(require.resolve('fresh-themes')).dirname, '/themes/', th);
} else {
d = parsePath(th).dirname;
themePath = PATH.join(d, th);
}
cached[th] = cached[th] || new FRESHTheme().open(themePath);
return formatsHash[key] = cached[th].getFormat(key);
});

View File

@ -59,9 +59,23 @@ class FRESHTheme
if @inherits
cached = { }
_.each @inherits, (th, key) ->
themesFolder = require.resolve 'fresh-themes'
d = parsePath( themeFolder ).dirname
themePath = PATH.join d, th
# First, see if this is one of the predefined FRESH themes. There are
# only a handful of these, but they may change over time, so we need to
# query the official source of truth: the fresh-themes repository, which
# mounts the themes conveniently by name to the module object, and which
# is embedded locally inside the HackMyResume installation.
# TODO: merge this code with
themesObj = require 'fresh-themes'
if _.has themesObj.themes, th
themePath = PATH.join(
parsePath( require.resolve('fresh-themes') ).dirname,
'/themes/',
th
)
else
d = parsePath( th ).dirname
themePath = PATH.join d, th
cached[ th ] = cached[th] || new FRESHTheme().open( themePath )
formatsHash[ key ] = cached[ th ].getFormat( key )