@@ -80,7 +80,12 @@ export async function generateMDX(
8080 ...runtime ,
8181 baseUrl : import . meta. url ,
8282 } ) ;
83- return { content : < MDXContent components = { { ...MDXComponents } } /> , toc, meta} ;
83+ const tocWithMDX = await getTransformedToc ( toc ) ;
84+ return {
85+ content : < MDXContent components = { { ...MDXComponents } } /> ,
86+ toc : tocWithMDX ,
87+ meta,
88+ } ;
8489 }
8590
8691 const compiled = await compile ( mdx , {
@@ -105,7 +110,22 @@ export async function generateMDX(
105110
106111 await writeToCache ( store , hash , result , path ) ;
107112
108- const tocWithMDX = await Promise . all (
113+ const tocWithMDX = await getTransformedToc ( toc ) ;
114+
115+ const { default : MDXContent } = await run ( result . code , {
116+ ...runtime ,
117+ baseUrl : import . meta. url ,
118+ } ) ;
119+
120+ return {
121+ content : < MDXContent components = { { ...MDXComponents } } /> ,
122+ toc : tocWithMDX ,
123+ meta : result . meta ,
124+ } ;
125+ }
126+
127+ async function getTransformedToc ( toc : ExtractedTOC [ ] ) : Promise < ExtractedTOC [ ] > {
128+ return await Promise . all (
109129 toc . map ( async ( item ) => {
110130 if ( typeof item . node !== 'string' ) {
111131 return item ;
@@ -125,15 +145,4 @@ export async function generateMDX(
125145 return item ;
126146 } )
127147 ) ;
128-
129- const { default : MDXContent } = await run ( result . code , {
130- ...runtime ,
131- baseUrl : import . meta. url ,
132- } ) ;
133-
134- return {
135- content : < MDXContent components = { { ...MDXComponents } } /> ,
136- toc : tocWithMDX ,
137- meta : result . meta ,
138- } ;
139148}
0 commit comments