Zum Inhalt springen

Starlight anpassen

Starlight bietet sinnvolle Standard-Styling und -Funktionen, so dass du schnell loslegen kannst, ohne dass eine Konfiguration erforderlich ist. Wenn du das Aussehen deiner Starlight-Website anpassen willst, findest du in dieser Anleitung alle nötigen Informationen.

Dein Logo hinzufügen

Das Hinzufügen eines eigenen Logos im Header ist ein schneller Weg, um einer Starlight-Website dein individuelles Branding zu geben.

  1. Füge deine Logodatei in das Verzeichnis src/assets/ ein:

    • Directorysrc/
      • Directoryassets/
        • mein-logo.svg
      • Directorycontent/
    • astro.config.mjs
  2. Füge den Pfad zu deinem Logo als Starlights logo.src Option in astro.config.mjs ein:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import starlight from '@astrojs/starlight';
    
    export default defineConfig({
    	integrations: [
    		starlight({
    			title: 'Dokumentation mit meinem Logo',
    			logo: {
    				src: './src/assets/mein-logo.svg',
    			},
    		}),
    	],
    });

Standardmäßig wird das Logo neben dem title deiner Website angezeigt. Wenn dein Logobild bereits den Titel der Website enthält, kannst du den Titeltext optisch ausblenden, indem du die Option replacesTitle setzt. Der title-Text wird für Bildschirmleser weiterhin angezeigt, so dass die Kopfzeile zugänglich bleibt.

starlight({
  title: 'Dokumentation mit meinem Logo',
  logo: {
    src: './src/assets/mein-logo.svg',
    replacesTitle: true,
  },
}),

Light- und Dark-Mode Logovarianten

Du kannst verschiedene Versionen deines Logos im Light- und Dark-Mode anzeigen.

  1. Füge eine Bilddatei für jede Variante zu src/assets/ hinzu:

    • Directorysrc/
      • Directoryassets/
        • light-logo.svg
        • dark-logo.svg
      • Directorycontent/
    • astro.config.mjs
  2. Füge den Pfad zu deiner Logovarianten als die Optionen light und dark anstelle von src in astro.config.mjs ein:

    starlight({
      title: 'Dokumentation mit meinem Logo',
      logo: {
        light: './src/assets/light-logo.svg',
        dark: './src/assets/dark-logo.svg',
      },
    }),

Sitemap aktivieren

Starlight hat eine eingebaute Unterstützung für die Erstellung einer Sitemap. Aktiviere die Sitemap-Generierung, indem du deine URL als site in astro.config.mjs angibst:

// astro.config.mjs

export default defineConfig({
	site: 'https://stargazers.club',
	integrations: [starlight({ title: 'Website mit Sitemap' })],
});

Seitenlayout

Starlight-Seiten verwenden standardmäßig ein Layout mit einer globalen Navigation und einem Inhaltsverzeichnis, das die aktuellen Seitenüberschriften anzeigt.

Du kannst ein breiteres Seitenlayout ohne Navigationen verwenden, indem du template: splash im Frontmatter einer Seite setzt. Dies funktioniert besonders gut für Landingpages, und du kannst es in Aktion auf der Homepage dieser Website sehen.

---
# src/content/docs/index.md

title: Meine Landing Page
template: splash
---

Inhaltsverzeichnis

Starlight zeigt auf jeder Seite ein Inhaltsverzeichnis an, um es den Lesern zu erleichtern, zu der gesuchten Überschrift zu springen. Du kannst das Inhaltsverzeichnis global in der Starlight-Integration oder seitenweise im Frontmatter anpassen - oder sogar deaktivieren.

Standardmäßig werden die Überschriften <h2> und <h3> in das Inhaltsverzeichnis aufgenommen. Ändere die Überschriftsebenen für die gesamte Website mit den Optionen minHeadingLevel und maxHeadingLevel in deinem globalen tableOfContents. Überschreibe diese Standardwerte auf einer individuellen Seite, indem du die entsprechenden Frontmatter tableOfContents Eigenschaften hinzufügst:

