From ca91032fb589e6f5c9899610a0be0745696043ac Mon Sep 17 00:00:00 2001 From: Thomas Davis Date: Wed, 18 Nov 2020 11:16:34 +1100 Subject: [PATCH] fix: added supported for relative theme path (#414) --- index.js | 7 +++++-- lib/builder/index.js | 7 ++++++- lib/export-resume/index.js | 3 +++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 61bc3e91..15979419 100755 --- a/index.js +++ b/index.js @@ -9,6 +9,10 @@ const path = require('path'); const normalizeTheme = (value, defaultValue) => { const theme = value || defaultValue; + // TODO - This is not great, but bypasses this function if it is a relative path + if (theme[0] === '.') { + return theme; + } return theme.match('jsonresume-theme-.*') ? theme : `jsonresume-theme-${theme}`; @@ -22,9 +26,8 @@ lib.preFlow(async (err, results) => { .version(pkg.version) .option( '-t, --theme ', - 'Specify theme used by `export` (default: even)', + 'Specify theme used by `export` and `serve` (default: even) or specify a path starting with . (use . for current directory or ../some/other/dir)', normalizeTheme, - 'jsonresume-theme-even', ) .option('-f, --format ', 'Used by `export`.') .option( diff --git a/lib/builder/index.js b/lib/builder/index.js index dcf4b9fe..f2317775 100644 --- a/lib/builder/index.js +++ b/lib/builder/index.js @@ -1,6 +1,6 @@ const themeServer = process.env.THEME_SERVER || 'https://themes.jsonresume.org/theme/'; - +const path = require('path'); const fs = require('fs'); const request = require('superagent'); const chalk = require('chalk'); @@ -51,9 +51,14 @@ module.exports = (theme, _dir, resumeFilename, cb) => { let render; try { + if (theme[0] === '.') { + theme = path.join(process.cwd(), theme, 'index.js'); + } render = require(theme).render; } catch (e) { // The file does not exist. + console.log('The specified local theme failed with the error below'); + console.log(chalk.red(e)); } if (render && typeof render === 'function') { diff --git a/lib/export-resume/index.js b/lib/export-resume/index.js index ae8cf3d4..3b27fec6 100644 --- a/lib/export-resume/index.js +++ b/lib/export-resume/index.js @@ -56,6 +56,9 @@ const createHtml = (resumeJson, fileName, theme, format, callback) => { }; const getThemePkg = (theme) => { + if (theme[0] === '.') { + theme = path.join(process.cwd(), theme, 'index.js'); + } try { const themePkg = require(theme); return themePkg;