Skip to content

Commit 9300907

Browse files
committed
fixed
1 parent 090a654 commit 9300907

File tree

2 files changed

+61
-45
lines changed

2 files changed

+61
-45
lines changed

CHANGELOG

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ THIS CHANGELOG IS AN ATTEMPT TO DOCUMENT CHANGES TO THIS PROJECT.
22

33
PL-node-v0.0.5
44
- FIX: type in organisms global header
5-
- THX: thanks to @colynb for the heads up
5+
- FIX: flat-structured pattern items rendered as if they had sub-menus #4
6+
- ADD: Load all grunt tasks using matchdep
7+
- THX: thanks to @colynb for the typo heads up
8+
- THX: shoutout to @joemcgill for better dependency loading
69

710
PL-node-v0.0.4
811
- ADD: An explicit MIT license

builder/patternlab.js

Lines changed: 57 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,6 @@ module.exports = function(grunt) {
149149

150150
//build the patternlab website
151151
var patternlabSiteTemplate = grunt.file.read('./source/_patternlab-files/index.mustache');
152-
153-
//the patternlab site requires a lot of partials to be rendered.
154-
//patternNav.
155-
var patternNavTemplate = grunt.file.read('./source/_patternlab-files/partials/patternNav.mustache');
156152

157153
//loop through all patterns. deciding to do this separate from the recursion, even at a performance hit, to attempt to separate the tasks of styleguide creation versus site menu creation
158154
for(var i = 0; i < patternlab.patterns.length; i++){
@@ -174,7 +170,13 @@ module.exports = function(grunt) {
174170
//get the navSubItem
175171
var navSubItemName = pattern.patternName.replace(/-/g, ' ');
176172

177-
grunt.log.writeln('new bucket found: ' + bucketName + " " + navItemName + " " + navSubItemName);
173+
//grunt.log.writeln('new bucket found: ' + bucketName + " " + navItemName + " " + navSubItemName);
174+
175+
//test whether the pattern struture is flat or not - usually due to a template or page
176+
var flatPatternItem = false;
177+
if(navItemName === bucketName){
178+
flatPatternItem = true;
179+
}
178180

179181
//assume the navItem does not exist.
180182
var navItem = new oNavItem(navItemName);
@@ -184,18 +186,28 @@ module.exports = function(grunt) {
184186
navSubItem.patternPath = pattern.patternLink;
185187
navSubItem.patternPartial = bucketName + "-" + navSubItemName;
186188

187-
//TODO patternItems....
189+
//if it is flat - we should not add the pattern to patternPaths
190+
if(flatPatternItem){
191+
//grunt.log.writeln('flat source structure found for ' + navItemName + " " + bucketName);
192+
193+
//add the navItem to patternItems
194+
bucket.patternItems.push(navSubItem);
195+
196+
} else{
197+
//add the more complex nav items
198+
bucket.navItems.push(navItem);
199+
bucket.navItemsIndex.push(navItemName);
200+
navItem.navSubItems.push(navSubItem);
201+
navItem.navSubItemsIndex.push(navSubItemName);
202+
203+
//add to patternPaths
204+
patternlab.patternPaths[bucketName][navSubItemName] = pattern.subdir + "/" + pattern.filename.substring(0, pattern.filename.indexOf('.'));
205+
}
188206

189-
//add everything
190-
navItem.navSubItems.push(navSubItem);
191-
navItem.navSubItemsIndex.push(navSubItemName);
192-
bucket.navItems.push(navItem);
193-
bucket.navItemsIndex.push(navItemName);
207+
//add the bucket.
194208
patternlab.buckets.push(bucket);
195209
patternlab.bucketIndex.push(bucketName);
196210

197-
//add to patternPaths
198-
patternlab.patternPaths[bucketName][navSubItemName] = pattern.subdir + "/" + pattern.filename.substring(0, pattern.filename.indexOf('.'));
199211

200212
//done
201213

@@ -207,52 +219,50 @@ module.exports = function(grunt) {
207219
var navItemName = pattern.subdir.split('-').pop();
208220

209221
//get the navSubItem
210-
var navSubItemName = pattern.patternName.replace(/-/g, ' ');;
211-
212-
//check to see if navItem exists
213-
var navItemIndex = bucket.navItemsIndex.indexOf(navItemName);
214-
if(navItemIndex === -1){
222+
var navSubItemName = pattern.patternName.replace(/-/g, ' ');
215223

216-
var navItem = new oNavItem(navItemName);
224+
//assume the navSubItem does not exist.
225+
var navSubItem = new oNavSubItem(navSubItemName);
226+
navSubItem.patternPath = pattern.patternLink;
227+
navSubItem.patternPartial = bucketName + "-" + navSubItemName;
217228

218-
//assume the navSubItem does not exist.
219-
var navSubItem = new oNavSubItem(navSubItemName);
220-
navSubItem.patternPath = pattern.patternLink;
221-
navSubItem.patternPartial = bucketName + "-" + navSubItemName;
229+
//test whether the pattern struture is flat or not - usually due to a template or page
230+
var flatPatternItem = false;
231+
if(navItemName === bucketName){
232+
flatPatternItem = true;
233+
}
222234

223-
//add the navItem and navSubItem
224-
navItem.navSubItems.push(navSubItem);
225-
navItem.navSubItemsIndex.push(navSubItemName);
226-
bucket.navItems.push(navItem);
227-
bucket.navItemsIndex.push(navItemName);
235+
//if it is flat - we should not add the pattern to patternPaths
236+
if(flatPatternItem){
237+
//grunt.log.writeln('flat source structure found for ' + navItemName + " " + bucketName);
228238

239+
//add the navItem to patternItems
240+
bucket.patternItems.push(navSubItem);
229241
} else{
230-
var navItem = bucket.navItems[navItemIndex];
242+
//check to see if navItem exists
243+
var navItemIndex = bucket.navItemsIndex.indexOf(navItemName);
244+
if(navItemIndex === -1){
231245

232-
//check to see if the navSubItem exists
233-
var navSubItemIndex = navItem.navSubItemsIndex.indexOf(navSubItemName);
234-
if(navSubItemIndex === -1){
246+
var navItem = new oNavItem(navItemName);
235247

236-
var navSubItem = new oNavSubItem(navSubItemName);
237-
navSubItem.patternPath = pattern.patternLink;
238-
navSubItem.patternPartial = bucketName + "-" + navSubItemName;
239-
240-
//add the navSubItem
248+
//add the navItem and navSubItem
241249
navItem.navSubItems.push(navSubItem);
242250
navItem.navSubItemsIndex.push(navSubItemName);
251+
bucket.navItems.push(navItem);
252+
bucket.navItemsIndex.push(navItemName);
243253

244254
} else{
245-
246-
var navSubItem = navItem.navSubItems[navSubItemsIndex];
247-
248-
navSubItem.patternPath = pattern.patternLink;
249-
navSubItem.patternPartial = bucketName + "-" + navSubItemName;
255+
//add the navSubItem
256+
var navItem = bucket.navItems[navItemIndex];
257+
navItem.navSubItems.push(navSubItem);
258+
navItem.navSubItemsIndex.push(navSubItemName);
250259
}
251260

261+
//add to patternPaths
262+
patternlab.patternPaths[bucketName][navSubItemName] = pattern.subdir + "/" + pattern.filename.substring(0, pattern.filename.indexOf('.'));
263+
252264
}
253265

254-
//add to patternPaths
255-
patternlab.patternPaths[bucketName][navSubItemName] = pattern.subdir + "/" + pattern.filename.substring(0, pattern.filename.indexOf('.'));
256266

257267
//check to see if this bucket has a View All yet. If not, add it.
258268
// var navItem = bucket.navItems[navItemIndex];
@@ -290,6 +300,9 @@ module.exports = function(grunt) {
290300

291301
};
292302

303+
//the patternlab site requires a lot of partials to be rendered.
304+
//patternNav
305+
var patternNavTemplate = grunt.file.read('./source/_patternlab-files/partials/patternNav.mustache');
293306
var patternNavPartialHtml = mustache.render(patternNavTemplate, patternlab);
294307

295308
//ishControls

0 commit comments

Comments
 (0)