@@ -5,6 +5,7 @@ const path = require('path');
55const upath = require ( 'upath' ) ;
66
77const partialRegex = / \{ \{ > \s * ( [ _ | \- | a - z A - Z 0 - 9 @ ' " / ] + ) [ ^ { ] * ?} } / g;
8+ const partialWithoutBracketsRegex = / [ ^ > { { } } \s * ] + / g;
89const dynamicComponentRegex = / \{ \{ \s * ?d y n a m i c C o m p o n e n t \s * (?: ' | " ) ( [ _ | \- | a - z A - Z 0 - 9 / ] + ) (?: ' | " ) .* ?} } / g;
910const includeRegex = / { { 2 } > \s * ( [ _ | \- | a - z A - Z 0 - 9 / ] + ) [ ^ { ] * ?} { 2 } / g;
1011const pathStringRegex = / ^ [ " ' ] .+ [ " ' ] $ / ;
@@ -23,12 +24,24 @@ const defineBaseRoute = (route) => route.split('/').slice(0, 3).join('/');
2324const applyExternalPath = ( templateName , templates ) => {
2425 return templates . map ( ( t ) => `${ defineBaseRoute ( templateName ) } /${ t } ` ) ;
2526} ;
27+ const modifyNestedPartial = ( partial ) => {
28+ const partialFragments = partial . match ( partialWithoutBracketsRegex ) ;
29+
30+ if ( partialFragments ) {
31+ return [ `${ partialFragments . shift ( ) } '` , ...partialFragments ] . join ( ' ' ) ;
32+ }
33+
34+ return partialFragments ;
35+ } ;
36+
2637const replacePartialNames = ( content , partialRoute ) => {
2738 return content . replace (
2839 includeRegex ,
29- ( __ , partialName ) => `{{> '${ defineBaseRoute ( partialRoute ) } /${ partialName } ' }}` ,
40+ ( partialName ) =>
41+ `{{> '${ defineBaseRoute ( partialRoute ) } /${ modifyNestedPartial ( partialName ) } }}` ,
3042 ) ;
3143} ;
44+
3245const trimPartial = ( partial ) => {
3346 if ( pathStringRegex . test ( partial ) ) {
3447 return partial . slice ( 1 , - 1 ) ;
0 commit comments