|
12 | 12 |
|
13 | 13 | var path = require('path');
|
14 | 14 | var fs = require('fs-extra');
|
| 15 | +var of = require('./object_factory'); |
| 16 | + |
15 | 17 |
|
16 | 18 | // PRIVATE FUNCTIONS
|
17 | 19 |
|
@@ -57,141 +59,8 @@ function assembleStyleguidePatterns(patternlab) {
|
57 | 59 | return styleguidePatterns;
|
58 | 60 | }
|
59 | 61 |
|
60 |
| - |
61 |
| -// MAIN BUILDER FUNCTION |
62 |
| - |
63 |
| -function buildViewAllPages(mainPageHead, mainPageFoot, mainPageHeadHtml, mainPageFootHtml, pattern_assembler, patternlab) { |
64 |
| - var paths = patternlab.config.paths; |
65 |
| - var prevSubdir = ''; |
66 |
| - var prevGroup = ''; |
67 |
| - var i; |
68 |
| - |
69 |
| - for (i = 0; i < patternlab.patterns.length; i++) { |
70 |
| - // skip underscore-prefixed files |
71 |
| - if (isPatternExcluded(patternlab.patterns[i])) { |
72 |
| - if (patternlab.config.debug) { |
73 |
| - console.log('Omitting ' + patternlab.patterns[i].key + " from view all rendering."); |
74 |
| - } |
75 |
| - continue; |
76 |
| - } |
77 |
| - |
78 |
| - var pattern = patternlab.patterns[i]; |
79 |
| - |
80 |
| - //create the view all for the section |
81 |
| - // check if the current section is different from the previous one |
82 |
| - if (pattern.patternGroup !== prevGroup) { |
83 |
| - prevGroup = pattern.patternGroup; |
84 |
| - |
85 |
| - var viewAllPatterns = []; |
86 |
| - var patternPartial = "viewall-" + pattern.patternGroup; |
87 |
| - var j; |
88 |
| - |
89 |
| - for (j = 0; j < patternlab.patterns.length; j++) { |
90 |
| - if (patternlab.patterns[j].patternGroup === pattern.patternGroup) { |
91 |
| - //again, skip any sibling patterns to the current one that may have underscores |
92 |
| - if (isPatternExcluded(patternlab.patterns[j])) { |
93 |
| - if (patternlab.config.debug) { |
94 |
| - console.log('Omitting ' + patternlab.patterns[j].key + " from view all sibling rendering."); |
95 |
| - } |
96 |
| - continue; |
97 |
| - } |
98 |
| - |
99 |
| - viewAllPatterns.push(patternlab.patterns[j]); |
100 |
| - } |
101 |
| - } |
102 |
| - |
103 |
| - var viewAllTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/viewall.mustache'), 'utf8'); |
104 |
| - var viewAllHtml = pattern_assembler.renderPattern(viewAllTemplate, {partials: viewAllPatterns, patternPartial: patternPartial, cacheBuster: patternlab.cacheBuster }); |
105 |
| - fs.outputFileSync(paths.public.patterns + pattern.subdir.slice(0, pattern.subdir.indexOf(pattern.patternGroup) + pattern.patternGroup.length) + '/index.html', mainPageHead + viewAllHtml + mainPageFoot); |
106 |
| - } |
107 |
| - |
108 |
| - //create the view all for the subsection |
109 |
| - // check if the current sub section is different from the previous one |
110 |
| - if (pattern.subdir !== prevSubdir) { |
111 |
| - prevSubdir = pattern.subdir; |
112 |
| - |
113 |
| - viewAllPatterns = []; |
114 |
| - patternPartial = "viewall-" + pattern.patternGroup + "-" + pattern.patternSubGroup; |
115 |
| - |
116 |
| - for (j = 0; j < patternlab.patterns.length; j++) { |
117 |
| - if (patternlab.patterns[j].subdir === pattern.subdir) { |
118 |
| - //again, skip any sibling patterns to the current one that may have underscores |
119 |
| - if (isPatternExcluded(patternlab.patterns[j])) { |
120 |
| - if (patternlab.config.debug) { |
121 |
| - console.log('Omitting ' + patternlab.patterns[j].key + " from view all sibling rendering."); |
122 |
| - } |
123 |
| - continue; |
124 |
| - } |
125 |
| - |
126 |
| - viewAllPatterns.push(patternlab.patterns[j]); |
127 |
| - } |
128 |
| - } |
129 |
| - |
130 |
| - var viewAllTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/viewall.mustache'), 'utf8'); |
131 |
| - var viewAllHtml = pattern_assembler.renderPattern(viewAllTemplate, {partials: viewAllPatterns, patternPartial: patternPartial, cacheBuster: patternlab.cacheBuster}); |
132 |
| - fs.outputFileSync(paths.public.patterns + pattern.flatPatternPath + '/index.html', mainPageHeadHtml + viewAllHtml + mainPageFootHtml); |
133 |
| - } |
134 |
| - } |
135 |
| -} |
136 |
| - |
137 |
| -function buildFrontEnd(patternlab) { |
138 |
| - var pa = require('./pattern_assembler'); |
139 |
| - var of = require('./object_factory'); |
140 |
| - var mh = require('./media_hunter'); |
141 |
| - var pattern_assembler = new pa(); |
142 |
| - var media_hunter = new mh(); |
143 |
| - var styleguidePatterns = []; |
144 |
| - var paths = patternlab.config.paths; |
145 |
| - var i; |
146 |
| - |
147 |
| - patternlab.buckets = []; |
148 |
| - patternlab.bucketIndex = []; |
149 |
| - patternlab.patternPaths = {}; |
150 |
| - patternlab.viewAllPaths = {}; |
151 |
| - |
152 |
| - //sort all patterns explicitly. |
153 |
| - patternlab.patterns = patternlab.patterns.sort(function (a, b) { |
154 |
| - if (a.name > b.name) { |
155 |
| - return 1; |
156 |
| - } |
157 |
| - if (a.name < b.name) { |
158 |
| - return -1; |
159 |
| - } |
160 |
| - |
161 |
| - // a must be equal to b |
162 |
| - return 0; |
163 |
| - }); |
164 |
| - |
165 |
| - //find mediaQueries |
166 |
| - media_hunter.find_media_queries('./source/css', patternlab); |
167 |
| - |
168 |
| - // check if patterns are excluded, if not add them to styleguidePatterns |
169 |
| - styleguidePatterns = assembleStyleguidePatterns(patternlab); |
170 |
| - |
171 |
| - //also add the cachebuster value. slight chance this could collide with a user that has defined cacheBuster as a value |
172 |
| - patternlab.data.cacheBuster = patternlab.cacheBuster; |
173 |
| - |
174 |
| - //get the main page head and foot |
175 |
| - var mainPageHead = patternlab.userHead.extendedTemplate.replace('{% pattern-lab-head %}', patternlab.header); |
176 |
| - var mainPageHeadHtml = pattern_assembler.renderPattern(mainPageHead, patternlab.data); |
177 |
| - var mainPageFoot = patternlab.userFoot.extendedTemplate.replace('{% pattern-lab-foot %}', patternlab.footer); |
178 |
| - var mainPageFootHtml = pattern_assembler.renderPattern(mainPageFoot, patternlab.data); |
179 |
| - |
180 |
| - //build the styleguide |
181 |
| - var styleguideTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/styleguide.mustache'), 'utf8'); |
182 |
| - var styleguideHtml = pattern_assembler.renderPattern(styleguideTemplate, {partials: styleguidePatterns, cacheBuster: patternlab.cacheBuster}); |
183 |
| - |
184 |
| - fs.outputFileSync(path.resolve(paths.public.styleguide, 'html/styleguide.html'), mainPageHeadHtml + styleguideHtml + mainPageFootHtml); |
185 |
| - |
186 |
| - //build the viewall pages |
187 |
| - buildViewAllPages(mainPageHead, mainPageFoot, mainPageHeadHtml, mainPageFootHtml, pattern_assembler, patternlab); |
188 |
| - |
189 |
| - //build the patternlab website |
190 |
| - var patternlabSiteTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/index.mustache'), 'utf8'); |
191 |
| - |
192 |
| - //loop through all patterns.to build the navigation |
193 |
| - //todo: refactor this someday |
194 |
| - for (i = 0; i < patternlab.patterns.length; i++) { |
| 62 | +function buildNavigation(patternlab) { |
| 63 | + for (var i = 0; i < patternlab.patterns.length; i++) { |
195 | 64 |
|
196 | 65 | var pattern = patternlab.patterns[i];
|
197 | 66 | var bucketName = pattern.name.replace(/\\/g, '-').split('-')[1];
|
@@ -358,6 +227,142 @@ function buildFrontEnd(patternlab) {
|
358 | 227 |
|
359 | 228 | patternlab.viewAllPaths[bucketName][pattern.patternSubGroup] = pattern.flatPatternPath;
|
360 | 229 | }
|
| 230 | + return bucketIndex; |
| 231 | +} |
| 232 | + |
| 233 | + |
| 234 | +// MAIN BUILDER FUNCTION |
| 235 | + |
| 236 | +function buildViewAllPages(mainPageHead, mainPageFoot, mainPageHeadHtml, mainPageFootHtml, pattern_assembler, patternlab) { |
| 237 | + var paths = patternlab.config.paths; |
| 238 | + var prevSubdir = ''; |
| 239 | + var prevGroup = ''; |
| 240 | + var i; |
| 241 | + |
| 242 | + for (i = 0; i < patternlab.patterns.length; i++) { |
| 243 | + // skip underscore-prefixed files |
| 244 | + if (isPatternExcluded(patternlab.patterns[i])) { |
| 245 | + if (patternlab.config.debug) { |
| 246 | + console.log('Omitting ' + patternlab.patterns[i].key + " from view all rendering."); |
| 247 | + } |
| 248 | + continue; |
| 249 | + } |
| 250 | + |
| 251 | + var pattern = patternlab.patterns[i]; |
| 252 | + |
| 253 | + //create the view all for the section |
| 254 | + // check if the current section is different from the previous one |
| 255 | + if (pattern.patternGroup !== prevGroup) { |
| 256 | + prevGroup = pattern.patternGroup; |
| 257 | + |
| 258 | + var viewAllPatterns = []; |
| 259 | + var patternPartial = "viewall-" + pattern.patternGroup; |
| 260 | + var j; |
| 261 | + |
| 262 | + for (j = 0; j < patternlab.patterns.length; j++) { |
| 263 | + if (patternlab.patterns[j].patternGroup === pattern.patternGroup) { |
| 264 | + //again, skip any sibling patterns to the current one that may have underscores |
| 265 | + if (isPatternExcluded(patternlab.patterns[j])) { |
| 266 | + if (patternlab.config.debug) { |
| 267 | + console.log('Omitting ' + patternlab.patterns[j].key + " from view all sibling rendering."); |
| 268 | + } |
| 269 | + continue; |
| 270 | + } |
| 271 | + |
| 272 | + viewAllPatterns.push(patternlab.patterns[j]); |
| 273 | + } |
| 274 | + } |
| 275 | + |
| 276 | + var viewAllTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/viewall.mustache'), 'utf8'); |
| 277 | + var viewAllHtml = pattern_assembler.renderPattern(viewAllTemplate, {partials: viewAllPatterns, patternPartial: patternPartial, cacheBuster: patternlab.cacheBuster }); |
| 278 | + fs.outputFileSync(paths.public.patterns + pattern.subdir.slice(0, pattern.subdir.indexOf(pattern.patternGroup) + pattern.patternGroup.length) + '/index.html', mainPageHead + viewAllHtml + mainPageFoot); |
| 279 | + } |
| 280 | + |
| 281 | + //create the view all for the subsection |
| 282 | + // check if the current sub section is different from the previous one |
| 283 | + if (pattern.subdir !== prevSubdir) { |
| 284 | + prevSubdir = pattern.subdir; |
| 285 | + |
| 286 | + viewAllPatterns = []; |
| 287 | + patternPartial = "viewall-" + pattern.patternGroup + "-" + pattern.patternSubGroup; |
| 288 | + |
| 289 | + for (j = 0; j < patternlab.patterns.length; j++) { |
| 290 | + if (patternlab.patterns[j].subdir === pattern.subdir) { |
| 291 | + //again, skip any sibling patterns to the current one that may have underscores |
| 292 | + if (isPatternExcluded(patternlab.patterns[j])) { |
| 293 | + if (patternlab.config.debug) { |
| 294 | + console.log('Omitting ' + patternlab.patterns[j].key + " from view all sibling rendering."); |
| 295 | + } |
| 296 | + continue; |
| 297 | + } |
| 298 | + |
| 299 | + viewAllPatterns.push(patternlab.patterns[j]); |
| 300 | + } |
| 301 | + } |
| 302 | + |
| 303 | + var viewAllTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/viewall.mustache'), 'utf8'); |
| 304 | + var viewAllHtml = pattern_assembler.renderPattern(viewAllTemplate, {partials: viewAllPatterns, patternPartial: patternPartial, cacheBuster: patternlab.cacheBuster}); |
| 305 | + fs.outputFileSync(paths.public.patterns + pattern.flatPatternPath + '/index.html', mainPageHeadHtml + viewAllHtml + mainPageFootHtml); |
| 306 | + } |
| 307 | + } |
| 308 | +} |
| 309 | + |
| 310 | +function buildFrontEnd(patternlab) { |
| 311 | + var pa = require('./pattern_assembler'); |
| 312 | + var mh = require('./media_hunter'); |
| 313 | + var pattern_assembler = new pa(); |
| 314 | + var media_hunter = new mh(); |
| 315 | + var styleguidePatterns = []; |
| 316 | + var paths = patternlab.config.paths; |
| 317 | + |
| 318 | + patternlab.buckets = []; |
| 319 | + patternlab.bucketIndex = []; |
| 320 | + patternlab.patternPaths = {}; |
| 321 | + patternlab.viewAllPaths = {}; |
| 322 | + |
| 323 | + //sort all patterns explicitly. |
| 324 | + patternlab.patterns = patternlab.patterns.sort(function (a, b) { |
| 325 | + if (a.name > b.name) { |
| 326 | + return 1; |
| 327 | + } |
| 328 | + if (a.name < b.name) { |
| 329 | + return -1; |
| 330 | + } |
| 331 | + |
| 332 | + // a must be equal to b |
| 333 | + return 0; |
| 334 | + }); |
| 335 | + |
| 336 | + //find mediaQueries |
| 337 | + media_hunter.find_media_queries('./source/css', patternlab); |
| 338 | + |
| 339 | + // check if patterns are excluded, if not add them to styleguidePatterns |
| 340 | + styleguidePatterns = assembleStyleguidePatterns(patternlab); |
| 341 | + |
| 342 | + //also add the cachebuster value. slight chance this could collide with a user that has defined cacheBuster as a value |
| 343 | + patternlab.data.cacheBuster = patternlab.cacheBuster; |
| 344 | + |
| 345 | + //get the main page head and foot |
| 346 | + var mainPageHead = patternlab.userHead.extendedTemplate.replace('{% pattern-lab-head %}', patternlab.header); |
| 347 | + var mainPageHeadHtml = pattern_assembler.renderPattern(mainPageHead, patternlab.data); |
| 348 | + var mainPageFoot = patternlab.userFoot.extendedTemplate.replace('{% pattern-lab-foot %}', patternlab.footer); |
| 349 | + var mainPageFootHtml = pattern_assembler.renderPattern(mainPageFoot, patternlab.data); |
| 350 | + |
| 351 | + //build the styleguide |
| 352 | + var styleguideTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/styleguide.mustache'), 'utf8'); |
| 353 | + var styleguideHtml = pattern_assembler.renderPattern(styleguideTemplate, {partials: styleguidePatterns, cacheBuster: patternlab.cacheBuster}); |
| 354 | + |
| 355 | + fs.outputFileSync(path.resolve(paths.public.styleguide, 'html/styleguide.html'), mainPageHeadHtml + styleguideHtml + mainPageFootHtml); |
| 356 | + |
| 357 | + //build the viewall pages |
| 358 | + buildViewAllPages(mainPageHead, mainPageFoot, mainPageHeadHtml, mainPageFootHtml, pattern_assembler, patternlab); |
| 359 | + |
| 360 | + //build the patternlab website |
| 361 | + var patternlabSiteTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'templates/index.mustache'), 'utf8'); |
| 362 | + |
| 363 | + //loop through all patterns.to build the navigation |
| 364 | + //todo: refactor this someday |
| 365 | + buildNavigation(patternlab); |
361 | 366 |
|
362 | 367 | //the patternlab site requires a lot of partials to be rendered.
|
363 | 368 | //patternNav
|
|
0 commit comments