@@ -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