1
1
"use strict" ;
2
2
3
3
var fs = require ( 'fs-extra' ) ;
4
+ var path = require ( 'path' ) ;
4
5
5
6
var pattern_exporter = function ( ) {
6
7
@@ -19,7 +20,7 @@ var pattern_exporter = function () {
19
20
if ( exportAll ) {
20
21
for ( var i = 0 ; i < patternlab . patterns . length ; i ++ ) {
21
22
if ( ! patternlab . patterns [ i ] . patternPartial . startsWith ( '-' ) ) {
22
- fs . outputFileSync ( patternlab . config . patternExportDirectory + patternlab . patterns [ i ] . patternPartial + '.html' , patternlab . patterns [ i ] . patternPartialCode ) ;
23
+ exportSinglePattern ( patternlab , patternlab . patterns [ i ] ) ;
23
24
}
24
25
}
25
26
@@ -31,12 +32,26 @@ var pattern_exporter = function () {
31
32
for ( var j = 0 ; j < patternlab . patterns . length ; j ++ ) {
32
33
if ( exportPartials [ i ] === patternlab . patterns [ j ] . patternPartial ) {
33
34
//write matches to the desired location
34
- fs . outputFileSync ( patternlab . config . patternExportDirectory + patternlab . patterns [ j ] . patternPartial + '.html' , patternlab . patterns [ j ] . patternPartialCode ) ;
35
+ exportSinglePattern ( patternlab , patternlab . patterns [ j ] ) ;
35
36
}
36
37
}
37
38
}
38
39
}
39
40
41
+ function exportSinglePattern ( patternlab , pattern ) {
42
+ var preserveDirStructure = patternlab . config . patternExportPreserveDirectoryStructure ;
43
+ var patternName = pattern . patternPartial ;
44
+ var patternDir = patternlab . config . patternExportDirectory ;
45
+ if ( preserveDirStructure ) {
46
+ // Extract the first part of the pattern partial as the directory in which
47
+ // it should go.
48
+ patternDir = path . join ( patternDir , pattern . patternPartial . split ( '-' ) [ 0 ] ) ;
49
+ patternName = pattern . patternPartial . split ( '-' ) . slice ( 1 ) . join ( '-' ) ;
50
+ }
51
+
52
+ fs . outputFileSync ( path . join ( patternDir , patternName ) + '.html' , pattern . patternPartialCode ) ;
53
+ }
54
+
40
55
return {
41
56
export_patterns : function ( patternlab ) {
42
57
exportPatterns ( patternlab ) ;
0 commit comments