@@ -266,6 +266,37 @@ var patternlab_engine = function (config) {
266
266
}
267
267
}
268
268
269
+ function writePatternFiles ( headHTML , pattern , footerHTML ) {
270
+ const nullFormatter = str => str ;
271
+ const defaultFormatter = codeString => cleanHtml ( codeString , { indent_size : 2 } ) ;
272
+ const makePath = type => path . join ( paths . public . patterns , pattern . getPatternLink ( patternlab , type ) ) ;
273
+ const patternPage = headHTML + pattern . patternPartialCode + footerHTML ;
274
+ const eng = pattern . engine ;
275
+
276
+ //beautify the output if configured to do so
277
+ const formatters = config . cleanOutputHtml ? {
278
+ rendered : eng . renderedCodeFormatter || defaultFormatter ,
279
+ rawTemplate : eng . rawTemplateCodeFormatter || defaultFormatter ,
280
+ markupOnly : eng . markupOnlyCodeFormatter || defaultFormatter
281
+ } : {
282
+ rendered : nullFormatter ,
283
+ rawTemplate : nullFormatter ,
284
+ markupOnly : nullFormatter
285
+ } ;
286
+
287
+ //prepare the path and contents of each output file
288
+ const outputFiles = [
289
+ { path : makePath ( 'rendered' ) , content : formatters . rendered ( patternPage , pattern ) } ,
290
+ { path : makePath ( 'rawTemplate' ) , content : formatters . rawTemplate ( pattern . template , pattern ) } ,
291
+ { path : makePath ( 'markupOnly' ) , content : formatters . markupOnly ( pattern . patternPartialCode , pattern ) }
292
+ ] . concat (
293
+ eng . addOutputFiles ? eng . addOutputFiles ( paths , patternlab ) : [ ]
294
+ ) ;
295
+
296
+ //write the compiled template to the public patterns directory
297
+ outputFiles . forEach ( outFile => fs . outputFileSync ( outFile . path , outFile . content ) ) ;
298
+ }
299
+
269
300
function buildPatterns ( deletePatternDir ) {
270
301
271
302
patternlab . events . emit ( 'patternlab-build-pattern-start' , patternlab ) ;
@@ -427,21 +458,7 @@ var patternlab_engine = function (config) {
427
458
patternlab . events . emit ( 'patternlab-pattern-write-begin' , patternlab , pattern ) ;
428
459
429
460
//write the compiled template to the public patterns directory
430
- var patternPage = headHTML + pattern . patternPartialCode + footerHTML ;
431
-
432
- //beautify the output if configured to do so
433
- var cleanedPatternPage = config . cleanOutputHtml ? cleanHtml ( patternPage , { indent_size : 2 } ) : patternPage ;
434
- var cleanedPatternPartialCode = config . cleanOutputHtml ? cleanHtml ( pattern . patternPartialCode , { indent_size : 2 } ) : pattern . patternPartialCode ;
435
- var cleanedPatternTemplateCode = config . cleanOutputHtml ? cleanHtml ( pattern . template , { indent_size : 2 } ) : pattern . template ;
436
-
437
- //write the compiled template to the public patterns directory
438
- fs . outputFileSync ( paths . public . patterns + pattern . getPatternLink ( patternlab , 'rendered' ) , cleanedPatternPage ) ;
439
-
440
- //write the mustache file too
441
- fs . outputFileSync ( paths . public . patterns + pattern . getPatternLink ( patternlab , 'rawTemplate' ) , cleanedPatternTemplateCode ) ;
442
-
443
- //write the encoded version too
444
- fs . outputFileSync ( paths . public . patterns + pattern . getPatternLink ( patternlab , 'markupOnly' ) , cleanedPatternPartialCode ) ;
461
+ writePatternFiles ( headHTML , pattern , footerHTML ) ;
445
462
446
463
patternlab . events . emit ( 'patternlab-pattern-write-end' , patternlab , pattern ) ;
447
464
0 commit comments