Skip to content

Commit 49538bd

Browse files
committed
1 parent e71107d commit 49538bd

File tree

2 files changed

+80
-13
lines changed

2 files changed

+80
-13
lines changed

core/lib/ui_builder.js

Lines changed: 80 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ var eol = require('os').EOL;
1111

1212
function addToPatternPaths(patternlab, patternTypeName, pattern) {
1313
//this is messy, could use a refactor.
14+
if (!patternlab.patternPaths[patternTypeName]) {
15+
patternlab.patternPaths[patternTypeName] = {};
16+
}
1417
patternlab.patternPaths[patternTypeName][pattern.patternBaseName] = pattern.subdir.replace(/\\/g, '/') + "/" + pattern.fileName.replace('~', '-');
1518
}
1619

@@ -29,31 +32,52 @@ function assembleStyleguidePatterns(patternlab) {
2932
if (styleguideExcludes && styleguideExcludes.length) {
3033
for (var i = 0; i < patternlab.patterns.length; i++) {
3134

35+
var pattern = patternlab.patterns[i];
36+
3237
// skip underscore-prefixed files
33-
if (isPatternExcluded(patternlab.patterns[i])) {
38+
if (isPatternExcluded(pattern)) {
3439
if (patternlab.config.debug) {
35-
console.log('Omitting ' + patternlab.patterns[i].patternPartial + " from styleguide pattern exclusion.");
40+
console.log('Omitting ' + pattern.patternPartial + " from styleguide pattern exclusion.");
3641
}
3742
continue;
3843
}
3944

40-
var partial = patternlab.patterns[i].patternPartial;
45+
//this is meant to be a homepage that is not present anywhere else
46+
if (pattern.patternPartial === patternlab.config.defaultPattern) {
47+
if (patternlab.config.debug) {
48+
console.log('omitting ' + pattern.patternPartial + ' from styleguide patterns because it is defined as a defaultPattern');
49+
}
50+
continue;
51+
}
52+
53+
var partial = pattern.patternPartial;
4154
var partialType = partial.substring(0, partial.indexOf('-'));
4255
var isExcluded = (styleguideExcludes.indexOf(partialType) > -1);
4356
if (!isExcluded) {
44-
styleguidePatterns.push(patternlab.patterns[i]);
57+
styleguidePatterns.push(pattern);
4558
}
4659
}
4760
} else {
4861
for (i = 0; i < patternlab.patterns.length; i++) {
62+
var pattern = patternlab.patterns[i];
63+
4964
// skip underscore-prefixed files
50-
if (isPatternExcluded(patternlab.patterns[i])) {
65+
if (isPatternExcluded(pattern)) {
5166
if (patternlab.config.debug) {
52-
console.log('Omitting ' + patternlab.patterns[i].patternPartial + " from styleguide pattern exclusion.");
67+
console.log('Omitting ' + pattern.patternPartial + " from styleguide pattern exclusion.");
5368
}
5469
continue;
5570
}
56-
styleguidePatterns.push(patternlab.patterns[i]);
71+
72+
//this is meant to be a homepage that is not present anywhere else
73+
if (pattern.patternPartial === patternlab.config.defaultPattern) {
74+
if (patternlab.config.debug) {
75+
console.log('omitting ' + pattern.patternPartial + ' from styleguide patterns because it is defined as a defaultPattern');
76+
}
77+
continue;
78+
}
79+
80+
styleguidePatterns.push(pattern);
5781
}
5882
}
5983

@@ -68,6 +92,19 @@ function buildNavigation(patternlab) {
6892
//todo: check if this is already available
6993
var patternTypeName = pattern.name.replace(/\\/g, '-').split('-')[1];
7094

95+
//exclude any named defaultPattern from the navigation.
96+
//this is meant to be a homepage that is not navigable
97+
if (pattern.patternPartial === patternlab.config.defaultPattern) {
98+
if (patternlab.config.debug) {
99+
console.log('omitting ' + pattern.patternPartial + ' from navigation because it is defined as a defaultPattern');
100+
}
101+
102+
//add to patternPaths before continuing
103+
addToPatternPaths(patternlab, patternTypeName, pattern);
104+
105+
continue;
106+
}
107+
71108
// skip underscore-prefixed files. don't create a patternType on account of an underscored pattern
72109
if (isPatternExcluded(pattern)) {
73110
continue;
@@ -101,7 +138,7 @@ function buildNavigation(patternlab) {
101138
var patternType = new of.oPatternType(patternTypeName);
102139

103140
//add patternPath and viewAllPath
104-
patternlab.patternPaths[patternTypeName] = {};
141+
patternlab.patternPaths[patternTypeName] = patternlab.patternPaths[patternTypeName] || {};
105142
patternlab.viewAllPaths[patternTypeName] = {};
106143

107144
//test whether the pattern structure is flat or not - usually due to a template or page
@@ -246,15 +283,24 @@ function buildViewAllPages(mainPageHeadHtml, patternlab) {
246283
var i;
247284

248285
for (i = 0; i < patternlab.patterns.length; i++) {
286+
287+
var pattern = patternlab.patterns[i];
288+
249289
// skip underscore-prefixed files
250-
if (isPatternExcluded(patternlab.patterns[i])) {
290+
if (isPatternExcluded(pattern)) {
251291
if (patternlab.config.debug) {
252-
console.log('Omitting ' + patternlab.patterns[i].patternPartial + " from view all rendering.");
292+
console.log('Omitting ' + pattern.patternPartial + " from view all rendering.");
253293
}
254294
continue;
255295
}
256296

257-
var pattern = patternlab.patterns[i];
297+
//this is meant to be a homepage that is not present anywhere else
298+
if (pattern.patternPartial === patternlab.config.defaultPattern) {
299+
if (patternlab.config.debug) {
300+
console.log('Omitting ' + pattern.patternPartial + ' from view all rendering because it is defined as a defaultPattern');
301+
}
302+
continue;
303+
}
258304

259305
//create the view all for the section
260306
// check if the current section is different from the previous one
@@ -275,6 +321,14 @@ function buildViewAllPages(mainPageHeadHtml, patternlab) {
275321
continue;
276322
}
277323

324+
//this is meant to be a homepage that is not present anywhere else
325+
if (patternlab.patterns[j].patternPartial === patternlab.config.defaultPattern) {
326+
if (patternlab.config.debug) {
327+
console.log('Omitting ' + pattern.patternPartial + ' from view all sibling rendering because it is defined as a defaultPattern');
328+
}
329+
continue;
330+
}
331+
278332
viewAllPatterns.push(patternlab.patterns[j]);
279333
}
280334
}
@@ -306,6 +360,14 @@ function buildViewAllPages(mainPageHeadHtml, patternlab) {
306360
continue;
307361
}
308362

363+
//this is meant to be a homepage that is not present anywhere else
364+
if (patternlab.patterns[j].patternPartial === patternlab.config.defaultPattern) {
365+
if (patternlab.config.debug) {
366+
console.log('Omitting ' + pattern.patternPartial + ' from view all sibling rendering because it is defined as a defaultPattern');
367+
}
368+
continue;
369+
}
370+
309371
viewAllPatterns.push(patternlab.patterns[j]);
310372
}
311373
}
@@ -428,11 +490,17 @@ function buildFrontEnd(patternlab) {
428490

429491
//plugins someday
430492
output += 'var plugins = [];' + eol;
493+
494+
//smaller config elements
495+
output += 'var defaultShowPatternInfo = ' + (patternlab.config.defaultShowPatternInfo ? patternlab.config.defaultShowPatternInfo : 'false') + ';' + eol;
496+
output += 'var defaultPattern = "' + (patternlab.config.defaultPattern ? patternlab.config.defaultPattern : 'all') + '";' + eol;
497+
498+
//write all ouytput to patternlab-data
431499
fs.outputFileSync(path.resolve(paths.public.data, 'patternlab-data.js'), output);
432500

433501
//annotations
434502
var annotationsJSON = annotation_exporter.gather();
435-
var annotations = 'var comments = ' + JSON.stringify(annotationsJSON);
503+
var annotations = 'var comments = { "comments" : ' + JSON.stringify(annotationsJSON) + '};';
436504
fs.outputFileSync(path.resolve(paths.public.annotations, 'annotations.js'), annotations);
437505

438506
}

patternlab-config.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,5 @@
5555
},
5656
"patternExportPatternPartials": [],
5757
"patternExportDirectory": "./pattern_exports/",
58-
"baseurl" : "",
5958
"cacheBust": true
6059
}

0 commit comments

Comments
 (0)