@@ -266,6 +266,45 @@ var patternlab_engine = function (config) {
266
266
}
267
267
}
268
268
269
+ function writePatternFiles ( headHTML , pattern , footerHTML ) {
270
+ const nullFormatter = codeString => codeString ;
271
+ const defaultFormatter = codeString => cleanHtml ( codeString , { indent_size : 2 } ) ;
272
+ const patternPage = headHTML + pattern . patternPartialCode + footerHTML ;
273
+ const eng = pattern . engine ;
274
+
275
+ //beautify the output if configured to do so
276
+ const formatters = config . cleanOutputHtml ? {
277
+ rendered : eng . renderedCodeFormatter || defaultFormatter ,
278
+ rawTemplate : eng . rawTemplateCodeFormatter || defaultFormatter ,
279
+ markupOnly : eng . markupOnlyCodeFormatter || defaultFormatter
280
+ } : {
281
+ rendered : nullFormatter ,
282
+ rawTemplate : nullFormatter ,
283
+ markupOnly : nullFormatter
284
+ } ;
285
+
286
+ //prepare the path and contents of each output file
287
+ const outputFiles = {
288
+ rendered : {
289
+ path : path . join ( paths . public . patterns , pattern . getPatternLink ( patternlab , 'rendered' ) ) ,
290
+ content : formatters . rendered ( patternPage , pattern )
291
+ } ,
292
+ rawTemplate : {
293
+ path : path . join ( paths . public . patterns , pattern . getPatternLink ( patternlab , 'rawTemplate' ) ) ,
294
+ content : formatters . rawTemplate ( pattern . template , pattern )
295
+ } ,
296
+ markupOnly : {
297
+ path : path . join ( paths . public . patterns , pattern . getPatternLink ( patternlab , 'markupOnly' ) ) ,
298
+ content : formatters . markupOnly ( pattern . patternPartialCode , pattern )
299
+ }
300
+ } ;
301
+
302
+ Object . assign ( outputFiles , eng . addOutputFiles ? eng . addOutputFiles ( paths , patternlab ) : { } ) ;
303
+
304
+ //write the compiled template to the public patterns directory
305
+ _ . each ( outputFiles , outputFile => fs . outputFileSync ( outputFile . path , outputFile . content ) ) ;
306
+ }
307
+
269
308
function buildPatterns ( deletePatternDir ) {
270
309
271
310
patternlab . events . emit ( 'patternlab-build-pattern-start' , patternlab ) ;
@@ -427,21 +466,7 @@ var patternlab_engine = function (config) {
427
466
patternlab . events . emit ( 'patternlab-pattern-write-begin' , patternlab , pattern ) ;
428
467
429
468
//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 ) ;
469
+ writePatternFiles ( headHTML , pattern , footerHTML ) ;
445
470
446
471
patternlab . events . emit ( 'patternlab-pattern-write-end' , patternlab , pattern ) ;
447
472
0 commit comments