Hyperbook Dokumenation

Caching

Der Build-Cache von Hyperbook speichert heruntergeladene Laufzeitumgebungen auf dem Rechner der CLI. HTTP-Caches speichern Dateien, die Leser von deinem Host oder einem CDN abrufen.

Downloads zwischen Builds aufbewahren

CLI und VS Code teilen sich einen Asset-Cache. Builds verwenden bereits heruntergeladene Laufzeitumgebungen erneut. Mit HYPERBOOK_ASSET_CACHE kannst du das Verzeichnis festlegen. Standardmäßig wird dieser Pfad verwendet:

System Verzeichnis
Linux $XDG_CACHE_HOME/hyperbook/assets oder ~/.cache/hyperbook/assets
macOS ~/Library/Caches/hyperbook/assets
Windows %LOCALAPPDATA%\hyperbook\assets

CI-Runner starten normalerweise mit einem leeren Dateisystem. Stelle den Asset-Cache vor dem Build wieder her und speichere ihn danach. Füge zum Beispiel diese Schritte nach Checkout und Node.js-Einrichtung in deinen GitHub-Pages-Workflow ein:

- name: Cache Hyperbook runtimes
  uses: actions/cache@v4
  with:
    path: .cache/hyperbook-assets
    key: ${{ runner.os }}-hyperbook-assets-${{ hashFiles('package-lock.json', 'pnpm-lock.yaml', 'hyperbook.json') }}-${{ github.sha }}
    restore-keys: |
      ${{ runner.os }}-hyperbook-assets-
 
- name: Build
  env:
    HYPERBOOK_ASSET_CACHE: .cache/hyperbook-assets
  run: npx hyperbook build

Der Cache-Schlüssel speichert neu benötigte Laufzeitumgebungen, wenn sich das Buch ändert. Mit restore-keys verwenden spätere Builds frühere Downloads erneut. Hyperbook prüft die Dateien anhand seines Laufzeitmanifests und lädt fehlende oder geänderte Pakete herunter. Verwende den normalen Online-Build, damit ein fehlender Cache automatisch ergänzt wird. Siehe die GitHub-Dokumentation zum Caching.

Bei GitLab kannst du .cache/hyperbook-assets zwischenspeichern und dieselbe Variable HYPERBOOK_ASSET_CACHE im Pages-Job setzen. Veröffentliche dieses Verzeichnis nicht, sondern nur .hyperbook/out.

Elemente mit aktiviertem CDN benötigen keinen lokalen Download. PyIDE verwendet standardmäßig ein CDN. Setze für ein Offline-Buch elements.pyide.cdn auf false, führe mit Internetverbindung npx hyperbook assets fetch aus und baue anschließend mit npx hyperbook build --offline. --offline steuert die Downloads beim Build. Ein Buch mit CDN-URLs wird dadurch nicht offline nutzbar.

Dateien im Browser zwischenspeichern

Wenn dein Host eigene Antwort-Header erlaubt, kannst du für öffentliche Bücher mit diesen Einstellungen beginnen:

Dateien Cache-Control Wirkung
HTML und Dateien, die unter derselben URL ersetzt werden no-cache Vor der Wiederverwendung auf Aktualisierungen prüfen.
Dateien mit Inhalts-Hash oder unveränderlicher Release-Version in der URL public, max-age=31536000, immutable Ein Jahr wiederverwenden; Änderungen unter einer neuen URL veröffentlichen.

Aktiviere auf deinem Server ETag oder Last-Modified, damit unveränderte Dateien ohne erneuten Download ihrer Inhalte geprüft werden können. Für stabile URLs ist auch eine kurze Dauer wie public, max-age=3600 möglich, wenn bis zu eine Stunde Verzögerung nach Änderungen akzeptabel ist. Diese Einstellungen folgen dem HTTP-Caching-Standard.

Die lokal exportierten Laufzeitumgebungen verwenden stabile Pfade unter __hyperbook_assets/directive-*/. Gib nicht dem gesamten Verzeichnis eine unveränderliche Cache-Dauer: Ein Hyperbook-Update kann Dateien unter derselben URL ersetzen. Das gilt auch für Dateien aus deinem public-Verzeichnis. Setze die Header beim Hosting-Dienst oder Webserver. Ein Eintrag in hyperbook.json konfiguriert kein HTTP-Caching.

Die versionierten Laufzeit-Releases auf cdn.openpatch.org senden bereits Cache-Control: public, max-age=31536000, immutable. Auch die versionierte Pyodide-Distribution auf jsDelivr wird im Browser zwischengespeichert; siehe die Pyodide-Dokumentation. Die Hosting-Einstellungen deines Buchs ändern die Header dieser CDNs nicht.

Caching

Teilbare URL erstellen

Abschnitte auswählen

✎ GitHub© Copyright 2026 by OpenPatch