Insights / Articles techniques

Migrer VitePress vers Starlight : vérifier Markdown, URLs et Mermaid

Décidez de l’unification avec Astro puis vérifiez Markdown, frontmatter, anciennes URLs, rendu Mermaid et dépendance CDN, à partir d’un exemple de mars 2026.

  • Technologie
  • Astro
  • Starlight
Migrer VitePress vers Starlight : vérifier Markdown, URLs et Mermaid
Sommaire
  1. Vérifier la compatibilité sur une page avant migration
  2. Pourquoi unifier le framework ?
  3. Procédure de migration de VitePress vers Starlight
  4. 1. Conversion de la structure du projet
  5. 2. Ajustement du frontmatter
  6. 3. Configuration de astro.config.mjs
  7. 4. Suppression d’UnoCSS
  8. Migration CDN des diagrammes Mermaid
  9. Implémentation
  10. Avantages de l’approche CDN
  11. Résultat de la migration
  12. Conclusion

Voici les étapes de la migration d’un site documentaire construit avec VitePress vers Astro + Starlight. Lorsque le site principal fonctionne sous Astro, unifier également la documentation sous Starlight simplifie l’exploitation. La migration CDN des diagrammes Mermaid est également abordée.

Vérifier la compatibilité sur une page avant migration

Migrez d’abord une page avec titres, liens internes, code et Mermaid ; comparez URLs et diagrammes. L’import CDN ne transforme pas forcément un bloc Markdown en cible Mermaid. Le rendu doit transmettre les définitions aux éléments class=“mermaid” ; inspectez le HTML avant de tout migrer.

Starlight:Spécifications de Markdown et HTML

Pourquoi unifier le framework ?

Lorsque le site principal et le site documentaire utilisent des frameworks différents, les problèmes suivants se posent :

  • Double coût d’apprentissage : Il faut maîtriser les spécifications de VitePress et d’Astro
  • Dispersion des dépendances : Gérer les mises à jour des packages npm sur deux systèmes
  • Incohérence de la configuration : Maintenir individuellement ESLint, Prettier, configuration de déploiement, etc.

En unifiant sous Astro + Starlight, on peut mutualiser les patterns de fichiers de configuration et le savoir-faire de dépannage.

Procédure de migration de VitePress vers Starlight

1. Conversion de la structure du projet

VitePress place les documents dans le répertoire docs/, Starlight dans src/content/docs/.

# Avant (VitePress)
docs/
  pages/
    index.md
    business-overview.md
    market-analysis.md

# Après (Starlight)
src/
  content/
    docs/
      index.md
      business-overview.md
      market-analysis.md

2. Ajustement du frontmatter

Les formats de frontmatter diffèrent légèrement entre VitePress et Starlight. La configuration sidebar de VitePress a été migrée vers le champ sidebar du frontmatter.

# Frontmatter Starlight
---
title: Vue d'ensemble de l'activité
sidebar:
  order: 1
---

3. Configuration de astro.config.mjs

import { defineConfig } from "astro/config";
import starlight from "@astrojs/starlight";

export default defineConfig({
  integrations: [
    starlight({
      title: "Plan d'affaires Acecore",
      defaultLocale: "ja",
      sidebar: [
        {
          label: "Plan d'affaires",
          autogenerate: { directory: "/" },
        },
      ],
    }),
  ],
});

4. Suppression d’UnoCSS

Dans l’environnement VitePress, UnoCSS était utilisé pour les styles personnalisés, mais Starlight intègre des styles par défaut suffisants. La suppression de uno.config.ts et des packages associés a permis d’alléger les dépendances.

Migration CDN des diagrammes Mermaid

Les documents utilisaient vitepress-plugin-mermaid. Nous avons choisi le CDN dans Starlight pour unifier les dépendances. Voir la liste officielle des plugins : le CDN n’est pas la seule option.

La solution adoptée a été de charger Mermaid côté navigateur depuis un CDN.

Implémentation

Ajout du script CDN Mermaid dans l’en-tête personnalisé de Starlight.

// astro.config.mjs
starlight({
  head: [
    {
      tag: "script",
      attrs: { type: "module" },
      content: `
        import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11.16.0/dist/mermaid.esm.min.mjs'
        mermaid.initialize({ startOnLoad: true })
      `,
    },
  ],
});

Le bloc suivant définit un diagramme ; il faut aussi transmettre la définition aux éléments cibles Mermaid :

```mermaid
graph TD
    A[Plan d'affaires] --> B[Analyse de marché]
    A --> C[Stratégie commerciale]
    A --> D[Plan financier]
```

Avantages de l’approche CDN

  • Zéro dépendance de build : Pas besoin de Mermaid en tant que package npm
  • Fixer la version : L’exemple choisit 11.16.0 ; un CDN ne la met pas automatiquement à jour
  • Pas de SSR nécessaire : Le rendu côté navigateur n’impacte pas le temps de build

Résultat de la migration

Élément Avant Après
Framework VitePress 1.x Astro 6 + Starlight
CSS UnoCSS Intégré à Starlight
Mermaid vitepress-plugin-mermaid CDN (jsdelivr)
Sortie de build docs/.vitepress/dist dist
Hébergement Cloudflare Pages Cloudflare Pages (inchangé)

L’unification du framework permet de mutualiser les patterns de configuration astro.config.mjs et les paramètres de déploiement entre plusieurs projets.

Conclusion

L’unification du framework n’est pas urgente au départ, mais ses bénéfices se renforcent avec le temps. La migration de VitePress vers Starlight se réalise en quelques heures, et la migration CDN de Mermaid apporte même l’avantage de se libérer de la gestion de plugins. Si vous gérez plusieurs projets, envisagez l’unification de votre stack technique.

Étapes de la migration

  1. Analyse de l'existant

    Inventaire de la configuration VitePress + UnoCSS.

  2. Mise en place de Starlight

    Reconfiguration du projet avec Astro + Starlight.

  3. Migration du contenu

    Ajustement du placement et du frontmatter des fichiers Markdown.

  4. Migration CDN de Mermaid

    Suppression des dépendances de plugins et rendu des diagrammes via CDN.

Comparaison avant et après la migration

VitePress + UnoCSS

  • SSG basé sur Vue
  • Stylisation via UnoCSS
  • Mermaid fonctionnant via un plugin
  • Stack technique séparée du projet Astro

Astro + Starlight

  • SSG basé sur Astro
  • Stylisation intégrée à Starlight
  • Mermaid fonctionnant via CDN
  • Framework unifié avec le site principal

Questions fréquentes

Quel est l'avantage de migrer de VitePress vers Starlight ?

Si le site principal fonctionne sous Astro, l'unification du framework réduit les coûts d'apprentissage, simplifie la gestion des dépendances et améliore la cohérence de la configuration. Le pipeline de build peut également être consolidé.

Comment sont affichés les diagrammes Mermaid ?

Nous avons chargé Mermaid depuis jsdelivr et transmis les définitions aux éléments cibles. Cela retire sa dépendance npm, mais disponibilité CDN et compatibilité restent à vérifier.

Combien de temps demande la migration ?

Le travail principal consiste en la conversion de la structure de répertoires (docs/ → src/content/docs/) et l'ajustement du frontmatter. Le contenu étant en Markdown, il peut être réutilisé tel quel, ce qui permet de finaliser la migration en un temps relativement court.