@@ -11,6 +11,7 @@ const pathUtils = require('./path-utils')
1111const Permalink = require ( './permalink' )
1212const languages = require ( './languages' )
1313const renderContent = require ( './render-content' )
14+ const processLearningTracks = require ( './process-learning-tracks' )
1415const { renderReact } = require ( './react/engine' )
1516const { productMap } = require ( './all-products' )
1617const slash = require ( 'slash' )
@@ -207,23 +208,10 @@ class Page {
207208 this . permissions = await renderContent ( this . rawPermissions , context )
208209 }
209210
211+ // Learning tracks may contain Liquid and need to have versioning processed.
210212 if ( this . learningTracks ) {
211- const learningTracks = [ ]
212- for await ( const rawTrackName of this . rawLearningTracks ) {
213- // Track names in frontmatter may include Liquid conditionals
214- const renderedTrackName = await renderContent ( rawTrackName , context , { textOnly : true , encodeEntities : true } )
215- if ( ! renderedTrackName ) continue
216-
217- const track = context . site . data [ 'learning-tracks' ] [ context . currentProduct ] [ renderedTrackName ]
218- if ( ! track ) continue
219- learningTracks . push ( {
220- trackName : renderedTrackName ,
221- title : await renderContent ( track . title , context , { textOnly : true , encodeEntities : true } ) ,
222- description : await renderContent ( track . description , context , { textOnly : true , encodeEntities : true } ) ,
223- guides : await getLinkData ( track . guides , context )
224- } )
225- }
226-
213+ const { featuredTrack, learningTracks } = await processLearningTracks ( this . rawLearningTracks , context )
214+ this . featuredTrack = featuredTrack
227215 this . learningTracks = learningTracks
228216 }
229217
0 commit comments