@@ -219,7 +219,7 @@ var pattern_assembler = function () {
219
219
subTypePattern . isPattern = false ;
220
220
subTypePattern . engine = null ;
221
221
222
- addSubtypePattern ( subTypePattern , patternlab )
222
+ addSubtypePattern ( subTypePattern , patternlab ) ;
223
223
return subTypePattern ;
224
224
}
225
225
} catch ( err ) {
@@ -410,21 +410,30 @@ var pattern_assembler = function () {
410
410
}
411
411
412
412
function parseDataLinksHelper ( patternlab , obj , key ) {
413
- var linkRE , dataObjAsString , linkMatches , expandedLink ;
413
+ var linkRE , dataObjAsString , linkMatches ;
414
414
415
415
linkRE = / l i n k \. [ A - z 0 - 9 - _ ] + / g;
416
416
dataObjAsString = JSON5 . stringify ( obj ) ;
417
417
linkMatches = dataObjAsString . match ( linkRE ) ;
418
418
419
419
if ( linkMatches ) {
420
420
for ( var i = 0 ; i < linkMatches . length ; i ++ ) {
421
- expandedLink = encodeURI ( patternlab . data . link [ linkMatches [ i ] . split ( '.' ) [ 1 ] ] ) ;
422
- if ( expandedLink ) {
423
- expandedLink = expandedLink . replace ( '\\' , '/' ) ;
424
- if ( patternlab . config . debug ) {
425
- console . log ( 'expanded data link from ' + linkMatches [ i ] + ' to ' + expandedLink + ' inside ' + key ) ;
421
+ var dataLink = linkMatches [ i ] ;
422
+ if ( dataLink && dataLink . split ( '.' ) . length >= 2 ) {
423
+ var linkPatternPartial = dataLink . split ( '.' ) [ 1 ] ;
424
+ var pattern = getPartial ( linkPatternPartial , patternlab ) ;
425
+ if ( pattern !== undefined ) {
426
+ var fullLink = patternlab . data . link [ linkPatternPartial ] ;
427
+ if ( fullLink ) {
428
+ fullLink = path . normalize ( fullLink ) . replace ( / \\ / g, '/' ) ;
429
+ if ( patternlab . config . debug ) {
430
+ console . log ( 'expanded data link from ' + dataLink + ' to ' + fullLink + ' inside ' + key ) ;
431
+ }
432
+ dataObjAsString = dataObjAsString . replace ( dataLink , fullLink ) ;
433
+ }
434
+ } else {
435
+ console . log ( 'pattern not found for' , dataLink , 'inside' , key ) ;
426
436
}
427
- dataObjAsString = dataObjAsString . replace ( linkMatches [ i ] , expandedLink ) ;
428
437
}
429
438
}
430
439
}
@@ -449,7 +458,7 @@ var pattern_assembler = function () {
449
458
450
459
//loop through all patterns
451
460
for ( var i = 0 ; i < patternlab . patterns . length ; i ++ ) {
452
- patternlab . patterns [ i ] . jsonFileData = parseDataLinksHelper ( patternlab , patternlab . patterns [ i ] . jsonFileData , patternlab . patterns [ i ] . partial ) ;
461
+ patternlab . patterns [ i ] . jsonFileData = parseDataLinksHelper ( patternlab , patternlab . patterns [ i ] . jsonFileData , patternlab . patterns [ i ] . patternPartial ) ;
453
462
}
454
463
}
455
464
0 commit comments