@@ -266,6 +266,45 @@ var patternlab_engine = function (config) {
266266 }
267267 }
268268
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+
269308 function buildPatterns ( deletePatternDir ) {
270309
271310 patternlab . events . emit ( 'patternlab-build-pattern-start' , patternlab ) ;
@@ -427,21 +466,7 @@ var patternlab_engine = function (config) {
427466 patternlab . events . emit ( 'patternlab-pattern-write-begin' , patternlab , pattern ) ;
428467
429468 //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 ) ;
445470
446471 patternlab . events . emit ( 'patternlab-pattern-write-end' , patternlab , pattern ) ;
447472
0 commit comments