@@ -11,6 +11,7 @@ import type {
11
11
import { getPathWithoutLanguage , getPathWithoutVersion } from '@/frame/lib/path-utils.js'
12
12
import getLinkData from '../lib/get-link-data.js'
13
13
import { renderContent } from '@/content-render/index.js'
14
+ import { executeWithFallback } from '@/languages/lib/render-with-fallback.js'
14
15
import { getDeepDataByLanguage } from '@/data-directory/lib/get-data.js'
15
16
16
17
export default async function learningTrack (
@@ -87,13 +88,11 @@ export default async function learningTrack(
87
88
const renderOpts = { textOnly : true }
88
89
// Some translated titles are known to have broken Liquid, so we need to
89
90
// 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
+ )
97
96
98
97
const currentLearningTrack : LearningTrack = { trackName, trackProduct, trackTitle }
99
98
const guidePath = getPathWithoutLanguage ( getPathWithoutVersion ( req . pagePath ) )
@@ -179,17 +178,11 @@ async function indexOfLearningTrackGuide(
179
178
const renderOpts = { textOnly : true }
180
179
for ( let i = 0 ; i < trackGuidePaths . length ; i ++ ) {
181
180
// 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
+ )
193
186
194
187
if ( ! renderedGuidePath ) continue
195
188
0 commit comments