---
# src/content/docs/example.md
title: Seite mit nur H2s im Inhaltsverzeichnis
tableOfContents:
  minHeadingLevel: 2
  maxHeadingLevel: 2
---

Deaktiviere das Inhaltsverzeichnis vollständig, indem du die Option tableOfContents auf false setzt:

---
# src/content/docs/example.md
title: Seite ohne Inhaltsverzeichnis
tableOfContents: false
---

Starlight bietet integrierte Unterstützung für das Hinzufügen von Links zu deinen Social-Media-Accounts in der Kopfzeile der Website über die Option social in der Starlight-Integration.

Eine vollständige Liste der unterstützten Dienste findest du in der Konfigurationsreferenz. Lasse uns auf GitHub oder Discord wissen, wenn du Unterstützung für einen anderen Dienst benötigst!

// astro.config.mjs
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';

export default defineConfig({
	integrations: [
		starlight({
			title: 'Dokumentation mit social Links',
			social: {
				discord: 'https://astro.build/chat',
				github: 'https://github.com/withastro/starlight',
			},
		}),
	],
});

Starlight kann einen “Seite bearbeiten”-Link in der Fußzeile jeder Seite anzeigen. Dies macht es dem Leser leicht, die zu bearbeitende Datei zu finden, um deine Dokumentation zu verbessern. Insbesondere bei Open-Source-Projekten kann dies dazu beitragen, Beiträge aus deiner Community zu fördern.

Um Edit-Links zu aktivieren, setze editLink.baseUrl auf die URL, die du zum Bearbeiten deines Repositorys in der Starlight-Integrationskonfiguration verwendest. Der Wert von editLink.baseUrl wird dem Pfad zur aktuellen Seite vorangestellt, um den vollständigen Bearbeitungslink zu bilden.

Übliche Muster sind:

  • GitHub: https://github.com/BENUTZERNAME/REPOSITORY_NAME/edit/BRANCH_NAME/
  • GitLab: https://gitlab.com/BENUTZERNAME/REPOSITORY_NAME/-/edit/BRANCH_NAME/

Wenn sich dein Starlight-Projekt nicht im Stammverzeichnis deines Repositorys befindet, füge den Pfad zum Projekt am Ende der Basis-URL ein.

Dieses Beispiel zeigt den Bearbeitungslink, der für die Starlight-Dokumente konfiguriert ist, die sich im Unterverzeichnis docs/ im main-Branch des withastro/starlight-Repository auf GitHub befinden:

// astro.config.mjs
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';

export default defineConfig({
	integrations: [
		starlight({
			title: 'Dokumentation mit Bearbeitungslinks',
			editLink: {
				baseUrl: 'https://github.com/withastro/starlight/edit/main/docs/',
			},
		}),
	],
});

Benutzerdefinierte 404-Seite

Starlight-Seiten zeigen standardmäßig eine einfache 404-Seite an. Du kannst dies anpassen, indem du eine 404.md (oder 404.mdx) Datei zu deinem src/content/docs/ Verzeichnis hinzufügst:

  • Directorysrc/
    • Directorycontent/
      • Directorydocs/
        • 404.md
        • index.md
  • astro.config.mjs

Du kannst alle Seitenlayout- und Anpassungstechniken von Starlight in deiner 404-Seite verwenden. Zum Beispiel verwendet die Standard 404-Seite die splash Vorlage und hero Komponente in Frontmatter:

---
title: '404'
template: splash
editUrl: false
hero:
  title: '404'
  tagline: Seite nicht gefunden. Überprüfe die URL oder versuche es mit der Suchfunktion.
---

Benutzerdefinierte Schriftarten

Standardmäßig verwendet Starlight serifenlose Schriften, die auf dem lokalen Gerät des Benutzers verfügbar sind, für den gesamten Text. Dadurch wird sichergestellt, dass die Dokumentation schnell in einer Schriftart geladen wird, die jedem Benutzer vertraut ist, ohne dass zusätzliche Bandbreite für das Herunterladen großer Schriftdateien benötigt wird.

Wenn du deiner Starlight-Website eine eigene Schriftart hinzufügen musst, kannst du die Schriftarten in eigenen CSS-Dateien oder mit anderen Astro-Styling-Techniken einrichten.

