diff options
author | 2022-11-22 16:12:25 +0100 | |
---|---|---|
committer | 2022-11-22 10:12:25 -0500 | |
commit | 2a1c085b199f24e34424ec8c19041c03602c53c5 (patch) | |
tree | 5371473604eeeb0ad560e73839f5ac5d8f5cb90c /packages/integrations/mdx/src | |
parent | fcada72bd5889d1c613413fd8cd555fc60ae53ae (diff) | |
download | astro-2a1c085b199f24e34424ec8c19041c03602c53c5.tar.gz astro-2a1c085b199f24e34424ec8c19041c03602c53c5.tar.zst astro-2a1c085b199f24e34424ec8c19041c03602c53c5.zip |
[MDX] Support remark-rehype options from Astro Markdown config (#5427)
* [MDX] Support remark-rehype options from Astro Markdown config
* [MDX] Add remarkRehype to MdxOptions, extend with default markdown config
* [MDX] Add remarkRehype to README
* [MDX] Fix remarkRehype inheritance, add tests
* [MDX] Update remarkRehype docs in README
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* [MDX] Fix remarkRehype docs
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Diffstat (limited to 'packages/integrations/mdx/src')
-rw-r--r-- | packages/integrations/mdx/src/index.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/packages/integrations/mdx/src/index.ts b/packages/integrations/mdx/src/index.ts index 4bac982af..33286b2e2 100644 --- a/packages/integrations/mdx/src/index.ts +++ b/packages/integrations/mdx/src/index.ts @@ -1,3 +1,4 @@ +import type { Options as RemarkRehypeOptions } from 'remark-rehype'; import { compile as mdxCompile } from '@mdx-js/mdx'; import { PluggableList } from '@mdx-js/mdx/lib/core.js'; import mdxPlugin, { Options as MdxRollupPluginOptions } from '@mdx-js/rollup'; @@ -33,6 +34,7 @@ export type MdxOptions = { * - false - do not inherit any plugins */ extendPlugins?: 'markdown' | 'astroDefaults' | false; + remarkRehype?: RemarkRehypeOptions; }; export default function mdx(mdxOptions: MdxOptions = {}): AstroIntegration { @@ -62,6 +64,15 @@ export default function mdx(mdxOptions: MdxOptions = {}): AstroIntegration { console.info(`See "extendPlugins" option to configure this behavior.`); } + let remarkRehypeOptions = mdxOptions.remarkRehype; + + if (mdxOptions.extendPlugins === 'markdown') { + remarkRehypeOptions = { + ...config.markdown.remarkRehype, + ...remarkRehypeOptions, + }; + } + const mdxPluginOpts: MdxRollupPluginOptions = { remarkPlugins: await getRemarkPlugins(mdxOptions, config), rehypePlugins: getRehypePlugins(mdxOptions, config), @@ -71,6 +82,7 @@ export default function mdx(mdxOptions: MdxOptions = {}): AstroIntegration { // Note: disable `.md` (and other alternative extensions for markdown files like `.markdown`) support format: 'mdx', mdExtensions: [], + remarkRehypeOptions, }; let importMetaEnv: Record<string, any> = { |