From 9bd2f77f0693f52b729da512d6ecf5d6dd457692 Mon Sep 17 00:00:00 2001 From: Carlos Liu Date: Wed, 18 Jan 2017 13:03:58 +1300 Subject: [PATCH 01/11] use path.sep to match omitted directories replace '/' with path.sep to work in both Windows and POSIX env --- core/lib/ui_builder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/lib/ui_builder.js b/core/lib/ui_builder.js index 22e4357fd..26349967d 100644 --- a/core/lib/ui_builder.js +++ b/core/lib/ui_builder.js @@ -82,7 +82,7 @@ var ui_builder = function () { } //this pattern is contained with a directory prefixed with an underscore (a handy way to hide whole directories from the nav - isOmitted = pattern.relPath.charAt(0) === '_' || pattern.relPath.indexOf('/_') > -1; + isOmitted = pattern.relPath.charAt(0) === '_' || pattern.relPath.indexOf(path.sep + '_') > -1; if (isOmitted) { if (patternlab.config.debug) { console.log('Omitting ' + pattern.patternPartial + ' from styleguide patterns because its contained within an underscored directory.'); From 0b173829edf35783b8c10c539443874a0f251d8f Mon Sep 17 00:00:00 2001 From: BRIAN MUENZENMEYER Date: Thu, 9 Feb 2017 00:06:08 -0600 Subject: [PATCH 02/11] made some small improvements to plugin loading - which will move us toward a better state --- core/lib/patternlab.js | 2 ++ core/lib/plugin_manager.js | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index 80785662c..8db95639f 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -99,6 +99,8 @@ function checkConfiguration(patternlab) { * Finds and calls the main method of any found plugins. * @param patternlab - global data store */ + +//todo, move this to plugin_manager function initializePlugins(patternlab) { if (!patternlab.config.plugins) { return; } diff --git a/core/lib/plugin_manager.js b/core/lib/plugin_manager.js index 136cc7324..bcd9c6812 100644 --- a/core/lib/plugin_manager.js +++ b/core/lib/plugin_manager.js @@ -42,10 +42,25 @@ var plugin_manager = function (config, configPath) { if (!diskConfig.plugins) { diskConfig.plugins = {}; } - diskConfig.plugins[pluginName] = { - enabled: true, - initialized: false - }; + + if (!diskConfig.plugins[pluginName]) { + diskConfig.plugins[pluginName] = { + enabled: true, + initialized: false, + options: {} + }; + } + + const pluginPathConfig = path.resolve(pluginPath, 'config.json'); + try { + var pluginConfigJSON = require(pluginPathConfig); + if (!diskConfig.plugins[pluginName].options) { + + diskConfig.plugins[pluginName].options = pluginConfigJSON; + } + } catch (ex) { + //a config.json file is not required at this time + } //write config entry back fs.outputFileSync(path.resolve(configPath), JSON.stringify(diskConfig, null, 2)); From 3ac229df6210c74d85779da5241c7520b7e38846 Mon Sep 17 00:00:00 2001 From: BRIAN MUENZENMEYER Date: Tue, 21 Feb 2017 04:59:28 -0600 Subject: [PATCH 03/11] fix unit tests for #597 --- test/ui_builder_tests.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/ui_builder_tests.js b/test/ui_builder_tests.js index 38137c692..5bf8af416 100644 --- a/test/ui_builder_tests.js +++ b/test/ui_builder_tests.js @@ -7,6 +7,7 @@ var eol = require('os').EOL; var Pattern = require('../core/lib/object_factory').Pattern; var extend = require('util')._extend; var uiModule = rewire('../core/lib/ui_builder'); +var path = require('path'); //set up a global mocks - we don't want to be writing/rendering any files right now var fsMock = { @@ -80,7 +81,7 @@ tap.test('isPatternExcluded - returns true when pattern within underscored direc //arrange var patternlab = createFakePatternLab({}); var pattern = Pattern.createEmpty({ - relPath: '_hidden/patternsubtype/foo.mustache', + relPath: path.sep + '_hidden' + path.sep + 'patternsubtype' + path.sep + 'foo.mustache', isPattern: true, fileName : 'foo.mustache', patternPartial: 'hidden-foo' @@ -98,7 +99,7 @@ tap.test('isPatternExcluded - returns true when pattern within underscored direc //arrange var patternlab = createFakePatternLab({}); var pattern = Pattern.createEmpty({ - relPath: 'shown/_patternsubtype/foo.mustache', + relPath: 'shown' + path.sep + '_patternsubtype' + path.sep + 'foo.mustache', isPattern: true, fileName : 'foo.mustache', patternPartial: 'shown-foo' From 7c40810d4e489dc9b0e9e8c141de0c698cd654de Mon Sep 17 00:00:00 2001 From: BRIAN MUENZENMEYER Date: Tue, 21 Feb 2017 05:00:18 -0600 Subject: [PATCH 04/11] bump version number --- core/lib/patternlab.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index 8db95639f..f6d6bbffc 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v2.7.2 - 2017 + * patternlab-node - v2.8.0 - 2017 * * Brian Muenzenmeyer, Geoff Pursell, Raphael Okon, tburny and the web community. * Licensed under the MIT license. diff --git a/package.json b/package.json index 1788cc398..0f615b509 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "patternlab-node", "description": "Pattern Lab is a collection of tools to help you create atomic design systems. This is the node command line interface (CLI).", - "version": "2.7.2", + "version": "2.8.0", "main": "./core/lib/patternlab.js", "dependencies": { "chalk": "^1.1.3", From 6768e7bf8ef1bd156ea275e821b424af3d4d715b Mon Sep 17 00:00:00 2001 From: Andrew Leedham Date: Tue, 21 Feb 2017 11:35:27 +0000 Subject: [PATCH 05/11] Add sub pattern styleguide exclusion --- core/lib/ui_builder.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/core/lib/ui_builder.js b/core/lib/ui_builder.js index 22e4357fd..7099ad842 100644 --- a/core/lib/ui_builder.js +++ b/core/lib/ui_builder.js @@ -484,7 +484,7 @@ var ui_builder = function () { _.forEach(styleguidePatterns.patternGroups, function (patternTypeObj, patternType) { var p; - var typePatterns = []; + var typePatterns = [], styleGuidePatterns = []; var styleGuideExcludes = patternlab.config.styleGuideExcludes; _.forOwn(patternTypeObj, function (patternSubtypes, patternSubtype) { @@ -508,6 +508,19 @@ var ui_builder = function () { return pat.isDocPattern; }); + //determine if we should omit this subpatterntype completely from the viewall page + var omitPatternType = styleGuideExcludes && styleGuideExcludes.length + && _.some(styleGuideExcludes, function (exclude) { + return exclude === patternType + '/' + patternSubtype; + }); + if (omitPatternType) { + if (patternlab.config.debug) { + console.log('Omitting ' + patternType + '/' + patternSubtype + ' from building a viewall page because its patternGroup is specified in styleguideExcludes.'); + } + } else { + styleguidePatterns = styleguidePatterns.concat(subtypePatterns); + } + typePatterns = typePatterns.concat(subtypePatterns); var viewAllHTML = buildViewAllHTML(patternlab, subtypePatterns, patternPartial); @@ -544,7 +557,7 @@ var ui_builder = function () { console.log('Omitting ' + patternType + ' from building a viewall page because its patternGroup is specified in styleguideExcludes.'); } } else { - patterns = patterns.concat(typePatterns); + patterns = patterns.concat(styleguidePatterns); } }); return patterns; From 5166a0db3b960aca28c929725c2c4c8364f89246 Mon Sep 17 00:00:00 2001 From: Andrew Leedham Date: Tue, 21 Feb 2017 11:53:48 +0000 Subject: [PATCH 06/11] Change variable conflict name --- core/lib/ui_builder.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/lib/ui_builder.js b/core/lib/ui_builder.js index 7099ad842..76bab9c15 100644 --- a/core/lib/ui_builder.js +++ b/core/lib/ui_builder.js @@ -484,7 +484,7 @@ var ui_builder = function () { _.forEach(styleguidePatterns.patternGroups, function (patternTypeObj, patternType) { var p; - var typePatterns = [], styleGuidePatterns = []; + var typePatterns = [], styleguideTypePatterns = []; var styleGuideExcludes = patternlab.config.styleGuideExcludes; _.forOwn(patternTypeObj, function (patternSubtypes, patternSubtype) { @@ -518,7 +518,7 @@ var ui_builder = function () { console.log('Omitting ' + patternType + '/' + patternSubtype + ' from building a viewall page because its patternGroup is specified in styleguideExcludes.'); } } else { - styleguidePatterns = styleguidePatterns.concat(subtypePatterns); + styleguideTypePatterns = styleguideTypePatterns.concat(subtypePatterns); } typePatterns = typePatterns.concat(subtypePatterns); @@ -557,7 +557,7 @@ var ui_builder = function () { console.log('Omitting ' + patternType + ' from building a viewall page because its patternGroup is specified in styleguideExcludes.'); } } else { - patterns = patterns.concat(styleguidePatterns); + patterns = patterns.concat(styleguideTypePatterns); } }); return patterns; From 35ab05045c43011e9f2035f0a572efd2adf64633 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 21 Feb 2017 07:42:35 -0600 Subject: [PATCH 07/11] don't add an empty options key only to check for options before writing the good stuff. d'oh! --- core/lib/plugin_manager.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/lib/plugin_manager.js b/core/lib/plugin_manager.js index bcd9c6812..3cac4fd69 100644 --- a/core/lib/plugin_manager.js +++ b/core/lib/plugin_manager.js @@ -46,8 +46,7 @@ var plugin_manager = function (config, configPath) { if (!diskConfig.plugins[pluginName]) { diskConfig.plugins[pluginName] = { enabled: true, - initialized: false, - options: {} + initialized: false }; } @@ -55,7 +54,6 @@ var plugin_manager = function (config, configPath) { try { var pluginConfigJSON = require(pluginPathConfig); if (!diskConfig.plugins[pluginName].options) { - diskConfig.plugins[pluginName].options = pluginConfigJSON; } } catch (ex) { From 6c2da1e5661a4140382458d19cd307f86250b89c Mon Sep 17 00:00:00 2001 From: Andrew Leedham Date: Tue, 21 Feb 2017 14:48:20 +0000 Subject: [PATCH 08/11] Update debug message Changed 'patternGroup' to 'patternSubGroup' --- core/lib/ui_builder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/lib/ui_builder.js b/core/lib/ui_builder.js index 76bab9c15..d12b19146 100644 --- a/core/lib/ui_builder.js +++ b/core/lib/ui_builder.js @@ -515,7 +515,7 @@ var ui_builder = function () { }); if (omitPatternType) { if (patternlab.config.debug) { - console.log('Omitting ' + patternType + '/' + patternSubtype + ' from building a viewall page because its patternGroup is specified in styleguideExcludes.'); + console.log('Omitting ' + patternType + '/' + patternSubtype + ' from building a viewall page because its patternSubGroup is specified in styleguideExcludes.'); } } else { styleguideTypePatterns = styleguideTypePatterns.concat(subtypePatterns); From 6e885cbfbea4f8a3b0145ab1a9504e903c602ae9 Mon Sep 17 00:00:00 2001 From: BRIAN MUENZENMEYER Date: Wed, 22 Feb 2017 21:20:42 -0600 Subject: [PATCH 09/11] accept either case of styleguideExcludes closes #627 --- core/lib/ui_builder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/lib/ui_builder.js b/core/lib/ui_builder.js index 73227d570..c62ea9193 100644 --- a/core/lib/ui_builder.js +++ b/core/lib/ui_builder.js @@ -485,7 +485,7 @@ var ui_builder = function () { var p; var typePatterns = [], styleguideTypePatterns = []; - var styleGuideExcludes = patternlab.config.styleGuideExcludes; + var styleGuideExcludes = patternlab.config.styleGuideExcludes || patternlab.config.styleguideExcludes; _.forOwn(patternTypeObj, function (patternSubtypes, patternSubtype) { From 674c01ce56713f1257aece3502b87f15ca292521 Mon Sep 17 00:00:00 2001 From: Tobias Brennecke Date: Fri, 24 Feb 2017 13:04:04 +0100 Subject: [PATCH 10/11] Fix #629 Race condition when loading starter kits --- core/lib/starterkit_manager.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/lib/starterkit_manager.js b/core/lib/starterkit_manager.js index db4153486..77fbf91a2 100644 --- a/core/lib/starterkit_manager.js +++ b/core/lib/starterkit_manager.js @@ -36,12 +36,13 @@ var starterkit_manager = function (config) { console.log('Overwriting contents of', paths.source.root, 'during starterkit load.'); } - fs.copy(kitPath, paths.source.root, function (ex) { - if (ex) { - console.error(ex); - } - util.debug('starterkit ' + starterkitName + ' loaded successfully.'); - }); + try { + fs.copySync(kitPath, paths.source.root); + } catch (ex) { + util.error(ex); + return; + } + util.debug('starterkit ' + starterkitName + ' loaded successfully.'); } } catch (ex) { console.log(ex); From ae79e0346bd93d6f223328596d0671816281430f Mon Sep 17 00:00:00 2001 From: BRIAN MUENZENMEYER Date: Mon, 20 Feb 2017 20:49:13 -0600 Subject: [PATCH 11/11] expose getSupportedTemplateExtensions part of #625 --- core/lib/patternlab.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index f6d6bbffc..cfdc88c0c 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -180,6 +180,10 @@ var patternlab_engine = function (config) { console.log(patternlab.package.version); } + function getSupportedTemplateExtensions(){ + return patternlab.engines.getSupportedFileExtensions(); + } + function help() { console.log(''); @@ -629,6 +633,9 @@ var patternlab_engine = function (config) { }, installplugin: function (pluginName) { installPlugin(pluginName); + }, + getSupportedTemplateExtensions: function () { + return getSupportedTemplateExtensions(); } }; };