diff options
Diffstat (limited to 'packages/integrations/mdx/src/plugins.ts')
-rw-r--r-- | packages/integrations/mdx/src/plugins.ts | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/packages/integrations/mdx/src/plugins.ts b/packages/integrations/mdx/src/plugins.ts index e1640238f..c44c8fffd 100644 --- a/packages/integrations/mdx/src/plugins.ts +++ b/packages/integrations/mdx/src/plugins.ts @@ -23,12 +23,13 @@ const isPerformanceBenchmark = Boolean(process.env.ASTRO_PERFORMANCE_BENCHMARK); interface MdxProcessorExtraOptions { sourcemap: boolean; + experimentalHeadingIdCompat: boolean; } export function createMdxProcessor(mdxOptions: MdxOptions, extraOptions: MdxProcessorExtraOptions) { return createProcessor({ remarkPlugins: getRemarkPlugins(mdxOptions), - rehypePlugins: getRehypePlugins(mdxOptions), + rehypePlugins: getRehypePlugins(mdxOptions, extraOptions), recmaPlugins: mdxOptions.recmaPlugins, remarkRehypeOptions: mdxOptions.remarkRehype, jsxImportSource: 'astro', @@ -57,7 +58,10 @@ function getRemarkPlugins(mdxOptions: MdxOptions): PluggableList { return remarkPlugins; } -function getRehypePlugins(mdxOptions: MdxOptions): PluggableList { +function getRehypePlugins( + mdxOptions: MdxOptions, + { experimentalHeadingIdCompat }: MdxProcessorExtraOptions, +): PluggableList { let rehypePlugins: PluggableList = [ // ensure `data.meta` is preserved in `properties.metastring` for rehype syntax highlighters rehypeMetaString, @@ -84,7 +88,10 @@ function getRehypePlugins(mdxOptions: MdxOptions): PluggableList { if (!isPerformanceBenchmark) { // getHeadings() is guaranteed by TS, so this must be included. // We run `rehypeHeadingIds` _last_ to respect any custom IDs set by user plugins. - rehypePlugins.push(rehypeHeadingIds, rehypeInjectHeadingsExport); + rehypePlugins.push( + [rehypeHeadingIds, { experimentalHeadingIdCompat }], + rehypeInjectHeadingsExport, + ); } rehypePlugins.push( |