Zum Inhalt springen

Gestalte dein gerendertes Markdown mit dem Tailwind-CSS Typography-Plugin

Du kannst das Typography-Plugin von Tailwind nutzen, um das Aussehen von gerenderten Markdown-Inhalten aus Quellen wie etwa Inhaltssammlungen (EN) von Astro zu gestalten.

In diesem Rezept erfährst du, wie du eine wiederverwendbare Astro-Komponente erstellst, um das Aussehen deiner Markdown-Inhalte mithilfe der Utility-Klassen von Tailwind zu gestalten.

Ein Astro-Projekt, welches:

Installiere zunächst das @tailwindcss/typography-Plugin unter Nutzung des von dir bevorzugten Paketmanagers.

Terminal-Fenster
npm install -D @tailwindcss/typography

Füge nun das Paket als Plugin in deine Tailwind Konfigurationsdatei ein.

src/styles/global.css
@import 'tailwindcss';
@plugin '@tailwindcss/typography';
  1. Erstelle eine <Prose />-Komponente, um ein umschließendes <div>-Element mit einem <slot /> für Ihren gerenderten Markdown-Text bereitzustellen. Fügen Sie die Stilklasse prose zusammen mit den gewünschten Tailwind-Elementwandlern im übergeordneten <div>-Element hinzu.

    src/components/Prose.astro
    ---
    ---
    <div
    class="prose dark:prose-invert
    prose-h1:font-bold prose-h1:text-xl
    prose-a:text-blue-600 prose-p:text-justify prose-img:rounded-xl
    prose-headings:underline">
    <slot />
    </div>
  2. Rufen Sie Ihren Collection-Eintrag auf der Seite ab, auf der Sie Ihr Markdown rendern möchten. Übergeben Sie die Komponente <Content /> aus await render(entry) als untergeordnete Komponente an <Prose />, um Ihren Markdown-Inhalt mit Tailwind-Stilen zu umgeben.

    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>
Wirke mit Community Sponsor