diff --git a/CHANGELOG b/CHANGELOG index c2b2fea19..8ad1f0731 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,9 @@ THIS CHANGELOG IS AN ATTEMPT TO DOCUMENT CHANGES TO THIS PROJECT. +PL-node-v1.1.3 +- FIX: Added pattern type view all pages to the navigation, which users view all 'Atoms/Molecules/Organisms' etc. +- THX: Thanks to @gael-boyenval for originally pointing out the omission. + PL-node-v1.1.2 - FIX: Greatly improved the browsersync configuration, so that it only fires on the iframe, preventing users from losing their scroll position. Also lightened up the styling and made it less obtrusive. - THX: Thanks to @geoffp for taking the lead on this issue. diff --git a/builder/lineage_hunter.js b/builder/lineage_hunter.js index 8a8616006..7325a5fde 100644 --- a/builder/lineage_hunter.js +++ b/builder/lineage_hunter.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/list_item_hunter.js b/builder/list_item_hunter.js index 7e0bc8217..93aa57890 100644 --- a/builder/list_item_hunter.js +++ b/builder/list_item_hunter.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/media_hunter.js b/builder/media_hunter.js index b532c91bb..3ee48f4fe 100644 --- a/builder/media_hunter.js +++ b/builder/media_hunter.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/object_factory.js b/builder/object_factory.js index bf1770855..5526bdc18 100644 --- a/builder/object_factory.js +++ b/builder/object_factory.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/parameter_hunter.js b/builder/parameter_hunter.js index 0162f573a..a3f574951 100644 --- a/builder/parameter_hunter.js +++ b/builder/parameter_hunter.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/pattern_assembler.js b/builder/pattern_assembler.js index 888fd09e2..d200f059d 100644 --- a/builder/pattern_assembler.js +++ b/builder/pattern_assembler.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/pattern_exporter.js b/builder/pattern_exporter.js index 3a70bea98..3d04658d3 100644 --- a/builder/pattern_exporter.js +++ b/builder/pattern_exporter.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/patternlab.js b/builder/patternlab.js index 2404d6c9a..aae791f23 100644 --- a/builder/patternlab.js +++ b/builder/patternlab.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. @@ -207,7 +207,8 @@ var patternlab_engine = function (config) { //build the viewall pages var prevSubdir = '', - i; + prevGroup = '', + i; for (i = 0; i < patternlab.patterns.length; i++) { // skip underscore-prefixed files @@ -220,6 +221,35 @@ var patternlab_engine = function (config) { var pattern = patternlab.patterns[i]; + //create the view all for the section + // check if the current section is different from the previous one + if (pattern.patternGroup != prevGroup){ + prevGroup = pattern.patternGroup; + + var viewAllPatterns = [], + patternPartial = "viewall-" + pattern.patternGroup, + j; + + for (j = 0; j < patternlab.patterns.length; j++) { + if (patternlab.patterns[j].patternGroup === pattern.patternGroup) { + //again, skip any sibling patterns to the current one that may have underscores + if(isPatternExcluded(patternlab.patterns[j])){ + if(patternlab.config.debug){ + console.log('Omitting ' + patternlab.patterns[j].key + " from view all sibling rendering."); + } + continue; + } + + viewAllPatterns.push(patternlab.patterns[j]); + } + } + + var viewAllTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'viewall.mustache'), 'utf8'); + var viewAllHtml = pattern_assembler.renderPattern(viewAllTemplate, {partials: viewAllPatterns, patternPartial: patternPartial}); + fs.outputFileSync(paths.public.patterns + pattern.subdir.slice(0, pattern.subdir.indexOf(pattern.patternGroup) + pattern.patternGroup.length) + '/index.html', viewAllHtml); + } + + //create the view all for the subsection // check if the current sub section is different from the previous one if (pattern.subdir !== prevSubdir) { prevSubdir = pattern.subdir; @@ -318,6 +348,14 @@ var patternlab_engine = function (config) { //add to patternPaths addToPatternPaths(bucketName, pattern); + //add the navViewAllItem + var navViewAllItem = new of.oNavSubItem("View All"); + navViewAllItem.patternPath = pattern.subdir.slice(0, pattern.subdir.indexOf(pattern.patternGroup) + pattern.patternGroup.length) + "/index.html"; + navViewAllItem.patternPartial = "viewall-" + pattern.patternGroup; + + bucket.patternItems.push(navViewAllItem); + patternlab.viewAllPaths[bucketName]['viewall'] = pattern.subdir.slice(0, pattern.subdir.indexOf(pattern.patternGroup) + pattern.patternGroup.length); + } //add the bucket. @@ -393,14 +431,15 @@ var patternlab_engine = function (config) { } } - //add the navViewAllSubItem - var navViewAllSubItem = new of.oNavSubItem(""); - navViewAllSubItem.patternName = "View All"; - navViewAllSubItem.patternPath = pattern.flatPatternPath + "/index.html"; - navViewAllSubItem.patternPartial = "viewall-" + pattern.patternGroup + "-" + pattern.patternSubGroup; - //check if we are moving to a new sub section in the next loop if (!patternlab.patterns[i + 1] || pattern.patternSubGroup !== patternlab.patterns[i + 1].patternSubGroup) { + + //add the navViewAllSubItem + var navViewAllSubItem = new of.oNavSubItem(""); + navViewAllSubItem.patternName = "View All"; + navViewAllSubItem.patternPath = pattern.flatPatternPath + "/index.html"; + navViewAllSubItem.patternPartial = "viewall-" + pattern.patternGroup + "-" + pattern.patternSubGroup; + navItem.navSubItems.push(navViewAllSubItem); navItem.navSubItemsIndex.push("View All"); } diff --git a/builder/patternlab_grunt.js b/builder/patternlab_grunt.js index 7f22c987f..93b50b1e7 100644 --- a/builder/patternlab_grunt.js +++ b/builder/patternlab_grunt.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/patternlab_gulp.js b/builder/patternlab_gulp.js index a0125e657..e036b1bb5 100644 --- a/builder/patternlab_gulp.js +++ b/builder/patternlab_gulp.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/pseudopattern_hunter.js b/builder/pseudopattern_hunter.js index f2765aaa5..77773040e 100644 --- a/builder/pseudopattern_hunter.js +++ b/builder/pseudopattern_hunter.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/builder/style_modifier_hunter.js b/builder/style_modifier_hunter.js index 11cce9d27..a19fbf081 100644 --- a/builder/style_modifier_hunter.js +++ b/builder/style_modifier_hunter.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v1.1.2 - 2016 + * patternlab-node - v1.1.3 - 2016 * * Brian Muenzenmeyer, and the web community. * Licensed under the MIT license. diff --git a/package.gulp.json b/package.gulp.json index 9130aca63..7bdc7cb2c 100644 --- a/package.gulp.json +++ b/package.gulp.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": "1.1.2", + "version": "1.1.3", "main": "./builder/patternlab.js", "dependencies": { "del": "^2.2.0", diff --git a/package.json b/package.json index 47ac92da2..4cfbf8671 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": "1.1.2", + "version": "1.1.3", "main": "./builder/patternlab.js", "dependencies": { "diveSync": "^0.3.0",