@@ -75,7 +75,7 @@ var patternlab_engine = function(){
75
75
76
76
//extract some information
77
77
var abspath = file . substring ( 2 ) ;
78
- var subdir = path . dirname ( path . relative ( './source/_patterns' , file ) ) ;
78
+ var subdir = path . dirname ( path . relative ( './source/_patterns' , file ) ) . replace ( '\\' , '/' ) ;
79
79
var filename = path . basename ( file ) ;
80
80
81
81
//ignore _underscored patterns, json (for now), and dotfiles
@@ -208,6 +208,33 @@ var patternlab_engine = function(){
208
208
var styleguideHtml = renderPattern ( styleguideTemplate , { partials : patternlab . patterns } ) ;
209
209
fs . outputFileSync ( './public/styleguide/html/styleguide.html' , styleguideHtml ) ;
210
210
211
+ //build the viewall pages
212
+ var prevSubdir = '' ,
213
+ i ;
214
+
215
+ for ( i = 0 ; i < patternlab . patterns . length ; i ++ ) {
216
+ var pattern = patternlab . patterns [ i ] ;
217
+
218
+ // check if the current sub section is different from the previous one
219
+ if ( pattern . subdir !== prevSubdir ) {
220
+ prevSubdir = pattern . subdir ;
221
+
222
+ var viewAllPatterns = [ ] ,
223
+ patternPartial = "viewall-" + pattern . patternGroup + "-" + pattern . patternSubGroup ,
224
+ j ;
225
+
226
+ for ( j = 0 ; j < patternlab . patterns . length ; j ++ ) {
227
+ if ( patternlab . patterns [ j ] . subdir == pattern . subdir ) {
228
+ viewAllPatterns . push ( patternlab . patterns [ j ] ) ;
229
+ }
230
+ }
231
+
232
+ var viewAllTemplate = fs . readFileSync ( './source/_patternlab-files/viewall.mustache' , 'utf8' ) ;
233
+ var viewAllHtml = renderPattern ( viewAllTemplate , { partials : viewAllPatterns , patternPartial : patternPartial } ) ;
234
+ fs . outputFileSync ( './public/patterns/' + pattern . flatPatternPath + '/index.html' , viewAllHtml ) ;
235
+ }
236
+ }
237
+
211
238
//build the patternlab website
212
239
var patternlabSiteTemplate = fs . readFileSync ( './source/_patternlab-files/index.mustache' , 'utf8' ) ;
213
240
@@ -222,8 +249,9 @@ var patternlab_engine = function(){
222
249
//add the bucket
223
250
var bucket = new of . oBucket ( bucketName ) ;
224
251
225
- //add paternPath
252
+ //add patternPath and viewAllPath
226
253
patternlab . patternPaths [ bucketName ] = { } ;
254
+ patternlab . viewAllPaths [ bucketName ] = { } ;
227
255
228
256
//get the navItem
229
257
var navItemName = pattern . subdir . split ( '-' ) . pop ( ) ;
@@ -331,12 +359,26 @@ var patternlab_engine = function(){
331
359
navItem . navSubItemsIndex . push ( navSubItemName ) ;
332
360
}
333
361
362
+ //add the navViewAllSubItem
363
+ var navViewAllSubItem = new of . oNavSubItem ( "" ) ;
364
+ navViewAllSubItem . patternName = "View All" ;
365
+ navViewAllSubItem . patternPath = pattern . flatPatternPath + "/index.html" ;
366
+ navViewAllSubItem . patternPartial = "viewall-" + pattern . patternGroup + "-" + pattern . patternSubGroup ;
367
+
368
+ //check if we are moving to a new sub section in the next loop
369
+ if ( pattern . patternSubGroup !== patternlab . patterns [ i + 1 ] . patternSubGroup ) {
370
+ navItem . navSubItems . push ( navViewAllSubItem ) ;
371
+ navItem . navSubItemsIndex . push ( "View All" ) ;
372
+ }
373
+
334
374
// just add to patternPaths
335
375
addToPatternPaths ( bucketName , pattern ) ;
336
376
}
337
377
338
378
}
339
379
380
+ patternlab . viewAllPaths [ bucketName ] [ pattern . patternSubGroup ] = pattern . flatPatternPath ;
381
+
340
382
}
341
383
342
384
//the patternlab site requires a lot of partials to be rendered.
@@ -355,14 +397,14 @@ var patternlab_engine = function(){
355
397
356
398
//viewAllPaths
357
399
var viewAllPathsTemplate = fs . readFileSync ( './source/_patternlab-files/partials/viewAllPaths.mustache' , 'utf8' ) ;
358
- var viewAllPathersPartialHtml = renderPattern ( viewAllPathsTemplate , { 'viewallpaths' : JSON . stringify ( patternlab . viewAllPaths ) } ) ;
400
+ var viewAllPathsPartialHtml = renderPattern ( viewAllPathsTemplate , { 'viewallpaths' : JSON . stringify ( patternlab . viewAllPaths ) } ) ;
359
401
360
402
//render the patternlab template, with all partials
361
403
var patternlabSiteHtml = renderPattern ( patternlabSiteTemplate , { } , {
362
404
'ishControls' : ishControlsPartialHtml ,
363
405
'patternNav' : patternNavPartialHtml ,
364
406
'patternPaths' : patternPathsPartialHtml ,
365
- 'viewAllPaths' : viewAllPathersPartialHtml
407
+ 'viewAllPaths' : viewAllPathsPartialHtml
366
408
} ) ;
367
409
fs . outputFileSync ( './public/index.html' , patternlabSiteHtml ) ;
368
410
}
0 commit comments