astro/packages/integrations/mdx
Fred K. Bot 37534004f0
[ci] release (#3939)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-18 21:54:25 -07:00
..
src [ci] format 2022-06-30 18:11:12 +00:00
test [ci] format 2022-06-30 18:11:12 +00:00
CHANGELOG.md [ci] release (#3939) 2022-07-18 21:54:25 -07:00
package.json [ci] release (#3939) 2022-07-18 21:54:25 -07:00
README.md More integration README fixes (#3885) 2022-07-11 21:10:34 +02:00
tsconfig.json MDX support (#3706) 2022-06-30 13:09:09 -05:00

@astrojs/mdx 📝

This Astro integration enables the usage of MDX components and allows you to create pages as .mdx files.

Why MDX?

MDX is the defacto solution for embedding components, such as interactive charts or alerts, within Markdown content. If you have existing content authored in MDX, this integration makes migrating to Astro a breeze.

Want to learn more about MDX before using this integration?
Check out “What is MDX?”, a deep-dive on the MDX format.

Installation

Quick Install

The astro add command-line tool automates the installation for you. Run one of the following commands in a new terminal window. (If you aren't sure which package manager you're using, run the first command.) Then, follow the prompts, and type "y" in the terminal (meaning "yes") for each one.

# Using NPM
npx astro add mdx
# Using Yarn
yarn astro add mdx
# Using PNPM
pnpx astro add mdx

Then, restart the dev server by typing CTRL-C and then npm run astro dev in the terminal window that was running Astro.

Because this command is new, it might not properly set things up. If that happens, feel free to log an issue on our GitHub and try the manual installation steps below.

Manual Install

First, install the @astrojs/mdx package using your package manager. If you're using npm or aren't sure, run this in the terminal:

npm install @astrojs/mdx

Then, apply this integration to your astro.config.* file using the integrations property:

astro.config.mjs

import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';

export default defineConfig({
  // ...
  integrations: [mdx()],
});

Finally, restart the dev server.

Usage

To write your first MDX page in Astro, head to our UI framework documentation. You'll explore:

  • 📦 how framework components are loaded,
  • 💧 client-side hydration options, and
  • 🪆 opportunities to mix and nest frameworks together

Client Directives are still required in .mdx files.

Note

: .mdx files adhere to strict JSX syntax rather than Astro's HTML-like syntax.

Also check our Astro Integration Documentation for more on integrations.

Configuration

There are currently no configuration options for the @astrojs/mdx integration. Please open an issue if you have a compelling use case to share.

Examples

Troubleshooting

For help, check out the #support-threads channel on Discord. Our friendly Support Squad members are here to help!

You can also check our Astro Integration Documentation for more on integrations.

Contributing

This package is maintained by Astro's Core team. You're welcome to submit an issue or PR!

Changelog

See CHANGELOG.md for a history of changes to this integration.