@@ -219,7 +219,7 @@ var pattern_assembler = function () {
219219 subTypePattern . isPattern = false ;
220220 subTypePattern . engine = null ;
221221
222- addSubtypePattern ( subTypePattern , patternlab )
222+ addSubtypePattern ( subTypePattern , patternlab ) ;
223223 return subTypePattern ;
224224 }
225225 } catch ( err ) {
@@ -410,21 +410,30 @@ var pattern_assembler = function () {
410410 }
411411
412412 function parseDataLinksHelper ( patternlab , obj , key ) {
413- var linkRE , dataObjAsString , linkMatches , expandedLink ;
413+ var linkRE , dataObjAsString , linkMatches ;
414414
415415 linkRE = / l i n k \. [ A - z 0 - 9 - _ ] + / g;
416416 dataObjAsString = JSON5 . stringify ( obj ) ;
417417 linkMatches = dataObjAsString . match ( linkRE ) ;
418418
419419 if ( linkMatches ) {
420420 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 ) ;
426436 }
427- dataObjAsString = dataObjAsString . replace ( linkMatches [ i ] , expandedLink ) ;
428437 }
429438 }
430439 }
@@ -449,7 +458,7 @@ var pattern_assembler = function () {
449458
450459 //loop through all patterns
451460 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 ) ;
453462 }
454463 }
455464
0 commit comments