@@ -50,48 +50,23 @@ export async function getArticleBody(req: ExtendedRequestWithPageInfo) {
5050 // Extract apiVersion from query params if provided
5151 const apiVersion = req . query . apiVersion as string | undefined
5252
53- // Check if there's a transformer for this page type (e.g., REST, webhooks, etc.)
53+ // With the catch-all ArticleTransformer registered last,
54+ // findTransformer always returns a transformer.
5455 const transformer = transformerRegistry . findTransformer ( page )
56+ if ( ! transformer ) throw new Error ( `No transformer found for page: ${ pathname } ` )
5557
56- if ( transformer ) {
57- // Use the transformer for autogenerated pages
58- const renderingReq = await createContextualizedRenderingRequest ( pathname , page )
59-
60- // Determine the API version to use (provided or latest)
61- // Validation is handled by apiVersionValidationMiddleware
62- const currentVersion = renderingReq . context . currentVersion
63- let effectiveApiVersion = apiVersion
64-
65- // Use latest version if not provided
66- if ( ! effectiveApiVersion && currentVersion && allVersions [ currentVersion ] ) {
67- effectiveApiVersion = allVersions [ currentVersion ] . latestApiVersion || undefined
68- }
69-
70- return await transformer . transform ( page , pathname , renderingReq . context , effectiveApiVersion )
71- }
72-
73- // For regular articles (non-autogenerated)
74- if ( page . documentType !== 'article' ) {
75- throw new Error ( `Page ${ pathname } isn't yet available in markdown.` )
76- }
77-
78- // these parts allow us to render the page
58+ // Use the transformer
7959 const renderingReq = await createContextualizedRenderingRequest ( pathname , page )
80- renderingReq . context . markdownRequested = true
81- const content = await page . render ( renderingReq . context )
8260
83- // Get title and intro for consistency with transformer-based pages
84- const title = page . title
85- const intro = page . intro
86- ? await page . renderProp ( 'intro' , renderingReq . context , { textOnly : true } )
87- : ''
61+ // Determine the API version to use (provided or latest)
62+ // Validation is handled by apiVersionValidationMiddleware
63+ const currentVersion = renderingReq . context . currentVersion
64+ let effectiveApiVersion = apiVersion
8865
89- // Prepend title and intro to the content
90- let result = `# ${ title } \n\n`
91- if ( intro ) {
92- result += `${ intro } \n\n`
66+ // Use latest version if not provided
67+ if ( ! effectiveApiVersion && currentVersion && allVersions [ currentVersion ] ) {
68+ effectiveApiVersion = allVersions [ currentVersion ] . latestApiVersion || undefined
9369 }
94- result += content
9570
96- return result
71+ return await transformer . transform ( page , pathname , renderingReq . context , effectiveApiVersion )
9772}
0 commit comments