Mettre en forme le rendu Markdown avec la typographie Tailwind
Vous pouvez utiliser le module d’extension Typography de Tailwind pour mettre en forme le rendu Markdown à partir de sources telles que les collections de contenu d’Astro.
Cette recette vous apprendra à créer un composant Astro réutilisable pour mettre en forme votre contenu Markdown en utilisant les classes utilitaires de Tailwind.
Prérequis
Section intitulée « Prérequis »Un projet Astro qui :
- a le module d’extension Vite de Tailwind installé
 - utilise les collections de contenu d’Astro.
 
Mise en place de @tailwindcss/typography
Section intitulée « Mise en place de @tailwindcss/typography »Tout d’abord, installez @tailwindcss/typography en utilisant votre gestionnaire de paquets préféré.
npm install -D @tailwindcss/typographypnpm add -D @tailwindcss/typographyyarn add --dev @tailwindcss/typographyEnsuite, ajoutez le paquet en tant que module d’extension dans votre fichier de configuration Tailwind.
@import 'tailwindcss';@plugin '@tailwindcss/typography';- 
Créez un composant
<Prose />pour fournir un élément<div>avec une balise<slot />pour votre Markdown rendu. Ajoutez la classe de styleproseainsi que les modificateurs d’éléments Tailwind dans l’élément parent.src/components/Prose.astro ------<divclass="prose dark:prose-invertprose-h1:font-bold prose-h1:text-xlprose-a:text-blue-600 prose-p:text-justify prose-img:rounded-xlprose-headings:underline"><slot /></div>Le module d’extension
@tailwindcss/typographyutilise des modificateurs d’éléments pour mettre en forme les composants enfants d’un conteneur avec la classeprose.Ces modificateurs suivent la syntaxe générale suivante :
prose-[element]:class-to-applyPar exemple,
prose-h1:font-bolddonne à toutes les balises<h1>la classe Tailwindfont-bold. - 
Interrogez votre entrée de collection sur la page où vous voulez afficher votre Markdown. Passez le composant
<Content />deawait render(entry)à<Prose />en tant qu’enfant pour envelopper votre contenu Markdown dans les styles Tailwind.src/pages/index.astro ---import Prose from '../components/Prose.astro';import Layout from '../layouts/Layout.astro';import { getEntry, render } from 'astro:content';const entry = await getEntry('collection', 'entry');const { Content } = await render(entry);---<Layout><Prose><Content /></Prose></Layout>