Skip to content

Commit 2564ab5

Browse files
committed
initial flat pattern support in the navigation
1 parent 6a65b06 commit 2564ab5

File tree

2 files changed

+89
-32
lines changed

2 files changed

+89
-32
lines changed

core/lib/pattern_assembler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ var pattern_assembler = function () {
132132

133133
function addSubtypePattern(subtypePattern, patternlab) {
134134
patternlab.subtypePatterns[subtypePattern.patternPartial] = subtypePattern;
135-
console.log(55, patternlab.subtypePatterns[subtypePattern.patternPartial]);
135+
//console.log(55, patternlab.subtypePatterns[subtypePattern.patternPartial]);
136136
}
137137

138138
// Render a pattern on request. Long-term, this should probably go away.

core/lib/ui_builder.js

Lines changed: 88 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ var ui_builder = function () {
142142
return docPattern;
143143
}
144144

145-
function createPatternType(patternlab, pattern) {
145+
function addPatternType(patternlab, pattern) {
146146

147147
patternlab.patternTypes.push(
148148
{
@@ -184,7 +184,7 @@ var ui_builder = function () {
184184
return patternSubType;
185185
}
186186

187-
function createPatternSubType(patternlab, pattern) {
187+
function addPatternSubType(patternlab, pattern) {
188188

189189
var patternType = getPatternType(patternlab, pattern);
190190

@@ -199,7 +199,17 @@ var ui_builder = function () {
199199
);
200200
}
201201

202-
function createPatternSubTypeItem(patternlab, pattern, createViewAllVariant) {
202+
function createPatternSubTypeItem(pattern) {
203+
return {
204+
patternPartial: pattern.patternPartial,
205+
patternName: pattern.patternName,
206+
patternState: pattern.patternState,
207+
patternSrcPath: encodeURI(pattern.subdir + pattern.filename),
208+
patternPath: encodeURI(pattern.flatPatternPath + '/' + pattern.flatPatternPath + '.html')
209+
}
210+
}
211+
212+
function addPatternSubTypeItem(patternlab, pattern, createViewAllVariant) {
203213
var patternSubType = getPatternSubType(patternlab, pattern);
204214

205215
if(createViewAllVariant) {
@@ -213,19 +223,32 @@ var ui_builder = function () {
213223
}
214224
);
215225
} else {
226+
227+
console.log(111, pattern.patternPartial);
228+
216229
patternSubType.patternSubtypeItems.push(
217-
{
218-
patternPartial: pattern.patternPartial,
219-
patternName: pattern.patternName,
220-
patternState: pattern.patternState,
221-
patternSrcPath: encodeURI(pattern.subdir + pattern.filename),
222-
patternPath: encodeURI(pattern.flatPatternPath + '/' + pattern.flatPatternPath + '.html')
223-
}
230+
createPatternSubTypeItem(pattern)
224231
);
225232
}
226233

227234
}
228235

236+
function addPatternItem(patternlab, pattern) {
237+
var patternType = getPatternType(patternlab, pattern);
238+
239+
if (!patternType) {
240+
console.log('something went wrong looking for patternType', pattern.patternType);
241+
process.exit(1);
242+
}
243+
244+
if (!patternType.patternItems) {
245+
patternType.patternItems = [];
246+
}
247+
248+
patternType.patternItems.push(createPatternSubTypeItem(pattern));
249+
250+
}
251+
229252
/*
230253
* groupPatterns
231254
* returns an object representing how the front end styleguide and navigation is structured
@@ -252,28 +275,47 @@ var ui_builder = function () {
252275

253276
groupedPatterns.patternGroups[pattern.patternGroup] = {};
254277

255-
createPatternType(patternlab, pattern);
278+
addPatternType(patternlab, pattern);
256279

257280
//todo: test this
258281
//groupedPatterns.patternGroups[pattern.patternGroup]['viewall-' + pattern.patternGroup] = injectDocumentationBlock(pattern, patternlab, false);
259282
}
260-
if (!groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup]) {
261283

262-
createPatternSubType(patternlab, pattern);
284+
//continue building navigation for nested patterns
285+
if (pattern.patternGroup !== pattern.patternSubGroup) {
286+
287+
if (!groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup]) {
288+
289+
addPatternSubType(patternlab, pattern);
290+
291+
pattern.isSubtypePattern = !pattern.isPattern;
292+
groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup] = {};
293+
groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup]['viewall-' + pattern.patternGroup + '-' + pattern.patternSubGroup] = injectDocumentationBlock(pattern, patternlab, true);
263294

264-
pattern.isSubtypePattern = !pattern.isPattern;
265-
groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup] = {};
266-
groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup]['viewall-' + pattern.patternGroup + '-' + pattern.patternSubGroup] = injectDocumentationBlock(pattern, patternlab, true);
295+
addToViewAllPaths(patternlab, pattern);
267296

268-
addToViewAllPaths(patternlab, pattern);
269-
createPatternSubTypeItem(patternlab, pattern, true);
297+
console.log(77, pattern.patternGroup, pattern.patternSubGroup);
298+
299+
addPatternSubTypeItem(patternlab, pattern, true);
300+
301+
}
302+
groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup][pattern.patternBaseName] = pattern;
303+
304+
addToPatternPaths(patternlab, pattern);
305+
//console.log(12, 'about to create patternsubtypeitem derived from', pattern.patternPartial, pattern.patternGroup, pattern.patternSubGroup);
306+
addPatternSubTypeItem(patternlab, pattern);
307+
308+
} else {
309+
310+
addPatternItem(patternlab, pattern);
311+
addToPatternPaths(patternlab, pattern);
270312

271313
}
272-
groupedPatterns.patternGroups[pattern.patternGroup][pattern.patternSubGroup][pattern.patternBaseName] = pattern;
273314

274-
addToPatternPaths(patternlab, pattern);
275-
//console.log(12, 'about to create patternsubtypeitem derived from', pattern.patternPartial, pattern.patternGroup, pattern.patternSubGroup);
276-
createPatternSubTypeItem(patternlab, pattern);
315+
316+
317+
318+
277319
});
278320
return groupedPatterns;
279321
}
@@ -298,7 +340,7 @@ var ui_builder = function () {
298340

299341
function buildViewAllHTML(patternlab, patterns, patternPartial, isPatternType) {
300342

301-
console.log(20, 'building viewall HTML for', patternPartial);
343+
console.log(343, 'building viewall HTML for', patternPartial);
302344

303345
//if (isPatternType) {
304346
// patternPartial = patternPartial.substring(patternPartial.indexOf('viewall-'));
@@ -321,21 +363,27 @@ var ui_builder = function () {
321363
function buildViewAllPages(mainPageHeadHtml, patternlab, styleguidePatterns) {
322364
var paths = patternlab.config.paths;
323365
var patterns = [];
366+
var writeViewAllFile = true;
324367

325368
//loop through the grouped styleguide patterns, building at each level
326369
_.forEach(styleguidePatterns.patternGroups, function (patternTypeObj, patternType) {
327370

328-
console.log(1, patternType);
371+
//console.log(1, patternType);
329372

330373
var p;
331374
var typePatterns = [];
332375

333376
_.forOwn(patternTypeObj, function (patternSubtypes, patternSubtype) {
334377

335-
console.log(2, patternSubtype);
378+
//console.log(2, patternSubtype);
336379

337380
var patternPartial = patternType + '-' + patternSubtype;
338-
console.log(3, patternPartial);
381+
console.log(380, patternPartial);
382+
383+
if(patternType === patternSubtype) {
384+
writeViewAllFile = false;
385+
return false;
386+
}
339387

340388
//render the footer needed for the viewall template
341389
var footerHTML = buildFooterHTML(patternlab, 'viewall-' + patternPartial);
@@ -345,13 +393,14 @@ var ui_builder = function () {
345393

346394
//determine if we should write at this time by checking if these are flat patterns or grouped patterns
347395
p = _.find(subtypePatterns, function (pat) {
348-
console.log(pat.patternPartial, pat.isFlatPattern, pat.patternGroup, pat.patternSubGroup);
396+
console.log(394, pat.patternPartial, pat.isFlatPattern, pat.patternGroup, pat.patternSubGroup);
349397
return pat.isDocPattern;
350398
});
351399

352-
console.log(3.5, p.patternDesc);
353-
354400
typePatterns = typePatterns.concat(subtypePatterns);
401+
402+
console.log(400);
403+
355404
var viewAllHTML = buildViewAllHTML(patternlab, subtypePatterns, patternPartial);
356405

357406
console.log(4, 'about to write view all file to patterns/', p.flatPatternPath, p.patternGroup, p.patternSubGroup);
@@ -365,21 +414,25 @@ var ui_builder = function () {
365414
});
366415

367416

368-
console.log('~~~~~~');
417+
if (!writeViewAllFile || !p) {
418+
return false;
419+
}
369420

370421
//render the footer needed for the viewall template
371422
var footerHTML = buildFooterHTML(patternlab, patternType);
372423

373424
//render the viewall template
374425
var viewAllHTML = buildViewAllHTML(patternlab, typePatterns, patternType, true);
375426

376-
writeFile(paths.public.patterns + p.subdir + '/index.json', JSON.stringify(typePatterns));
427+
//writeFile(paths.public.patterns + p.subdir + '/index.json', JSON.stringify(typePatterns));
377428
console.log(5, 'trying to write view all file to patterns/', p.subdir);
378429

379430
writeFile(paths.public.patterns + p.subdir + '/index.html', mainPageHeadHtml + viewAllHTML + footerHTML);
380431

381432
patterns = patterns.concat(typePatterns);
382433

434+
console.log(3.57, patterns.length);
435+
383436
});
384437

385438
writeFile(paths.public.patterns + '/patterns.json', JSON.stringify(patterns));
@@ -468,6 +521,10 @@ var ui_builder = function () {
468521
//build the viewall pages
469522
var patterns = buildViewAllPages(headerHTML, patternlab, styleguidePatterns);
470523

524+
525+
writeFile('./all.json', JSON.stringify(patterns));
526+
527+
471528
//build the main styleguide page
472529
//todo broken
473530
var styleguideHtml = pattern_assembler.renderPattern(patternlab.viewAll,

0 commit comments

Comments
 (0)