Formateur MDX

Formatez vos fichiers MDX : Markdown enrichi de composants JSX.

MDX Source

Formatage

Options

MDX Formaté

Guide complet : MDX pour documentation et contenu interactif

MDX : la fusion de Markdown et JSX

MDX combine la simplicité du Markdown avec la puissance des composants React. Créé en 2018, il répond à un besoin croissant : écrire de la documentation technique avec des exemples interactifs, des démos live, et des composants personnalisés, tout en gardant la lisibilité du Markdown.

J'utilise MDX depuis ses débuts pour documenter des design systems et créer des blogs techniques. La possibilité d'intégrer un composant React dans un fichier Markdown change complètement l'expérience de documentation — vos lecteurs peuvent interagir avec le code, pas seulement le lire.

Syntaxe MDX essentielle

📦 Imports ES Modules

import Button from './Button' en haut du fichier. Importez n'importe quel composant React, hook, ou utilitaire.

✨ JSX inline

<Button variant="primary">Cliquez</Button> directement dans le texte. Le JSX se mélange naturellement au Markdown.

📤 Exports

export const meta = { title: 'Guide' } pour exporter des métadonnées ou des données accessibles au runtime.

📋 Frontmatter YAML

---\ntitle: Mon Article\n--- pour les métadonnées (compatible avec la plupart des frameworks).

Fonctionnalités avancées MDX

  • MDXProvider : Remplacez les éléments Markdown par vos composants (h1<CustomHeading/>)
  • Expressions JavaScript : {2 + 2} ou {users.map(u => <User key={u.id} />)}
  • Layouts : export default Layout pour wrapper automatiquement le contenu
  • Plugins remark/rehype : Syntax highlighting, math equations, auto-linking, etc.
  • next-mdx-remote : MDX à partir de sources distantes (CMS, API)

Cas d'usage idéaux pour MDX

  • Documentation technique : Docusaurus, Nextra. Exemples de code interactifs, playgrounds.
  • Design systems : Storybook Docs, démos de composants avec props éditables.
  • Blogs techniques : Articles avec visualisations interactives, quiz, graphiques animés.
  • Tutoriels : Apprentissage interactif avec éditeurs de code intégrés.
  • Landing pages : Contenu marketing avec composants réutilisables.

Traitement local : confidentialité assurée

Ce formateur traite vos fichiers MDX entièrement dans votre navigateur. Aucun code n'est envoyé à un serveur — formatez votre documentation propriétaire en toute confiance.

Questions fréquentes sur MDX

MDX vs Markdown : quand utiliser MDX ?

Utilisez MDX quand :

  • Vous avez besoin de composants interactifs (démos, playgrounds)
  • Vous documentez un design system avec des exemples live
  • Vous voulez des visualisations personnalisées (graphiques, animations)
  • Vous utilisez déjà React dans votre stack

Restez sur Markdown standard si :

  • Votre contenu est purement textuel/statique
  • Vous n'utilisez pas React
  • Vous voulez minimiser la complexité de build

Comment configurer MDX avec Next.js ?

App Router (Next.js 13+) :

  • npm install @next/mdx @mdx-js/loader @mdx-js/react
  • Configurez next.config.mjs avec withMDX()
  • Les fichiers .mdx deviennent des pages automatiquement

Contenu distant (CMS) :

  • Utilisez next-mdx-remote pour compiler MDX côté serveur
  • Passez les composants via components prop

Contentlayer : Alternative populaire pour gérer le contenu MDX avec typage TypeScript.

Peut-on utiliser MDX avec Vue, Svelte ou autres frameworks ?

MDX est spécifique à React/JSX. Alternatives pour autres frameworks :

  • Vue : VitePress (Markdown + Vue components), vite-plugin-md
  • Svelte : mdsvex (syntaxe similaire à MDX pour Svelte)
  • Astro : Support natif de MDX ET de composants multi-frameworks
  • Solid : solid-mdx (expérimental)

Astro est intéressant car il supporte MDX avec des composants React, Vue, ou Svelte dans le même projet.

Comment styler le contenu MDX ?

Approches recommandées :

  • MDXProvider : Remplacez h1, p, code par vos composants stylés
  • @tailwindcss/typography : Plugin prose pour un style prose automatique
  • CSS scopé : Ciblez .mdx-content h1 { } dans un wrapper
  • CSS-in-JS : Styled-components ou Emotion avec MDXProvider

Syntax highlighting : Utilisez rehype-prism-plus ou rehype-highlight comme plugins rehype.

MDX 1 vs MDX 2 : quelles différences ?

MDX 2 (version actuelle) apporte :

  • Expressions JavaScript {} partout (même dans le texte)
  • Meilleure gestion des erreurs de syntaxe
  • Support natif des expressions conditionnées
  • Architecture modulaire (plugins plus faciles)

Breaking changes :

  • Plus de /* @jsx jsx */ nécessaire
  • Syntaxe légèrement différente pour les exports

Migrez vers MDX 2 pour les nouveaux projets.

Mon code MDX est-il sécurisé avec cet outil ?

Absolument. Le formatage s'effectue entièrement dans votre navigateur :

  • js-beautify fonctionne localement en JavaScript
  • Aucune requête réseau n'envoie votre code
  • Votre documentation MDX ne quitte jamais votre machine
  • L'outil fonctionne même hors ligne après chargement

Formatez votre documentation propriétaire en toute confidentialité.