MDX verbindet die Textsprache Markdown mit React Components. React Components sind praktische Bausteine für Internetseiten. Dadurch können Sie interaktive Elemente in normale Texte einbauen.
Das System verbindet einfaches Schreiben in Markdown mit moderner Technik. Fachleute nennen diese Technik Frontend-Frameworks.
Inhaltsverzeichnis
Teil 1: Markdown Grundlagen
Überschriften
Überschrift 1
Überschrift 2
Überschrift 3
Überschrift 4
Überschrift 5
Überschrift 6
Abkürzungen
Hier sehen Sie Abkürzungen mit Erklärungen. Das ist gut für die Barrierefreiheit.
Das W3C macht die Regeln für HTML. Moderne Internetseiten nutzen CSS für das Aussehen. Sie nutzen JS für viele Funktionen.
Gutes HTML ist wichtig für die Suche im Internet. Das nennt man auch SEO. Eine API tauscht Daten zwischen Programmen aus. Sie nutzt dafür oft REST oder GraphQL.
<abbr title="Hypertext Markup Language">HTML</abbr>
<abbr title="World Wide Web Consortium">W3C</abbr>
<abbr title="Cascading Style Sheets">CSS</abbr>
<abbr title="Application Programming Interface">API</abbr>Tipp: Bewegen Sie die Maus über die Abkürzungen. Dann sehen Sie die ganze Bedeutung.
Language Spans
Markieren Sie Wörter aus anderen Sprachen richtig. Das hilft Vorleseprogrammen. Und es hilft Suchmaschinen.
Die Benutzeroberfläche heißt User Interface. Sie sollte einfach zu bedienen sein. Ein gutes Erlebnis für Nutzer heißt User Experience.
Wir nutzen die Regel Don't Repeat Yourself. Die Abkürzung ist DRY. Das bedeutet: Wiederholen Sie sich nicht.
Ein Pull Request ist ein Vorschlag für Änderungen. Wir prüfen den Code. Das nennt man Code Review. Danach fügen wir den neuen Code ein.
Das Veröffentlichen von Software heißt Deployment. Wir nutzen dafür automatische Programme. Das nennt man Continuous Integration.
Im Café gibt es Cappuccino und Croissants.
<!-- Englische Begriffe -->
<span lang="en">User Experience</span>
<span lang="en">Pull Request</span>
<span lang="en">Code Review</span>
<!-- Andere Sprachen -->
<span lang="fr">Café</span>
<span lang="it">Cappuccino</span>
<span lang="de">Gemütlichkeit</span>Ihre Vorteile:
- Vorleseprogramme sprechen die Wörter richtig aus.
- Suchmaschinen verstehen die Sprache besser.
Listen
Liste mit Punkten:
- Erster Punkt
- Zweiter Punkt
- Ein Unterpunkt
- Noch ein Unterpunkt
Liste mit Zahlen:
- Erster Schritt
- Zweiter Schritt
- Ein Schritt darunter
- Noch ein Schritt darunter
Links und Bilder
Hier ist ein Link zu unserer Internetseite. Und hier ist ein Link mit einem Titel.
Blockquotes
Blockquotes sind besondere Textblöcke. Sie sind sehr gut für Zitate. Sie heben wichtige Informationen deutlich hervor.
Beispiel 1: Ein einfaches Zitat
Das ist ein Blockquote. Sie können ihn für Zitate nutzen. Er zeigt wichtige Hinweise. Er hebt Aussagen gut hervor.
Ein Blockquote kann mehrere Absätze haben.
Beispiel 2: Ein Zitat von einem Experten
"Der beste Weg in die Zukunft: Erfinden Sie diese Zukunft selbst."
— Alan Kay, Informatiker
Beispiel 3: Ein wichtiger Hinweis
Wichtig: Next.js 15 nutzt Server Components. Trennen Sie den Server-Code und den Client-Code streng voneinander. Nutzen Sie keine Browser-APIs in Server Components.
Codeblöcke
Hier sehen Sie Codeblöcke für verschiedene Programmiersprachen. Die Farben machen den Code gut lesbar. Das nennt man Syntax-Highlighting.
Code im Text: const x = 42 oder npm install react
Beispiel 1: TypeScript
Beispiel 2: React Component (JSX)
Beispiel 3: CSS Styling
Beispiel 4: Shell Befehle
Beispiel 5: JSON Einstellungen
Markdown Schreibweise:
Teil 2: Interaktive UI Components
Tabs
Tabs ordnen ähnliche Inhalte. Dadurch ist die Seite am Anfang übersichtlicher. Das macht das Lesen einfacher.
<Tabs>
<Tab label="TypeScript">
```typescript
async function fetchData<T>(url: string): Promise<T> {
const response = await fetch(url)
if (!response.ok) throw new Error('Request failed')
return response.json()
}
```
</Tab>
<Tab label="JavaScript">
```javascript
async function fetchData(url) {
const response = await fetch(url)
if (!response.ok) throw new Error('Request failed')Accordion
Ein Accordion ist ein Element zum Aufklappen. Sie nutzen es oft für häufige Fragen. So ordnen Sie Informationen gut und übersichtlich.
Progress Bars
Progress Bars ist englisch. Es bedeutet: Balken für den Fortschritt. Damit zeigen Sie Ihre Fähigkeiten als Bild. Sie zeigen damit, wie weit eine Aufgabe ist. Oder Sie zeigen damit wichtige Leistungswerte.
Zeitleiste
Sie können wichtige Ziele von Ihrem Projekt zeigen. Oder Sie zeigen einen Plan für die Entwicklung. Die Anzeige in der Zeitleiste ist sehr übersichtlich.
Wechsel auf Next.js 15
Start der Component Library
Einbau von MDX
Card Grid
Diese Karten zeigen Funktionen, Angebote oder geordnete Daten.
Leistung
Server Components machen die JavaScript-Dateien um bis zu 40 Prozent kleiner.
Sichere Typen
TypeScript ist vollständig eingebaut. Das Programm erkennt Typen ganz automatisch.
Hilfen für Entwickler
Sie nutzen Hot Module Replacement. Das System unterstützt ESLint und Prettier.
<CardGrid columns={3}>
<Card title="Performance" variant="elevated">
Server Components reduzieren JavaScript-Bundle-Size um bis zu 40%.
</Card>
<Card title="Type Safety" variant="elevated">
Vollständige TypeScript-Integration mit automatischer Type-Inference.
</Card>
<Card title="Developer Experience" variant="elevated">
Hot Module Replacement, ESLint und Prettier-Support.
</Card>
</CardGrid>Tooltip
Tooltips zeigen wichtige Informationen an. Sie stören Sie nicht beim Lesen.
Tooltips sind sehr nützlich für technische Abkürzungen oder Fachbegriffe.
{/* Tooltip im Text */}
<Tooltip content="TYPO3 ist ein großes Programm für Internetseiten." side="bottom">
technische Abkürzungen
</Tooltip>
{/* Tooltips für Schaltflächen */}
<div className="flex flex-wrap gap-4 my-8">
<Tooltip content="Tooltip oben" side="top">
<button className="px-4 py-2 bg-neutral-100 rounded hover:bg-neutral-200">Oben</button>
</Tooltip>
<Tooltip content="Tooltip unten" side="bottom">
<button className="px-4 py-2 bg-neutral-100 rounded hover:bg-neutral-200">Unten</button>
</Tooltip>
<Tooltip content="Tooltip links" side="left">
<button className="px-4 py-2 bg-neutral-100 rounded hover:bg-neutral-200">Links</button>Besonderheiten:
- Sie erfüllen die Regeln für Barrierefreiheit (WCAG 2.1 AA).
- Sie können die Tooltips mit der Tastatur bedienen.
- Die Tooltips funktionieren auch auf dem Smartphone.
- Sie passen ihre Position automatisch an.
Teil 3: Darstellung von Daten
Charts
Hier sehen Sie interaktive Diagramme. Interaktiv bedeutet: Sie können die Diagramme mit der Maus bedienen. Wir bauen diese Diagramme mit der Technik Recharts.
Line Chart
// Daten
const salesData = [
{ month: 'Jan', revenue: 45000, profit: 12000 },
{ month: 'Feb', revenue: 52000, profit: 15800 },
{ month: 'Mar', revenue: 48000, profit: 14200 },
{ month: 'Apr', revenue: 61000, profit: 19500 },
{ month: 'Mai', revenue: 58000, profit: 17800 },
{ month: 'Jun', revenue: 69000, profit: 22100 },
]
// Komponente
<Chart
data={salesData}
type="line"
xAxisKey="month" Bar Chart
// Daten
const performanceData = [
{ week: 'W1', lcp: 2.4, fcp: 1.8, tti: 3.2 },
{ week: 'W2', lcp: 2.1, fcp: 1.5, tti: 2.8 },
{ week: 'W3', lcp: 1.8, fcp: 1.2, tti: 2.4 },
{ week: 'W4', lcp: 1.5, fcp: 0.9, tti: 2.0 },
]
// Komponente
<Chart
data={performanceData}
type="bar"
xAxisKey="week"
bars={['lcp', 'fcp', 'tti']}
height={300}Area Chart
// Daten
const trafficData = [
{ day: 'Mo', visitors: 3200, pageviews: 8500, conversions: 145 },
{ day: 'Di', visitors: 4100, pageviews: 10200, conversions: 189 },
{ day: 'Mi', visitors: 3800, pageviews: 9400, conversions: 165 },
{ day: 'Do', visitors: 4500, pageviews: 11800, conversions: 210 },
{ day: 'Fr', visitors: 5200, pageviews: 14200, conversions: 245 },
]
// Komponente
<Chart
data={trafficData}
type="area"
xAxisKey="day"
areas={['visitors', 'pageviews', 'conversions']} Pie Chart
// Daten
const marketShareData = [
{ name: 'TYPO3', value: 35 },
{ name: 'WordPress', value: 28 },
{ name: 'Drupal', value: 20 },
{ name: 'Andere', value: 17 },
]
// Komponente
<Chart
data={marketShareData}
type="pie"
dataKey="value"
xAxisKey="name"
height={300}Einstellungen für das Diagramm (Props):
type: Die Art von dem Diagramm ('line', 'bar', 'area' oder 'pie').data: Eine Liste mit Ihren Daten.xAxisKey: Der Name für die untere Linie (X-Achse).lines/bars/areas: Eine Liste mit den Werten für das Diagramm.dotShapes: Die Form von den Punkten.colors: Eine eigene Liste mit Farben.- Weitere Einstellungen sind:
height,showGrid,showLegendundyAxisUnit.
Datentabellen
Hier sehen Sie schön gestaltete Tabellen. Es gibt verschiedene Arten von Tabellen.
Normale Tabelle in Markdown
| Framework | Type | Rendering | Performance |
|---|---|---|---|
| Next.js | React | SSR/SSG/ISR | |
| Nuxt 3 | Vue | SSR/SSG | |
| SvelteKit | Svelte | SSR/SSG |
<StarRating rating={5} size="sm" />
<StarRating rating={4} size="md" color="teal" />
<StarRating rating={3} max={5} size="lg" />Die Komponente DataTable
| Metric | Before | After | Improvement |
|---|---|---|---|
| First Contentful Paint | 2.4s | 0.8s | +67% |
| Largest Contentful Paint | 4.2s | 1.2s | +71% |
| Time to Interactive | 5.8s | 2.1s | +64% |
Varianten: default, striped, bordered, minimal
Vergleichstabellen
Hier sehen Sie besondere Tabellen. Sie können damit Funktionen gut vergleichen. Die Tabellen zeigen ein Ja oder Nein.
| Feature | TYPO3 | WordPress | Drupal |
|---|---|---|---|
| Für große Firmen | ✓ | ✕ | ✓ |
| Mehrere Internetseiten | ✓ | ✓ | ✓ |
| Genaue Rechte | ✓ | ✕ | ✓ |
| Eingebaute Versionen | ✓ | ✕ | ✓ |
| Lernaufwand | Hoch | Leicht | Mittel |
Teil 4: Mermaid Diagramme
Sie bauen technische Diagramme direkt in den Text ein. Sie können die Diagramme anklicken und größer machen. Die Farben sind für alle Menschen gut lesbar.
Mermaid.js bietet mehr als 15 Arten von Diagrammen. Wir zeigen Ihnen hier die wichtigsten Diagramme. Wir geben Ihnen auch Beispiele dazu.
Flowchart
Ein Flowchart ist ein Ablaufplan. Damit zeigen Sie Abläufe und Entscheidungen als Bild.
Ablauf von Next.js ISR (Incremental Static Regeneration)
flowchart TD
A[Client Request] --> B{Cached?}
B -->|Yes| C[Return Cache]
B -->|No| D[Server Render]
D --> E[Generate HTML]
E --> F[Cache Result]
F --> C
C --> G[Send Response]
style A fill:#1b7a95,stroke:#1a1a1a,stroke-width:2px,color:#ffffff
style G fill:#9dd2e2,stroke:#1a1a1a,stroke-width:2px,color:#1a1a1a
style B fill:#1b7a95,stroke:#1a1a1a,stroke-width:2px,color:#ffffffMögliche Richtungen für das Bild:
TD: Von oben nach untenLR: Von links nach rechtsBT: Von unten nach obenRL: Von rechts nach links
Sequence Diagram
Ein Sequence Diagram ist ein Ablaufdiagramm. Es zeigt Schritte in einer bestimmten Reihenfolge. Sie sehen dabei genau: Was passiert wann? Das ist wichtig für Abfragen von Daten im Internet.
Ablauf von einer Datenabfrage über den Server
sequenceDiagram
participant U as User
participant B as Browser
participant S as Server
participant D as Database
U->>B: Enter URL
B->>S: HTTP Request
activate S
S->>D: Query Data
activate D
D-->>S: Return Data
deactivate D
S->>S: Render HTML
S-->>B: HTTP ResponseRegeln für den Code:
->>macht einen durchgehenden Pfeil.-->>macht einen gestrichelten Pfeil.activateunddeactivatezeigen die Dauer von einem Prozess.- Fachleute nennen diese Dauer auch Lebenslinie.
Klassendiagramme
UML-Klassendiagramme zeigen den Bauplan von einer Software. Das nennt man auch Softwarearchitektur.
Klassenstruktur von einem Blog
classDiagram
class User {
+int id
+string name
+string email
+login()
+logout()
}
class Post {
+int id
+string title
+string content
+publish()
+unpublish()Beziehungen:
-->(Verbindung)--|>(Vererbung)..>(Abhängigkeit)--*(Zusammensetzung)
State Diagram
Damit planen Sie Arbeitsabläufe. Sie zeigen damit verschiedene Zustände von einem Ablauf.
Zustände für die Veröffentlichung von Inhalten
stateDiagram-v2
[*] --> Draft
Draft --> InReview : Submit
Draft --> Archived : Cancel
InReview --> Approved : Approve
InReview --> Draft : Request Changes
InReview --> Rejected : Reject
Approved --> Published : Publish
Published --> Unpublished : Unpublish
Published --> Archived : Archive
Unpublished --> Published : Re-publishSchreibweise:
Das Zeichen [*] steht für den Start und für das Ende.
Das Zeichen --> zeigt einen Wechsel.
Der Text für den Wechsel steht nach dem Doppelpunkt :.
Entity-Relationship-Diagramm
Ein Entity-Relationship-Diagramm zeigt den Aufbau von einer Datenbank. Sie können damit die Modelle der Daten gut dokumentieren.
Aufbau der Datenbank für einen Blog
erDiagram
USER ||--o{ POST : creates
USER ||--o{ COMMENT : writes
POST ||--o{ COMMENT : contains
POST }o--|| CATEGORY : belongs_to
USER {
int id PK
string name
string email
datetime created_at
}
POST {
int id PKKardinalitäten: Das Fachwort bedeutet: Wie viele Verbindungen gibt es?
||(genau 1)o{(viele)|{(1 oder mehr)o|(0 oder 1)
User Journey
Hier zeigen Sie die Erfahrungen von Ihren Nutzern. Sie zeigen alle Schritte vom Besucher zum Kunden. Das nennt man User Journey.
Der Weg vom ersten Kontakt bis zum Kunden
journey
title User Journey: Website-Besucher zu Kunde
section Awareness
Google-Suche: 5: User
Blog-Artikel lesen: 4: User
section Interest
Leistungen ansehen: 5: User
Referenzen prüfen: 4: User
section Decision
Kontakt-Formular: 3: User
Erstgespräch vereinbaren: 4: User, Team
section Action
Meeting durchführen: 5: User, Team
Vertrag unterschreiben: 5: User, TeamDie Schreibweise:
Nutzen Sie das Wort section für die Phasen.
Schreiben Sie eine Zahl von 1 bis 5 nach der Aufgabe.
Das ist die Bewertung.
Schreiben Sie die beteiligten Personen danach auf.
Gantt Chart
Damit planen Sie den Zeitplan für Ihr Projekt. Sie planen damit auch wichtige Zwischenziele.
Zeitplan für das Projekt mit wichtigen Zwischenzielen
gantt
title TYPO3 Migration Timeline
dateFormat YYYY-MM-DD
section Planning
Requirements Analysis :done, req, 2024-01-01, 2024-01-15
Architecture Design :done, arch, 2024-01-16, 2024-01-31
section Development
Backend Migration :active, back, 2024-02-01, 2024-03-15
Frontend Implementation :front, 2024-02-15, 2024-04-01
section Testing
QA Testing :qa, 2024-03-20, 2024-04-15
User Acceptance :uat, 2024-04-10, 2024-04-25
section Deployment
Go-Live :milestone, prod, 2024-05-01, 1dStatus: done (fertig), active (aktiv), crit (kritisch), milestone (Zwischenziel)
Pie Chart (Mermaid)
Damit machen Sie Statistiken sichtbar. Sie zeigen damit eine Aufteilung in Prozent.
Verteilung der Browser im Internet
%%{init: {'theme': 'base', 'themeVariables': {
'pie1': '#1b7a95',
'pie2': '#f59e0b',
'pie3': '#10b981',
'pie4': '#8b5cf6',
'pie5': '#fb7185'
}}}%%
pie showData
title Browser-Statistiken 2025
"Chrome" : 65.2
"Safari" : 18.4
"Firefox" : 8.9
"Edge" : 5.1
"Andere" : 2.4Gut zu wissen: Der Befehl showData zeigt die Zahlen in Prozent an. Mit dem Befehl %%{init}%% machen Sie eigene Farben.
Git Graph
Sie können Branching-Strategien als Bild zeigen. Sie können auch Release-Flows als Bild zeigen.
Bild von einer Branching-Strategie und einem Release-Flow
gitGraph
commit id: "Initial Setup"
commit id: "Add Base Components"
branch feature/authentication
checkout feature/authentication
commit id: "Add Login Page"
commit id: "Add JWT Auth"
checkout main
branch feature/dashboard
checkout feature/dashboard
commit id: "Create Dashboard"
commit id: "Add Widgets"
checkout main
merge feature/authentication tag: "v1.1.0"
checkout feature/dashboardWichtige Wörter: branch, checkout, commit, merge, tag, type: HIGHLIGHT
Mindmap
So zeigen Sie Ihr Wissen sehr übersichtlich. Sie können damit gut Ideen sammeln. Sie können auch eine feste Ordnung zeigen.
Übersicht über die Technik
mindmap
root[Webentwicklung]
Frontend
React
Next.js
Remix
Vue
Nuxt 3
Svelte
SvelteKit
Backend
Node.js
Express
Fastify
PHPDer Aufbau:
Sie rücken den Text ein.
Damit machen Sie die Ordnung klar.
Sie schreiben root((Text)) für den Punkt in der Mitte.
Zeitleiste (Mermaid)
Hier sehen Sie Ereignisse in der richtigen Reihenfolge der Zeit.
Die Entwicklung vom Internet im Lauf der Zeit
timeline
title Geschichte des World Wide Web
section 1990er
1991 : Erste Website geht online
1993 : Mosaic Browser veröffentlicht
1995 : JavaScript erfunden
1996 : CSS 1.0 Standard
section 2000er
2004 : Web 2.0 Ära beginnt
2006 : jQuery revolutioniert Frontend
2008 : Chrome Browser Launch
section 2010er
2013 : React von Facebook
2014 : Vue.js veröffentlicht
2016 : Next.js 1.0Schreibweise: Nutzen Sie section für bestimmte Zeiträume. Nutzen Sie Jahr : Event für die einzelnen Ereignisse.
Quadrant Chart
Ein Quadrant Chart hat 4 Felder. Damit können Sie Dinge gut bewerten. Sie sehen sofort, was am wichtigsten ist.
Bewertung von Technologien nach Nutzen und Aufwand
quadrantChart
title Technology Adoption Matrix
x-axis Low Impact --> High Impact
y-axis Low Effort --> High Effort
quadrant-1 Plan Carefully
quadrant-2 Quick Wins
quadrant-3 Avoid
quadrant-4 Major Projects
TypeScript: [0.8, 0.3]
Next.js: [0.9, 0.5]
GraphQL: [0.6, 0.7]
Microservices: [0.7, 0.9]
ESLint: [0.5, 0.1]
Docker: [0.75, 0.6]Regeln für den Code:
Sie benennen die Linien mit x-axis und y-axis.
Sie geben den 4 Feldern einen Namen.
Sie schreiben die Punkte als [x, y].
Die Zahlen liegen zwischen 0 und 1.
Sankey Diagram
Dieses Diagramm zeigt, wie Dinge fließen. Es zeigt auch, wie Sie Mittel verteilen.
Aufteilung vom Budget für ein Internetprojekt (in Tausend Euro)
sankey-beta
Budget,Design,25
Budget,Development,45
Budget,Testing,15
Budget,Launch,15
Design,UX,15
Design,UI,10
Development,Frontend,25
Development,Backend,20
Testing,QA,10
Testing,UAT,5Schreibweise: Source,Target,Value – Das bedeutet: Quelle, Ziel und Wert. Das bestimmt den Fluss zwischen den Punkten.
Sankey Diagrams sind in Mermaid noch in einer Testphase. Die Schreibweise kann sich in Zukunft noch ändern.
Architekturdiagramme
Sie können den Aufbau von Systemen als Schaubild zeigen.
Moderner Aufbau von Internetseiten
flowchart TB
subgraph Client
Browser[Browser]
Mobile[Mobile App]
end
subgraph Edge
CDN[CDN / Edge Cache]
end
subgraph Backend
API[API Gateway]
Auth[Auth Service]
Cache[(Redis Cache)]
App[Application Server]Schreibweise:
- Das Wort
subgraphsteht für Gruppen. - Die Buchstaben
TBstehen für eine Richtung von oben nach unten. - Die Zeichen
[()]zeichnen einen Zylinder für Datenbanken.
XY Chart
Dieses Diagramm zeigt Daten als Linien oder Balken.
Die Ladezeit der Internetseite im Verlauf der Zeit
xychart-beta
title "Website Performance"
x-axis [Jan, Feb, Mar, Apr, Mai, Jun]
y-axis "Ladezeit (s)" 0 --> 5
bar [3.2, 2.8, 2.4, 2.0, 1.8, 1.5]
line [3.2, 2.8, 2.4, 2.0, 1.8, 1.5]So bauen Sie das Diagramm auf:
- Nutzen Sie
x-axisundy-axisfür die Bereiche. - Nutzen Sie
barfür Balken. - Nutzen Sie
linefür Linien.
C4 Diagramm
Ein C4 Diagramm zeigt den Aufbau von Software. Es zeigt die Software auf verschiedenen Ebenen. Die Ebenen heißen Context, Container und Component.
C4 System Context Diagram
C4Context
title System Context Diagram - E-Commerce Platform
Person(customer, "Kunde", "Ein Benutzer der E-Commerce Plattform")
Person(admin, "Administrator", "Verwaltet Produkte und Bestellungen")
System(ecommerce, "E-Commerce System", "Ermöglicht Kunden, Produkte zu kaufen")
System_Ext(payment, "Payment Provider", "Verarbeitet Zahlungen")
System_Ext(shipping, "Shipping Service", "Versendet Bestellungen")
System_Ext(email, "E-Mail Service", "Sendet Benachrichtigungen")
Rel(customer, ecommerce, "Verwendet")
Rel(admin, ecommerce, "Verwaltet")
Rel(ecommerce, payment, "Nutzt", "HTTPS/API")Elemente: Person, System, System_Ext, Container und Component. Das Element Rel zeigt die Beziehungen.
Requirement Diagram
Dieses Diagramm zeigt Anforderungen. Es zeigt auch die Beziehungen zwischen den Anforderungen.
Sicherheitsanforderungen für die Anmeldung
flowchart TB
subgraph Requirements["Security Requirements"]
REQ001["REQ-001: User Authentication<br/>Risk: High | Verify: Test"]
REQ002["REQ-002: Session Security<br/>Risk: Medium | Verify: Inspection"]
REQ003["REQ-003: Password Policy 12+ chars<br/>Risk: Low | Verify: Test"]
end
subgraph Implementation["Implementation"]
AUTH[("Auth Service")]
end
AUTH -->|satisfies| REQ001
AUTH -->|satisfies| REQ002
REQ003 -.->|derives from| REQ001Hinweis:
Requirement Diagrams nutzen die Struktur von Flussdiagrammen.
Das funktioniert besser mit MDX.
Sie können Anforderungen und Elemente in Gruppen zusammenfassen.
Nutzen Sie dafür den Befehl Subgraph.
Pfeile zeigen die Beziehungen zwischen den Elementen.
Beispiele für solche Beziehungen sind satisfies oder derives.
Zusammenfassung für Mermaid
| Art vom Diagramm | Wofür Sie es nutzen |
|---|---|
| Flowchart | Abläufe, Algorithmen, Entscheidungsbäume |
| Sequence | Abläufe von Schnittstellen, Austausch zwischen Diensten |
| Class | Strukturen von Objekten, Modelle für Fachbereiche |
| State | Arbeitsabläufe, Zustandsautomaten |
| ER | Aufbau von Datenbanken |
| User Journey | Wege von Nutzern, Erfahrungen von Kunden |
| Gantt | Planung von Projekten, Zeitpläne |
| Pie | Verteilung in Prozent |
| Git Graph | Strategien für Branches in Git |
| Mindmap | Ideen sammeln, feste Rangordnungen |
| Timeline | Ereignisse in zeitlicher Reihenfolge |
| Quadrant | Einteilung nach Wichtigkeit |
| Sankey | Darstellung von Mengen und Flüssen |
| Block | Aufbau von Systemen |
| XY Chart | Darstellung von Daten |
| C4 | Aufbau von Software |
| Requirement | Arbeit mit Anforderungen |
Teil 5: Medien und Einbindungen
Video Player
Sie können eigene Videos direkt auf der Internetseite zeigen. Das ist sehr gut für Beispiele und Erklärungen.
Props: controls, poster, autoplay, loop, muted, preload
Bildergalerie
Sie können auf die Bilder klicken. Dann öffnet sich eine große Ansicht. Diese Ansicht nennt man Lightbox. Die Technik dahinter heißt React Context.
St Martin-in-the-Fields, London
Covent Garden Market
Sonnenuntergang in Covent Garden
National Gallery, Trafalgar Square
Nelsonsäule
Brunnen am Trafalgar Square
Vortrag auf dem TYPO3 Camp London
U-Bahn in London
import { MDXGallery, MDXImage } from '@/components/MDXGallery'
<MDXGallery>
<MDXImage
src="/images/photo-01.jpg"
alt="Beschreibung für Vorleseprogramme"
caption="Bildunterschrift"
/>
<MDXImage
src="/images/photo-02.jpg"
alt="Zweites Bild"
caption="Text unter dem Bild"
/>
</MDXGallery>Diese Funktionen gibt es:
- Sie können die Bilder mit einem Klick vergrößern.
- Sie können die Bilder mit der Tastatur steuern. Zum Beispiel mit den Pfeiltasten und der ESC-Taste.
- Sie können auf dem Handy über die Bilder wischen.
- Die Bilder laden erst, wenn Sie diese wirklich ansehen. Das nennt man Lazy Loading.
- Es gibt kleine Vorschaubilder.
Videos von YouTube einfügen
Wir fügen Videos sicher für den Datenschutz ein. YouTube speichert vorher keine Cookies. Das passiert erst, wenn Sie klicken.
Klick lädt YouTube (Datenschutz)
Funktionen:
- Wir nutzen den Code
react-lite-youtube-embed. - Wir laden das Video über die Adresse youtube-nocookie.com.
- Ein Text auf dem Video warnt Sie vor Cookies.
Zitat von Twitter oder X
Hier sehen Sie einen Beitrag von Twitter. Wir speichern dabei keine Daten von Ihnen. Wir nutzen auch keine Cookies.
I charge $200/hour to fix broken AI agents. Every client has the same problem: poorly structured JSON prompts. Here are the patterns I use to fix them in under 30 minutes:
Statisch gerendert - keine Cookies, kein Tracking
Die Vorteile sind:
- Der Code besteht nur aus HTML.
- Wir nutzen absolut keine Cookies.
- Die Anzeige erscheint sofort.
- Es gibt einen Link zum Original.
GitHub Repository Card
Diese Karte zeigt Informationen über ein Repository. Der Server lädt diese Informationen. Ihr Browser macht dafür keine eigenen Aufrufe.
Die Eigenschaften:
- Es ist eine Komponente für den Server.
- Der Server prüft die Daten alle 60 Minuten neu.
- Ihr Browser braucht dafür kein JavaScript.
- Das System unterstützt die Technik ISR.
Audio und Musik einfügen
Sie können Inhalte von Spotify und YouTube ganz einfach einfügen. Das gilt für Musik und für Videos.
Prüfen Sie immer vorher: Darf ich diesen Inhalt auf meiner Internetseite zeigen? Sie brauchen das Recht dafür.
Inhalte von Spotify einfügen
Sie können verschiedene Dinge von Spotify direkt auf der Internetseite anzeigen. Zum Beispiel:
- einzelne Lieder
- ganze Alben
- Listen mit Musik
- Podcasts
<SpotifyEmbed uri="4cOdK2wGLETKBW3PvgPWqT" type="track" />Weitere Beispiele:
Einstellungen (Props):
uri: Das ist die genaue Erkennungsnummer bei Spotify. Sie finden diese Nummer in der Internetadresse von Spotify.type: Die Art von dem Inhalt. Erlaubte Werte sind:'track','album','playlist','episode'oder'show'.height: Die Höhe der Anzeige in Pixeln. Diese Angabe ist freiwillig.compact: Das ist eine kleinere Ansicht. Sie ist genau 80 Pixel hoch.
Inhalte von YouTube einfügen
Sie können auch Videos und Töne von YouTube einfügen.
Dafür nutzen Sie den Baustein YouTubeEmbed.
Lesen Sie dazu den Abschnitt Video Player weiter oben.
Teil 6: Aufbau der Inhalte
Callout Components
Callouts sind besondere Kästen für Text. Es gibt diese Kästen in 5 Arten.
Hier stehen normale Informationen. Hier stehen auch technische Details.
Dieser Kasten zeigt einen Erfolg. Die Aktion hat gut funktioniert.
Dieser Kasten zeigt eine Warnung. Es kann Probleme geben.
Dieser Kasten zeigt schwere Fehler. Er zeigt auch sogenannte Breaking Changes. Das sind Änderungen, die alten Code kaputt machen.
Hier finden Sie gute Tipps. Diese Tipps machen Ihre Arbeit besser.
Arten: info, success, warning, error, tip
TechResourceCallout
Dieser Kasten ist für technische Verweise. Er ist für Texte für Entwickler und Entwicklerinnen. Sie können damit gut auf Dateien bei GitHub verweisen. Oder Sie verweisen auf die Beschreibung von einer Schnittstelle. Eine Schnittstelle für Programme heißt in der Technik auch API. Der Kasten passt sehr gut für schwere technische Texte.
Deepfake-Detection Skill
Dieser Text erklärt genaue Prüfmethoden für Bilder. Dazu gehören unsichtbare Spuren vom Kamerasensor. Er erklärt auch Fehler durch das Verkleinern von Bildern. Das ist perfekt für Entwickler und Entwicklerinnen. Diese Personen bauen Programme für das Erkennen von Fälschungen.
<TechResourceCallout
title="Deepfake-Detection Skill"
url="https://github.com/dirnbauer/webconsulting-skills/blob/main/skills/deepfake-detection/SKILL.md"
>
Dokumentiert forensische Analysemethoden im Detail – von Sensor-Fingerprints
über Kompressions-Artefakte bis zu semantischer Forensik.
</TechResourceCallout>Eigenschaften (Props):
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
title | string | Pflicht | Der Titel von der Quelle. |
children | ReactNode | Pflicht | Der Text in dem Kasten. |
url | string | Pflicht | Der Link zu der Quelle. |
linkText | string | "Auf GitHub öffnen" | Der Text auf dem Knopf. |
header | string | "Für technisch Interessierte" | Die Überschrift. |
icon | string | "code" | Der Name von dem Lucide-Symbol. |
Mehr Beispiele:
TYPO3 Security Hardening
Das ist eine genaue Prüfliste für sichere TYPO3-Seiten. TYPO3 ist ein System für Internetseiten. Die Liste erklärt wichtige Rechte für Dateien. Sie erklärt auch sichere Verbindungen und Kopfdaten.
PDF Download
Es gibt 3 Arten für den PDF Download. Sie sehen immer einheitlich aus.
Standard
Saferinternet.at Material für den Unterricht
Kompakt (im Text)
Sie können den Download in den Text einbauen: Material als PDF(2.3 MB). Das passt sehr gut für normalen Text.
Karte
Es gibt 17 Themen mit Übungen und Informationen.
Subpage Navigator
Hier sehen Sie Links zu ähnlichen Unterseiten. Diese Links sind übersichtlich geordnet.
Teil 7: Referenzen und Quellen
Manche Artikel sind sehr lang und wissenschaftlich. Dafür haben wir ein System für die Quellenangaben. Eine Quelle zeigt, woher eine Information kommt. Das System ordnet die Quellen automatisch. Das System macht auch automatisch Überschriften für die Kapitel.
Wir speichern alle Quellen in einer Datenbank.
Die Datenbank heißt PostgreSQL.
Im Text rufen wir die Quellen über eine Nummer auf.
Diese Nummer heißt Datenbanknummer (<Citation id="db-123" />).
Am Ende vom Artikel steht eine Liste mit allen Quellen.
Das System erstellt diese Liste ganz automatisch.
Dafür nutzt das System die Komponente ArticleReferencesSection.
Sie können neue Quellen ganz einfach einfügen.
Nutzen Sie dafür das Skript scripts/sync-blog-references.ts.
Oder Sie nutzen den Bereich für Administratoren.
AllReferencesFlat
Diese Variante arbeitet mit einer Datenbank. Sie lädt die Referenzen aus der PostgreSQL-Datenbank. Danach zeigt sie die Referenzen mit Zwischenüberschriften an.
<AllReferencesFlat
title="Referenzen & Quellen"
description="Alle zitierten Quellen nach Kapiteln geordnet:"
pageFilter="/blog/ki-kompendium-business-bildung-2025"
/>Props:
| Prop | Typ | Standard | Beschreibung |
|---|---|---|---|
title | string | "Referenzen & Quellen" | Überschrift von dem Bereich |
description | string | - | Text zur Einleitung (Freiwillig) |
pageFilter | string | - | Filtert nach dem Pfad der Seite (Freiwillig) |
className | string | - | Weitere CSS-Klassen für das Aussehen |
Vorteile von der Datenbank:
- Sie verwalten alle Referenzen an einem zentralen Ort.
- Sie können über die API suchen und filtern.
- Sie können die gleichen Quellen für mehrere Artikel nutzen.
- Das Format der Daten passt zu BibLaTeX.
ReferencesSearch
Das ist eine Suche für alle Referenzen in der Datenbank. Sie können die Suche direkt auf der Seite bedienen.
<ReferencesSearch
compact={true}
variant="light"
lang="de"
showStats={false}
/>Props:
| Prop | Typ | Standard | Beschreibung |
|---|---|---|---|
lang | 'de' | 'en' | 'de' | Sprache für die Texte der Anzeige |
showStats | boolean | false | Zeigt den Bereich für Statistiken an |
compact | boolean | false | Kleine Ansicht für den Blog |
variant | 'dark' | 'light' | 'dark' | Helle oder dunkle Farben |
className | string | - | Weitere CSS-Klassen für das Aussehen |
Funktionen:
- Sie können in Beschreibungen und Internetadressen suchen.
- Sie können die Ergebnisse nach 12 Kategorien filtern.
- Sie können nach Artikeln oder Seiten filtern.
- Sie können die Liste sortieren. Das geht nach Nummer, Beschreibung oder Kategorie.
- Die Ergebnisse sind auf mehrere Seiten aufgeteilt.
Daten in die Datenbank laden
Manche Teile der Internetseite brauchen eine Datenbank. Sie laden dafür die Quellenangaben in die Datenbank. Die Datenbank heißt PostgreSQL.
Format für die Daten (BibLaTeX-Schema)
interface CreateReferenceInput {
link: string // Internetadresse der Quelle
description: string // Text für das Zitat
category?: string // Gruppe (siehe unten)
}
// Nutzung mit einem Abschnitt
interface ReferenceWithUsage {
link: string
description: string
category?: string
page: string // zum Beispiel "/blog/ki-kompendium-2025"
segment_id: string // zum Beispiel "1.1", "2.3"
}12 Kategorien
| ID | Name | Beschreibung |
|---|---|---|
| official | Offizielle Quellen | Dokumente von der Regierung oder von Behörden |
| academic | Wissenschaftlich | Texte von Universitäten oder Forschern |
| research | Forschung | Sammlungen von Forschungen und Texten von Konferenzen |
| technical | Technische Texte | Texte mit Anleitungen und Regeln für die Technik |
| tool | Programme und Werkzeuge | Computerprogramme und Orte für Programmcode |
| commercial | Unternehmen und Produkte | Internetseiten von Firmen und Seiten von Produkten |
| standards | Regeln und Vorgaben | Technische Regeln und gute Beispiele aus der Praxis |
| news | Nachrichten und Medien | Artikel aus den Nachrichten und Texte für die Presse |
| blog | Blogs und Meinungen | Persönliche Internetseiten und Meinungen von Fachleuten |
| video | Videos und Tondateien | Videos auf YouTube, Podcasts und Kurse im Internet |
| community | Gemeinschaften und Vereine | Gruppen von Menschen, Vereine und gemeinnützige Firmen |
| other | Andere | Andere Quellen ohne feste Gruppe |
Befehle für das Laden in die Datenbank
# 1. Die Datenbank vorbereiten (Tabellen erstellen)
npx tsx scripts/init-references-db.ts
# 2. Vorschau für das Laden (Probelauf)
npx tsx scripts/migrate-references-to-db.ts --dry-run
# 3. Die echten Daten aus den MDX-Dateien laden
npx tsx scripts/migrate-references-to-db.ts
# 4. Zahlen und Daten anzeigen
npx tsx scripts/init-references-db.tsZugriff über die API
Sie können Quellenangaben auch über eine Schnittstelle abrufen. Diese Schnittstelle heißt REST-API. Sie können damit auch neue Quellenangaben erstellen.
# Alle Quellenangaben abrufen
curl "https://example.com/api/references?limit=20"
# Nur Quellenangaben von einer bestimmten Seite anzeigen
curl "https://example.com/api/references?page_filter=/blog/ki-kompendium-2025"
# Nur Quellenangaben von einer bestimmten Gruppe anzeigen
curl "https://example.com/api/references?category=academic"
# Im ganzen Text suchen
curl "https://example.com/api/references?query=transformer"Wann brauchen Sie welche Komponente?
| Wann nutzen Sie das? | Komponente |
|---|---|
| Quellenangabe im Text | Citation mit Datenbank-ID |
| Liste mit Quellen am Ende der Seite | Automatisch mit ArticleReferencesSection |
| Eigene Liste mit Quellen | AllReferencesFlat mit pageFilter |
| Suche nach Quellen | ReferencesSearch |
| API-Verbindung für andere Programme | /api/references |
Teil 8: Installation und beste Tipps
Benötigte Pakete
Beispiele für Komponenten bei normalen Aufgaben
Oder als Gitter (CardGrid):
Checkliste vor der Veröffentlichung
Hilfreiche Links
- MDX Documentation
- Next.js MDX Guide
- React Components
- Mermaid.js Documentation – Alle Arten von Diagrammen
- Recharts Documentation – Sammlung für Diagramme
Haben Sie Fragen zur Umsetzung? Schreiben Sie uns eine E-Mail an: office@webconsulting.at