@@ -11,6 +11,7 @@ import type {
1111import { getPathWithoutLanguage , getPathWithoutVersion } from '@/frame/lib/path-utils.js'
1212import getLinkData from '../lib/get-link-data.js'
1313import { renderContent } from '@/content-render/index.js'
14+ import { executeWithFallback } from '@/languages/lib/render-with-fallback.js'
1415import { getDeepDataByLanguage } from '@/data-directory/lib/get-data.js'
1516
1617export default async function learningTrack (
@@ -87,13 +88,11 @@ export default async function learningTrack(
8788 const renderOpts = { textOnly : true }
8889 // Some translated titles are known to have broken Liquid, so we need to
8990 // try rendering them in English as a fallback.
90- let trackTitle = ''
91- try {
92- trackTitle = ( await renderContent ( track . title , req . context , renderOpts ) ) as string
93- } catch {
94- const englishFallbackContext = { ...req . context , currentLanguage : 'en' }
95- trackTitle = ( await renderContent ( track . title , englishFallbackContext , renderOpts ) ) as string
96- }
91+ const trackTitle = await executeWithFallback (
92+ req . context ,
93+ ( ) => renderContent ( track . title , req . context , renderOpts ) ,
94+ ( ) => '' , // todo use english track.title
95+ )
9796
9897 const currentLearningTrack : LearningTrack = { trackName, trackProduct, trackTitle }
9998 const guidePath = getPathWithoutLanguage ( getPathWithoutVersion ( req . pagePath ) )
@@ -179,17 +178,11 @@ async function indexOfLearningTrackGuide(
179178 const renderOpts = { textOnly : true }
180179 for ( let i = 0 ; i < trackGuidePaths . length ; i ++ ) {
181180 // Learning track URLs may have Liquid conditionals.
182- let renderedGuidePath = ''
183- try {
184- renderedGuidePath = await renderContent ( trackGuidePaths [ i ] , context , renderOpts )
185- } catch {
186- const englishFallbackContext = { ...context , currentLanguage : 'en' }
187- renderedGuidePath = await renderContent (
188- trackGuidePaths [ i ] ,
189- englishFallbackContext ,
190- renderOpts ,
191- )
192- }
181+ let renderedGuidePath = await executeWithFallback (
182+ context ,
183+ ( ) => renderContent ( trackGuidePaths [ i ] , context , renderOpts ) ,
184+ ( ) => '' , // todo use english trackGuidePaths[i]
185+ )
193186
194187 if ( ! renderedGuidePath ) continue
195188
0 commit comments