Buch Konfiguration
In deinem neuen Hyperbook-Projekt findest du eine hyperbook.json Datei. Diese
Datei wird verwendet, um dein Hyperbook zu konfigurieren. Hier ist eine Liste
von Optionen, die du definieren kannst. Optionen mit einem "*" müssen gesetzt werden.
| Property | Description |
|---|---|
| name* | Name des Hyperbooks. Wird für den Seitentitel verwendet. |
| description | Beschreibung des Hyperbooks. Wird für SEO verwendet. |
| search | Erlaubt es im Hyperbook zu suchen. |
| logo | URL eines Logos. Wird für den Seitentitel verwendet. Diese kann relative zum public-Ordner (z.B.: /mein-logo.png) sein oder ein externes Bild referenzieren. |
| author.name | Name des Autors des Hyperbooks. Wird in der Fußzeile verwendet. |
| author.url | URL zur Homepage des Autors. Wird in der Fußzeile verwendet. |
| font | URL zu einer Schriftart. Wird für Überschriften und normalen Text verwendet. Du kannst ":90%" hinzufügen um die Schriftgröße anzupassen. |
| fonts.heading | URL zu einer Schriftart. Wird für Überschriften verwendet. Du kannst ":90%" hinzufügen um die Schriftgröße anzupassen. |
| fonts.body | URL zu einer Schriftart. Wird für normalen Text verwendet. Du kannst ":90%" hinzufügen um die Schriftgröße anzupassen. |
| fonts.code | URL zu einer Schriftart. Wird für Quelltexte verwendet. Du kannst ":90%" hinzufügen um die Schriftgröße anzupassen. |
| colors.brand | Die Farbe der Kopfzeile und von Akzenten z.B. von Links. |
| colors.brandDark | Die Farbe der Akzente z.B. von Links. Nur relevant für das dunkle Design. Brand text wird im dunklen Design nicht verwendet. |
| colors.brandText | Die Farbe für den Text in der Kopfzeile. |
| basePath | Wenn das Hyperbook aus einem Unterordner bereitgestellt werden soll, muss dieser hier angegeben werden. |
| license | Lizenz unter der das Hyperbook veröffentlicht ist. |
| language | Die Sprach des Hyperbooks. |
| repo | Der Link zum GitHub-Repository. Wird für das Zeigen eines Edit-Buttons verwendet. Der Platzhalter %path% wird durch den aktuellen Pfad ersetzt oder der aktuelle Pfad wird ans Ende angehangen. |
| repo.url | Der Link zum Repository. Wird für das Zeigen eines Edit-Buttons verwendet. Der Platzhalter %path% wird durch den aktuellen Pfad ersetzt oder der aktuelle Pfad wird ans Ende angehangen. |
| repo.label | Der Bezeichner für den Repository-Link. |
| elements | Hier können einzelne Elemente konfiguriert werden. Schaue dazu auf die Elementseiten. |
| links | Hier können Links hinzugefügt werden, welche in der rechten oberen Ecke angezeigt werden. Schaue dir dazu das untere Beispiel an. |
| styles | Hier können Links zu eigenen CSS-Styles gesetzt werden. |
| scripts | Hier können Links zu eigenen JavaScript-Dateien gesetzt werden. |
| allowDangerousHtml | Erlaube HTML im Hyperbook. Dies kann zu Inkompatibilität in zukünftigen Versionen führen. |
| qrcode | Zeigt ein Icon, um einen QR-Code zur aktuellen Seite anzuzeigen. |
| toc | Zeige ein Inhaltsverzeichnis. Diese ist standardmäßig aktiviert für Seiten und deaktiviert für Begriffe im Glossar. |
| llms | Wenn auf true gesetzt, wird eine llms.txt-Datei generiert, die alle Markdown-Dateien in Reihenfolge kombiniert. Die Datei enthält den Buchnamen und die Version im Header-Format. |
| trailingSlash | Exportiert alle Datei in eigene Verzeichnisse und erzeugt nur index.html Dateien. |
| importExport | Ermöglicht das Importieren und Exportieren des Zustands des Hyperbooks als Datei. Schaltflächen zum Importieren und Exportieren befinden sich am unteren Rand der Seite. |
| cloud.url | URL deines Hyperbook Cloud-Servers. Aktiviert den Schüler-Login und die Cloud-Synchronisierung. |
| cloud.id | Der Hyperbook-Slug/ID auf dem Cloud-Server. Muss mit dem Slug übereinstimmen, der in der Cloud-Admin-Oberfläche konfiguriert ist. |
| version | Konfiguriert, wo die Version des Hyperbooks angezeigt wird. "text" zeigt sie unter dem "Powered by Hyperbook"-Text an. "tooltip" als Tooltip beim Hover über den "Powered by Hyperbook"-Text und "console" nur in der Konsole. |
Hier ist eine Beispielkonfiguration:
{
"name": "Hyperbook Documentation",
"description": "Documentation for Hyperbook created with Hyperbook",
"search": true,
"qrcode": false,
"author": {
"name": "OpenPatch",
"url": "https://openpatch.org"
},
"font": "/fonts/my-font.woff2:90%",
"logo": "/logo.png",
"license": "CC-BY-SA",
"language": "en",
"basePath": "/hyperbook-github-pages",
"repo": "https://github.com/mikebarkmin/hyperbook-github-pages/edit/main",
"colors": {
"brand": "#FF0000"
},
"cloud": {
"url": "https://cloud.example.com",
"id": "my-hyperbook"
},
"elements": {
"bookmarks": false
},
"links": [
{
"label": "Contact",
"links": [
{
"label": "Mail",
"icon": "📧",
"href": "mailto:contact@openpatch.org"
},
{
"label": "Twitter",
"icon": "🐦",
"href": "https://twitter.com/openpatchorg"
},
{
"label": "Mastodon",
"icon": "🐘",
"href": "https://fosstodon.org/@openpatch"
},
{
"label": "Matrix (Chat)",
"icon": "👨💻",
"href": "https://matrix.to/#/#hyperbook:matrix.org"
}
]
},
{
"label": "OpenPatch",
"href": "https://openpatch.org"
}
]
}
Lokale Dateien und CDNs
PyIDE verwendet standardmäßig das Pyodide-CDN, weil die vollständige Distribution
sehr groß ist. Andere Elemente laden ihre großen Laufzeitumgebungen beim ersten
Bedarf herunter und kopieren sie in den Build. Mit cdn kannst du dieses
Verhalten ausdrücklich festlegen:
{
"name": "Mein Hyperbook",
"elements": {
"pyide": { "cdn": false },
"typst": { "cdn": "https://assets.example.com/directive-typst/" },
"geogebra": { "cdn": true },
"openscad": { "cdn": false }
}
}
| Wert | Verhalten |
|---|---|
| Nicht gesetzt | Bei pyide das Standard-CDN verwenden; bei anderen Elementen die Laufzeitumgebung herunterladen und in den Build kopieren. |
false |
Die Laufzeitumgebung herunterladen und in den Build kopieren, auch bei pyide. |
true |
Die Laufzeitumgebung vom Standard-CDN laden. |
| Eine HTTP(S)-Basis-URL | Die Laufzeitumgebung vom eigenen Server oder CDN laden. |
Diese Option gibt es für pyide, typst, geogebra, openscad, excalidraw,
onlineide, sqlide und blockflow. Die Einstellung blockflow gilt für den
Player und den Editor. Kiri:Moto verwendet weiterhin seinen externen Dienst.
Die Standard-CDNs sind jsDelivr für Pyodide und Typst, der GeoGebra-Server für
GeoGebra, die gehostete Blockflow-App unter blockflow.openpatch.org für
Blockflow, die eigenen Pakete von Excalidraw auf UNPKG für Excalidraw und
cdn.openpatch.org für OpenSCAD, die Online-IDE und die SQL-IDE. Diese
Openpatch-Laufzeitumgebungen verwenden festgelegte Releases, die direkt aus
ihrem jeweiligen Repository veröffentlicht werden. Die kleinen
Integrationsskripte und Styles von Hyperbook bleiben im Build.
Die Hyperbook-Erweiterung für VS Code enthält diese Laufzeitumgebungen nicht.
Ihre Vorschau verhält sich wie ein Build: Elemente mit cdn laden von diesem
CDN, die anderen verwenden die Laufzeitumgebungen aus dem Asset-Cache der CLI,
den die Erweiterung mitbenutzt. Eine noch nicht heruntergeladene
Laufzeitumgebung lädt vom Standard-CDN. Mit Hyperbook: Download Element
Runtimes... oder Hyperbook: Download All Element Runtimes lädst du
Laufzeitumgebungen in VS Code für die Offline-Vorschau herunter.
Setze bei PyIDE zusätzlich elements.pyide.cdn auf false, um die
heruntergeladene Laufzeitumgebung zu verwenden.
Eine eigene URL muss auf den Inhalt des Verzeichnisses
__hyperbook_assets/directive-<element>/ aus einem lokalen Build zeigen.
Behalte die Unterverzeichnisse bei. Bei pyide muss die URL direkt auf die
Pyodide-Distribution mit pyodide.js und pyodide-lock.json zeigen, zum Beispiel
https://assets.example.com/pyodide/.
Wenn eine eigene CDN-URL eine andere Origin als das Buch hat (andere Domain,
anderer Port oder anderes Protokoll), muss der Server für die Laufzeitdateien
Anfragen von dieser Origin erlauben, zum Beispiel mit
Access-Control-Allow-Origin: *. Lokal eingebundene Dateien und eigene URLs
auf derselben Origin wie das Buch benötigen keine zusätzlichen CORS-Header.
Wenn das Buch HTTPS verwendet, müssen auch seine CDN-URLs HTTPS verwenden.
hyperbook assets fetch überspringt Laufzeitumgebungen mit aktiviertem CDN.
Für hyperbook build --offline müssen diese nicht im Cache liegen. Zum Lesen
des Buchs ist weiterhin Zugriff auf das konfigurierte CDN nötig.
hyperbook assets fetch --all lädt unabhängig von der Elementkonfiguration
alle Laufzeitumgebungen herunter.
Siehe Hosting und Caching, um Downloads zwischen CI-Builds aufzubewahren und Cache-Header für das exportierte Buch festzulegen.