summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.changeset/orange-carpets-greet.md5
-rw-r--r--packages/integrations/mdx/src/plugins.ts15
2 files changed, 14 insertions, 6 deletions
diff --git a/.changeset/orange-carpets-greet.md b/.changeset/orange-carpets-greet.md
new file mode 100644
index 000000000..f862cf784
--- /dev/null
+++ b/.changeset/orange-carpets-greet.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/mdx': minor
+---
+
+Fix: load syntax highlighters after MDX remark plugins. This keeps MDX consistent with Astro's markdown behavior.
diff --git a/packages/integrations/mdx/src/plugins.ts b/packages/integrations/mdx/src/plugins.ts
index 8c98e0016..cf30566c4 100644
--- a/packages/integrations/mdx/src/plugins.ts
+++ b/packages/integrations/mdx/src/plugins.ts
@@ -129,12 +129,7 @@ export async function getRemarkPlugins(
config: AstroConfig
): Promise<MdxRollupPluginOptions['remarkPlugins']> {
let remarkPlugins: PluggableList = [];
- if (mdxOptions.syntaxHighlight === 'shiki') {
- remarkPlugins.push([await remarkShiki(mdxOptions.shikiConfig)]);
- }
- if (mdxOptions.syntaxHighlight === 'prism') {
- remarkPlugins.push(remarkPrism);
- }
+
if (mdxOptions.gfm) {
remarkPlugins.push(remarkGfm);
}
@@ -144,6 +139,14 @@ export async function getRemarkPlugins(
remarkPlugins = [...remarkPlugins, ...ignoreStringPlugins(mdxOptions.remarkPlugins)];
+ // Apply syntax highlighters after user plugins to match `markdown/remark` behavior
+ if (mdxOptions.syntaxHighlight === 'shiki') {
+ remarkPlugins.push([await remarkShiki(mdxOptions.shikiConfig)]);
+ }
+ if (mdxOptions.syntaxHighlight === 'prism') {
+ remarkPlugins.push(remarkPrism);
+ }
+
// Apply last in case user plugins resolve relative image paths
remarkPlugins.push(toRemarkContentRelImageError(config));