22 TODO
33 - Make sure regex match Nunjucks features and syntax
44 - Look into if we need to handle partials in the render method
5- - Add try catch blocks to prevent Pl from crashing
65 - Test methods of including files
76 - Compare features and syntax with the mustache version so we can document
87 - Document and submit to PatternLab
@@ -61,11 +60,16 @@ var engine_nunjucks = {
6160
6261 // render it
6362 renderPattern : function renderPattern ( pattern , data ) {
64- // replace pattern names with their full path so Nunjucks can find them.
65- pattern . extendedTemplate = this . replacePartials ( pattern ) ;
66- var result = nunjucks . renderString ( pattern . extendedTemplate , data ) ;
67- // var result = nunjucks.compile(pattern.extendedTemplate, env).render(data);
68- return result ;
63+ try {
64+ // replace pattern names with their full path so Nunjucks can find them.
65+ pattern . extendedTemplate = this . replacePartials ( pattern ) ;
66+ var result = nunjucks . renderString ( pattern . extendedTemplate , data ) ;
67+ // var result = nunjucks.compile(pattern.extendedTemplate, env).render(data);
68+ return result ;
69+ }
70+ catch ( err ) {
71+ console . error ( 'Failed to render pattern: ' + pattern . name ) ;
72+ }
6973 } ,
7074
7175 // find and return any Nunjucks style includes/imports/extends within pattern
@@ -85,9 +89,14 @@ var engine_nunjucks = {
8589
8690 // given a pattern, and a partial string, tease out the "pattern key" and return it.
8791 findPartial : function ( partialString ) {
88- var partial = partialString . match ( this . findPartialKeyRE ) [ 1 ] ;
89- partial = partial . replace ( / [ " ' ] / g, '' ) ;
90- return partial ;
92+ try {
93+ var partial = partialString . match ( this . findPartialKeyRE ) [ 1 ] ;
94+ partial = partial . replace ( / [ " ' ] / g, '' ) ;
95+ return partial ;
96+ }
97+ catch ( err ) {
98+ console . error ( 'Error occured when trying to find partial name in: ' + partialString ) ;
99+ }
91100 } ,
92101
93102 // keep track of partials and their paths so we can replace the name with the path
@@ -99,16 +108,21 @@ var engine_nunjucks = {
99108 } ,
100109
101110 replacePartials : function ( pattern ) {
102- var partials = this . findPartials ( pattern ) ;
103- if ( partials !== null ) {
104- for ( var i = 0 ; i < partials . length ; i ++ ) { // e.g. {% include "atoms-parent" %}
105- var partialName = this . findPartial ( partials [ i ] ) ; // e.g. atoms-parent
106- var partialFullPath = partialRegistry [ partialName ] ; // e.g. 00-atoms/01-parent.njk
107- var newPartial = partials [ i ] . replaceAll ( partialName , partialFullPath , true ) ; // e.g. {% include "00-atoms/01-parent.njk" %}
108- pattern . extendedTemplate = pattern . extendedTemplate . replaceAll ( partials [ i ] , newPartial , true ) ;
111+ try {
112+ var partials = this . findPartials ( pattern ) ;
113+ if ( partials !== null ) {
114+ for ( var i = 0 ; i < partials . length ; i ++ ) { // e.g. {% include "atoms-parent" %}
115+ var partialName = this . findPartial ( partials [ i ] ) ; // e.g. atoms-parent
116+ var partialFullPath = partialRegistry [ partialName ] ; // e.g. 00-atoms/01-parent.njk
117+ var newPartial = partials [ i ] . replaceAll ( partialName , partialFullPath , true ) ; // e.g. {% include "00-atoms/01-parent.njk" %}
118+ pattern . extendedTemplate = pattern . extendedTemplate . replaceAll ( partials [ i ] , newPartial , true ) ;
119+ }
109120 }
121+ return pattern . extendedTemplate ;
122+ }
123+ catch ( err ) {
124+ console . error ( 'Error occurred in replacing partial names with paths for patern: ' + pattern . name ) ;
110125 }
111- return pattern . extendedTemplate ;
112126 } ,
113127
114128 // handled by nunjucks. This is error to keep PL from erroring
0 commit comments