summaryrefslogtreecommitdiff
path: root/packages/integrations/mdx/src/plugins.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/mdx/src/plugins.ts')
-rw-r--r--packages/integrations/mdx/src/plugins.ts13
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(