Schriftarten einrichten

Wenn du bereits über Schriftartdateien verfügst, folge der Anleitung zum Einrichten lokaler Schriftartdateien. Um Google Fonts zu verwenden, folge der Anleitung Fontsource einrichten.

Lokale Schriftartendateien einrichten

  1. Füge deine Schriftdateien in ein src/fonts/-Verzeichnis ein und erstelle eine leere font-face.css-Datei:

    • Directorysrc/
      • Directorycontent/
      • Directoryfonts/
        • CustomFont.woff2
        • font-face.css
    • astro.config.mjs
  2. Füge eine @font-face-Deklaration für jede deiner Schriftarten in src/fonts/font-face.css ein. Verwende einen relativen Pfad zu der Schriftartdatei in der Funktion url().

    /* src/fonts/font-face.css */
    
    @font-face {
    	font-family: 'Custom Font';
    	/* Verwende einen relativen Pfad zur lokalen Schriftdatei in `url()`. */
    	src: url('./CustomFont.woff2') format('woff2');
    	font-weight: normal;
    	font-style: normal;
    	font-display: swap;
    }
  3. Füge den Pfad zu deiner font-face.css-Datei zu Starlights customCss-Array in astro.config.mjs hinzu:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import starlight from '@astrojs/starlight';
    
    export default defineConfig({
    	integrations: [
    		starlight({
    			title: 'Dokumentation mit benutzerdefinierter Schriftart',
    			customCss: [
    				// Relativer Pfad zu Ihrer @font-face CSS-Datei.
    				'./src/fonts/font-face.css',
    			],
    		}),
    	],
    });

Einrichten einer Fontsource-Schriftart

Das Fontsource Projekt vereinfacht die Verwendung von Google Fonts und anderen Open-Source-Schriften. Es bietet npm-Module, die du für die gewünschten Schriftarten installieren kannst, und enthält fertige CSS-Dateien, die du deinem Projekt hinzufügen kannst.

  1. Suche die Schriftart, die du verwenden möchten, im Fontsource-Katalog. In diesem Beispiel wird IBM Plex Serif verwendet.

  2. Installiere das Paket für deine gewählte Schriftart. Du findest den Namen des Pakets, indem du auf der Fontsource-Website auf Installieren klickst.

    npm install @fontsource/ibm-plex-serif
  3. Füge die CSS-Dateien von Fontsource zum Array customCss von Starlight in astro.config.mjs hinzu:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import starlight from '@astrojs/starlight';
    
    export default defineConfig({
    	integrations: [
    		starlight({
    			title: 'Dokumentation mit benutzerdefinierter Schriftart',
    			customCss: [
    				// Schriftquelldateien für normale und halbfette Schriftschnitte.
    				'@fontsource/ibm-plex-serif/400.css',
    				'@fontsource/ibm-plex-serif/600.css',
    			],
    		}),
    	],
    });

    Fontsource liefert mehrere CSS-Dateien für jede Schriftart. Siehe die Fontsource-Dokumentation über das Einbinden verschiedener Schriftstärken und Styles, um zu verstehen, welche zu verwenden sind.

Schriftarten verwenden

Um deine eingerichtete Schriftart auf deiner Website anzuwenden, verwende den Namen der gewählten Schriftart in einer benutzerdefinierten CSS-Datei. Um zum Beispiel die Standard-Schriftart von Starlight überall zu überschreiben, setze die benutzerdefinierte Eigenschaft --sl-font:

/* src/styles/custom.css */

:root {
	--sl-font: 'IBM Plex Serif', serif;
}

Du kannst auch spezifischeres CSS schreiben, wenn du deine Schriftart selektiver anwenden willst. Zum Beispiel, um eine Schriftart nur auf den Hauptinhalt zu setzen, aber nicht auf die Seitennavigation:

/* src/styles/custom.css */

main {
	font-family: 'IBM Plex Serif', serif;
}

Folge der Anleitung für benutzerdefiniertes CSS-Styles, um deine Styles zu deiner Website hinzuzufügen.