Änderungsprotokoll
Diese Seite verzeichnet jede Änderung an Zhabei: Ein Jahrhundert am Nordufer des Suzhou-Bachs.
Wozu eine solche Seite? Weil dieses Buch aus der Wiederbelebung eines aufgegebenen GitBook-Projekts entstanden ist: Entwürfe, Struktur und das gesamte Quellensystem wurden einmal von Grund auf ersetzt. Legt man die Änderungen offen dar, sieht der Leser, „was neu recherchiert und was berichtigt wurde“, und der Verfasser weiß, „was die vorige Fassung genau geändert hat“.
Wie die Versionsnummern zu lesen sind
Das Buch folgt dem dreiteiligen Schema Haupt.Neben.Korrektur:
| Stelle | Wann sie um eins steigt | Beispiel |
|---|---|---|
| Hauptversion (X.0.0) | Die Struktur des ganzen Buches ändert sich, oder die Plattform wird gewechselt | GitBook → HonKit |
| Nebenversion (x.Y.0) | Ein Modul oder ein ganzer Inhaltsblock kommt hinzu | Das Modul „Änderungsprotokoll“ |
| Korrektur (x.y.Z) | Eine Tatsache wird berichtigt, ein Fehler behoben, eine Formulierung überarbeitet | Ein toter Link wird repariert |
Legende der Änderungsarten
Die Werte in der Spalte „Art“ der Tabellen:
| Art | Bedeutung |
|---|---|
| Hinzugefügt | Eine neue Seite, ein neues Modul, eine neue Funktion |
| Überarbeitet | Berichtigung von Tatsachen, Zahlen oder Formulierungen auf einer bestehenden Seite |
| Behoben | Eine Fehlerbehebung (tote Links, Build-Fehler, Anzeigefehler und dergleichen) |
| Verbessert | Besserer Lesekomfort (Stil, Navigation, Vorschau, Build-Ablauf) |
| Umgebaut | Eine strukturelle Änderung (Inhalt, Projektkonfiguration, Quellensystem) |
Auf einen Blick
| Version | Datum | Art | Was sich änderte, in einer Zeile |
|---|---|---|---|
| v1.0 | 2023-11-03 | Initial | Das ursprüngliche GitBook-Projekt: nur Platzhalter, danach aufgegeben |
| v2.0.0 | 2026-10-09 | Umgebaut | Umzug auf HonKit 6; alle 45 Seiten von Grund auf neu geschrieben |
| v2.0.1 | 2026-10-09 | Behoben | 60 tote Verweise zwischen Verzeichnissen repariert |
| v2.0.2 | 2026-10-09 | Verbessert | Lokale Vorschau per Klick; schlankere Veröffentlichung |
| v2.1.0 | 2026-10-09 | Hinzugefügt | Das Modul „Änderungsprotokoll“ (diese Seite) |
| v2.2.0 | 2026-10-09 | Verbessert | Sieben Leseerweiterungen aktiviert (chinesische Suche, „Diese Seite bearbeiten“ und mehr) |
| v2.3.0 | 2026-10-09 | Behoben | Zwei Fehler behoben — doppeltes Laden und DOM-Anhäufungen beim Seitenwechsel; Farbkonzept neu gestaltet |
| v3.0.0 | 2026-10-09 | Umgebaut | Mehrsprachigkeit: Chinesisch nach zh/ verschoben; fünf neue Ausgaben (en/ja/ko/fr/de); Vorseiten in allen fünf fertig |
| v3.1.0 | 2026-10-09 | Verbessert | Die Sprachauswahl-Seite ist weg — die Seite öffnet direkt auf Chinesisch; oben auf jeder Seite eine Leiste mit sechs Sprachen |
| v3.1.1 | 2026-10-09 | Hinzugefügt | Der Autorenname „Zhou Ge (舟哥) · Nickzhuo“ ist jetzt verzeichnet — in den Metadaten aller sechs Sprachen, auf den Titelseiten, im „Über den Autor“ und im Glossar |
| v3.2.0 | 2026-10-10 | Hinzugefügt | Der Haupttext liegt nun in allen fünf Ausgaben vor (Englisch, Japanisch, Koreanisch, Französisch, Deutsch), je 43 Seiten; 276 Seiten in sechs Sprachen |
| v3.2.1 | 2026-10-10 | Überarbeitet | Stichprobenprüfung aller fünf Übersetzungen: vier Quellen-Etiketten vereinheitlicht, die Namen der Änderungsprotokoll-Seite im Französischen und Deutschen angeglichen, chinesische Schriftzeichen zur Unterscheidung der Namensvarianten Wang Shouhuas ergänzt |
| v3.2.2 | 2026-10-10 | Behoben | Die Seitensuche in den fünf nichtchinesischen Ausgaben war defekt: Sie luden den chinesischen Index, daher ergab jede nichtchinesische Suche 0 Treffer |
| v3.3.0 | 2026-10-12 | Neu | Das Chinesische zerfällt in zwei Ausgaben, eine vereinfachte und eine traditionelle, neben Englisch, Japanisch, Koreanisch, Französisch und Deutsch; die Sprachleiste oben wächst von sechs auf sieben Einträge, das Buch umfasst nun 323 Seiten in sieben Sprachen |
| v3.4.0 | 2026-10-12 | Neu | Online unter https://zhabei.org: Cover und Seite „Über dieses Buch“ jeder Ausgabe nennen die Adresse, alle 323 Seiten erhalten ein selbstreferenzielles canonical und hreflang-Querverweise zwischen den sieben Sprachen, dazu werden sitemap.xml und robots.txt erzeugt |
| v3.5.0 | 2026-10-12 | Verbessert | Kopfleiste und Fuß jeder Seite zeigen jetzt die Domain des Buches, zhabei.org, und führen zurück zum Cover der gerade gelesenen Sprache |
| v3.5.1 | 2026-10-12 | Überarbeitet | Der Eintrag „GitHub" oben in der Seitenleiste ist entfernt, nur die Domain zhabei.org bleibt; wer die Quellen sucht, kommt weiterhin über den Covertext und die Schaltfläche „Diese Seite bearbeiten" dorthin |
| v3.5.2 | 2026-10-12 | Verbessert | Die vier Teile und vier Anhänge in der Übersichtstabelle des Covers sind jetzt Links — ein Klick führt direkt dorthin |
| v3.5.3 | 2026-10-12 | Verbessert | Der Fuß jeder Seite ergänzt nach der Domain die Verfassersignatur „舟哥@2026" und die aktuelle Versionsnummer — so zeigt jede Seite auf einen Blick, welche Fassung man in der Hand hat |
| v3.6.0 | 2026-10-12 | Verbessert | Rund 17.700 interne Verweise führen jetzt geradewegs auf ihre kanonische Adresse; jede Seite erhält eine Teilen-Karte in sieben Sprachen; und ist der Browser nicht auf Chinesisch gestellt, erscheint ein Hinweis zum Wechseln |
Fassung für Fassung
v3.6.0 · 2026-10-12 · Direkte Verweise, Teilen-Karten und ein Sprachhinweis
| Typ | Änderung | Dateien |
|---|---|---|
| Verbessert | Rund 17.700 interne Verweise der Seite folgen nun der kanonischen Adresse. Jeder Verweis lautete zuvor xxx.html, während die kanonische Form einer Adresse im Netz „ohne Endung für eine einzelne Seite, mit Schrägstrich am Ende für ein Verzeichnis" ist (etwa /zh/part1/01-naming, /zh/) — jeder Klick lief also zuerst in eine Weiterleitung. Verweise und kanonische Adressen folgen jetzt derselben Regel, und ein Klick führt direkt ans Ziel; die Adressen der Suchergebnisse wurden ebenso geändert, sodass auch von dort kein Umweg mehr nötig ist |
scripts/inject-seo.mjs |
| Hinzugefügt | Jede Seite hat jetzt eine Teilen-Karte. Je eine Karte im Format 1200×630 pro Sprache, gezeichnet in der Papier-und-Tusche-Palette des Buches und versehen mit dem Titel und der Verfassersignatur in der jeweiligen Sprache. Wer eine beliebige Seite an einen Messenger oder ein Netzwerk schickt, sieht diese Karte — keinen nackten Verweis | neu: assets/og/*.png (sieben Dateien), scripts/gen-og-images.mjs |
| Hinzugefügt | Ist der Browser nicht auf Chinesisch gestellt, erscheint unten auf der Seite ein Hinweis. Er nennt die erkannte Sprache und bietet eine Schaltfläche, die zu jener Ausgabe wechselt. Die Seite öffnet weiterhin geradewegs in vereinfachtem Chinesisch; der Hinweis lässt sich schließen, und einmal geschlossen kommt er nicht wieder | scripts/inject-seo.mjs, styles/website.css |
| Hinweis | Der Hinweis hängt am Ende der Seite und nicht am Textkörper: Der Seitenwechsel innerhalb der Seite ersetzt den Inhaltsbehälter, ein darin platzierter Hinweis verschwände also beim ersten Umblättern. Er erscheint zudem nur, wenn die Sprache wirklich abweicht — ein chinesischer Browser beim Lesen des Chinesischen oder ein englischer beim Lesen des Englischen bekommt nichts Zusätzliches zu sehen. Die Schaltfläche führt zu der gerade gelesenen Seite in jener Sprache, nicht zurück auf das Cover | scripts/inject-seo.mjs |
| Verbessert | Neue lokale Vorschau npm run preview, die das Bauergebnis nach denselben Adressregeln wie in der Produktion ausliefert (ohne Endung, Schrägstrich am Ende, .html-Weiterleitungen): „läuft lokal" heißt damit ungefähr „läuft online". Das bestehende npm run serve bleibt zum Schreiben erhalten, folgt aber einer anderen Baukette, und seine Seiten tragen weder den Fuß noch die SEO-Angaben |
neu: scripts/preview-dist.mjs, package.json |
v3.5.3 · 2026-10-12 · Verfasser und Version im Fuß
| Typ | Änderung | Dateien |
|---|---|---|
| Verbessert | Das Kolophon am Ende jeder Seite ist von „Buchtitel + Domain" zu „Buchtitel + zhabei.org + 舟哥@2026 + Versionsnummer" gewachsen. Auf die Domain folgt die Verfassersignatur „舟哥@2026" in Fettschrift, danach die aktuelle Versionsnummer eine Stufe kleiner und in Grau. Diese Reihenfolge lässt das Kolophon für sich beantworten, wer das Buch geschrieben hat und um welche Fassung es sich handelt: der fette Name benennt den Verfasser auf einen Blick, die Versionsnummer bleibt klein genug, um die Aufmerksamkeit nicht zu beanspruchen, und ist doch jederzeit nachprüfbar | scripts/inject-seo.mjs, styles/website.css |
| Hinweis | Die Versionsnummer wird nirgends sonst vorgehalten: Beim Bauen wird sie unmittelbar aus der letzten Zeile der Tabelle „Die Fassungen auf einen Blick" auf der Seite „Versionsverlauf" der vereinfachten chinesischen Ausgabe gelesen (die Tabelle wird chronologisch fortgeschrieben, ihre letzte Zeile ist also die neueste Fassung). Warum nicht das Versionsfeld der Projektdatei? Dieses Feld wird seit v2.0.0 nicht mehr gepflegt, und es als Quelle zu nehmen, zeigte sogleich eine falsche Fassung. Ist die Nummer nicht lesbar, schlägt der Bau an Ort und Stelle fehl, statt den Fuß stillschweigend leer zu lassen | scripts/inject-seo.mjs |
| Hinweis | Die Verfassersignatur ist in allen sieben Sprachen dieselbe Zeichenfolge „舟哥@2026" — sie ist ein Personenname, keine zu übersetzende Oberflächenbeschriftung, so wie auf dem Cover jeder Ausgabe „舟哥(Nickzhuo)编著" steht; auch die Versionsnummer bleibt ein unübersetztes vX.Y.Z. Die Fußprüfung erhält zwei Zusicherungen: die Signatur lautet genau „舟哥@2026", und die Versionsnummer hat die Form vX.Y.Z und stimmt Wort für Wort mit der letzten Zeile der Übersichtstabelle der vereinfachten Ausgabe überein (eigenständig ausgewertet, sodass Prüfung und Einspeiseskript zwei getrennte Schlösser bilden) |
scripts/check-branding.py |
v3.5.2 · 2026-10-12 · Anklickbares Inhaltsverzeichnis auf dem Cover
| Typ | Änderung | Dateien |
|---|---|---|
| Verbessert | Die Übersichtstabelle auf dem Cover ist kein reiner Text mehr. Sowohl die Spalte der Teile als auch der fette Titel in der Inhaltsspalte sind zu Links geworden; jeder Klick führt auf die Einführungsseite des jeweiligen Teils. Die vier Einträge der Anhang-Zeile (Straßennamen-Codes / Zeittafel / Ortsnamen-Konkordanz / zitierte Werke) haben jeweils einen eigenen Link auf ihre Seite. Wer ein Inhaltsverzeichnis sieht, klickt gern darauf — man sollte ihn nicht erst in die Seitenleiste schicken | die sieben README.md |
| Hinweis | Alle Links sind relativ (etwa part1/README.md), genau wie die übrigen Links der Seite: Sie funktionieren auf https://zhabei.org und verlassen bei der lokalen Vorschau nicht localhost. Der Ankertext folgt dem Sprachgebrauch der jeweiligen Sprache, während die Linkziele Wort für Wort gleich sind — das prüft Abschnitt A von scripts/check-translations.py automatisch |
— |
v3.5.1 · 2026-10-12 · Nur die Domain bleibt in der Seitenleiste
| Typ | Änderung | Dateien |
|---|---|---|
| Überarbeitet | Der Eintrag „GitHub" oben in der Seitenleiste ist verschwunden. Dort standen zuvor zwei Links nebeneinander — die Domain und GitHub; geblieben ist allein die Domain. Die Seitenleiste soll dem Leser den Weg weisen, und das Quelltext-Repository dort unterzubringen hat mit dem Lesen eines Buches wenig zu tun; es legt sogar nahe, ein Umweg über GitHub sei nötig | book.json (links.sidebar) |
| Hinweis | Der Weg zu den Quellen ist nicht abgeschnitten: Der Satz „die Quelldateien liegen auf GitHub" bleibt auf der Cover-Seite stehen (er ist für Korrekturhinweise gedacht), und die Schaltfläche „Diese Seite bearbeiten" in der Kopfleiste verweist nach wie vor auf das Repository. Die Seitenleiste wiederholt es nur nicht mehr | — |
v3.5.0 · 2026-10-12 · Die Domain in Kopfleiste und Fuß
| Typ | Änderung | Dateien |
|---|---|---|
| Verbessert | Jede Seite zeigt jetzt die Domain des Buches, zhabei.org, rechts in der Kopfleiste und am Ende des Textes. Die obere ist ein kleines Abzeichen, links neben der Sprachleiste und durch einen feinen senkrechten Strich von ihr getrennt; die untere teilt sich eine Zeile mit dem Buchtitel und dient als Signatur der Seite. Der Leser sieht von jeder Seite aus auf einen Blick die offizielle Adresse des Buches und kann sie unverändert weitergeben |
Kopfleisten-Vorlage header.html, scripts/inject-seo.mjs, styles/website.css |
| Verbessert | Beide Links führen zurück auf das Cover der gerade gelesenen Sprache — von einer japanischen Seite nach /ja/, von einer französischen nach /fr/ — statt alle zur vereinfachten chinesischen Ausgabe zu schicken; es sind relative Links, ein Klick in der lokalen Vorschau verlässt localhost also nicht |
wie oben |
| Neu | Prüfung der Domain-Anzeige scripts/check-branding.py: prüft Seite für Seite, ob Abzeichen und Fußsignatur vorhanden sind, ob beide Links auf das Cover der aktuellen Sprache zeigen, ob der Buchtitel im Fuß mit dem Seitentitel übereinstimmt und ob die Stile in die Build-Ausgabe übernommen wurden. Falsifikationstest durchgeführt: ein auf eine andere Sprache umgebogener Link, ein gelöschter Fuß, ein falscher Buchtitel und ein zweites Abzeichen werden alle gemeldet |
neu scripts/check-branding.py |
| Hinweis | Der Fuß wird nach dem Build injiziert, statt eine Vorlage zu überschreiben: Das Theme hat überhaupt keine website/footer.html, und sie in einer Vorlage zu ergänzen hieße, page.html (128 Zeilen, einschließlich des Skripts zur Wiederherstellung der Seitenleiste) vollständig zu kopieren — jede Abweichung scheitert dort still. Zudem belegt die Buchsuche-Erweiterung bereits eine Überschreibung derselben page.html; eine weitere Schicht würde sie verdrängen und die Suche gleich mit zerstören. Die injizierte Fassung trägt außerdem Zähl-Assertions: Ändert sich die Seitenstruktur, scheitert der Build — statt den Fuß stillschweigend zu verlieren |
— |
v3.4.0 · 2026-10-12 · Online unter zhabei.org
| Typ | Änderung | Dateien |
|---|---|---|
| Neu | Das Buch ist jetzt unter https://zhabei.org online. Cover und Seite „Über dieses Buch“ aller sieben Ausgaben nennen die Online-Adresse; zum Lesen braucht man die Quelldateien nicht mehr | README.md, about.md aller sieben Ausgaben |
| Neu | SEO-Grundlage auf allen 323 Seiten: ein selbstreferenzielles canonical auf jeder Seite, hreflang-Querverweise zwischen den sieben Ausgaben (x-default zeigt auf die vereinfachte chinesische Ausgabe), Open-Graph-Tags und die bisher leere description, gefüllt aus dem ersten Absatz des Textes; dazu ein erzeugtes sitemap.xml (322 Einträge, jeder mit seinen sieben xhtml:link-Querverweisen) und eine robots.txt. Die Weiterleitungsseite im Wurzelverzeichnis trägt noindex und bleibt daher außerhalb der Sitemap |
neu: scripts/inject-seo.mjs, package.json |
| Neu | SEO-Prüfung scripts/check-seo.py: prüft, ob das canonical jeder Seite selbstreferenziell und eindeutig ist, ob der hreflang-Satz der sieben Sprachen geschlossen ist, ob die Beschreibungen gefüllt sind und ob die Sitemap alle Seiten abdeckt |
neu: scripts/check-seo.py |
| Hinweis | Struktur der Website: eine Domain, ein Pfad je Ausgabe (/zh/, /zh-hant/, /en/ …). Die Adressform ist „ohne Endung für einzelne Seiten, mit Schrägstrich am Ende für Titelseiten“ (z. B. /zh/part1/01-naming, /zh/) — das ist die vom Hoster vorgegebene kanonische Form, und sowohl das canonical als auch die Sitemap folgen ihr; ältere Adressen mit .html funktionieren weiter und leiten dorthin. Die Adresse der Website steht an einer einzigen Stelle, oben in scripts/inject-seo.mjs, und lässt sich über die Umgebungsvariable SITE_URL ersetzen |
— |
v3.3.0 · 2026-10-12 · Chinesisch in eine vereinfachte und eine traditionelle Ausgabe geteilt
| Typ | Änderung | Dateien |
|---|---|---|
| Neu | Ab dieser Version gibt es das Chinesische in zwei Ausgaben, einer vereinfachten und einer traditionellen, neben Englisch, Japanisch, Koreanisch, Französisch und Deutsch; die Sprachleiste im Kopf wächst von sechs auf sieben Einträge. Die vereinfachte Ausgabe bleibt die einzige Quelle (zh/); die traditionelle (zh-hant/) wird daraus abgeleitet statt abgeschrieben — zwei Schreibweisen eines Textes sollten nicht zwei Entwürfe haben, sonst müsste jede Änderung an der chinesischen Quelle von Hand nachgetragen werden |
zh-hant/ (neu: 47 Seiten + book.json), LANGS.md, Kopf-Template |
| Neu | Ein neues Ableitungsskript, scripts/gen-zh-hant.py: Ein Befehl baut zh-hant/ (einschließlich book.json und SUMMARY.md) aus zh/ neu auf, mit --check (nur vergleichen, Rückgabewert 1 bei Abweichung) und --report (fünf Prüfungen) |
scripts/gen-zh-hant.py |
| Hinweis | Die traditionelle Ausgabe verwendet die Standardformen Taiwans (OpenCC s2tw) und wandelt die geraden ASCII-Anführungszeichen im Text paarweise in 「」『』 um (die vereinfachte Ausgabe behält ", wie auf dem Festland üblich). Die Anführungszeichen-Umwandlung muss Codeabschnitte überspringen: Genau diese Seite enthält einen Codeabschnitt mit einem wörtlichen geraden ASCII-Anführungszeichen ("); die erste Fassung übersprang ihn nicht, das Wörtliche wurde als typografisches Anführungszeichen verbraucht, und die Parität aller Anführungszeichen der Datei kippte um — alle folgenden Paare kamen schließend-vor-öffnend heraus. Ein Fehler, die ganze Datei falsch, und der Build meldet nichts |
scripts/gen-zh-hant.py |
| Hinweis | Die Umwandlung ist weit mehr als ein Glyphentausch. Die Phrasentabelle von OpenCC macht aus dem Gattungswort 「里」 in 21 Lilong-Namen wie 三曾里 und 吉庆里 den Lokativ 「裡」, schreibt 工程总局干的第一件事 als 乾的, entstellt den Commercial-Press-Gründer 鲍咸昌 zu 鮑鹹昌 und verwechselt die Partikel 了 mit 瞭 (点明了原因 → 點明瞭原因). Jeder dieser Fälle kam in eine Überschreibungstabelle, die über Platzhalter im privaten Bereich angewendet wird — OpenCC lässt diese unberührt; „erst in Traditionell umwandeln, dann OpenCC laufen lassen" funktioniert also nicht, denn OpenCC bearbeitet seine eigene traditionelle Ausgabe erneut |
scripts/gen-zh-hant.py |
| Hinweis | Umfang der Umwandlung: nur Glyphen und Zeichensetzung, keine Wortschatzlokalisierung. Formen wie 報道 (Taiwan schreibt 報導), 鏈接 (Taiwan schreibt 連結), 視頻, 軟件 und 網絡 bleiben daher erhalten — hier schreibt ein Autor vom Festland über Shanghai, nach demselben Grundsatz, nach dem die englische, französische, deutsche, japanische und koreanische Ausgabe ihre ursprüngliche Bedeutung behalten |
docs/TRANSLATION-GLOSSARY.md |
| Erweitert | Die drei Selbstprüfskripte decken nun sieben Sprachen ab: Die Zusicherung zur Sprachleiste wechselt von „genau 6 Links" auf 7; die Kreuzmatrix der Sprachidentität für den Suchindex wächst auf 7×7 — die vereinfachte und die traditionelle Ausgabe nutzen identische Seiten-URLs als Schlüssel, also genau das Paar, das für diese Art der Vermischung am anfälligsten ist; und eine neue Prüfung K, „Erhaltung der traditionellen Ableitung" (gleiche Länge Seite für Seite, keine nackten Anführungszeichen, keine unaufgelösten Platzhalter), überspringt die zwei Prüfungen, die für das Traditionelle nicht gelten | scripts/check-langbar.py, scripts/check-search.py, scripts/check-translations.py |
| Überarbeitet | Die Sprachliste auf allen sieben Umschlägen und in der Sprachleiste ändert sich von „中文 · English · …" zu „简体中文 · 繁體中文 · English · …"; jeder Sprachname wird in seiner eigenen Schrift geschrieben, der traditionelle Umschlag liest also ebenfalls 简体中文 — so wie der englische Text 日本語 und 한국어 enthält | die sieben README.md, Kopf-Template |
| Behoben | Die Schaltfläche zum Bearbeiten stand in allen sieben Sprachausgaben auf Chinesisch — ihr Text stammte aus einer einzigen Zeichenkette in der Wurzelkonfiguration, die alle Sprach-Unterbücher gemeinsam nutzen, sodass auch Leser der deutschen Ausgabe die chinesische Beschriftung sahen. Sie wird nun je Sprache aufgelöst: 編輯本頁 / Edit this page / このページを編集 / 이 페이지 편집 / Modifier cette page / Diese Seite bearbeiten. Das Plugin unterstützte sprachabhängige Beschriftungen schon immer (es richtet sich nach dem Sprachnamen des Unterbuchs); die Konfiguration führte sie nur nicht vollständig auf. Wir haben außerdem alle sieben Bearbeitungs-URLs geprüft und bestätigt, dass jede auf ein im Repository tatsächlich vorhandenes Verzeichnis zeigt |
Wurzel-book.json |
v3.2.2 · 2026-10-10 · Seitensuche in allen fünf Sprachausgaben repariert
| Typ | Änderung | Dateien |
|---|---|---|
| Behoben | In der englischen, japanischen, koreanischen, französischen und deutschen Ausgabe funktionierte die Seitensuche praktisch nicht. Der Index wird vom Plugin search-plus erzeugt, das ihn in einer globalen Variable auf Modulebene hält; der mehrsprachige Build von HonKit erzeugt die sechs Bücher jedoch gleichzeitig in einem Prozess, und alle Sprachen verwenden exakt dieselben Seiten-URLs als Schlüssel. Jede Ausgabe überschrieb also die vorige — alle sechs Indexdateien waren am Ende byte-identisch und vollständig chinesisch. Leser einer nichtchinesischen Ausgabe erhielten für jede Eingabe 0 Treffer. Der Build meldete keinen Fehler, und alle Seiten sahen normal aus; nur eine tatsächliche Suche brachte es ans Licht |
local-plugins/gitbook-plugin-search-plus/index.js (neu; der Index wird nach Ausgabewurzel getrennt; die Frontend-Skripte und das Template sind bytegenau vom Original übernommen), package.json |
| Neu | Ein neues Selbstprüfskript für den Index, scripts/check-search.py: Es prüft je Sprache die Dokumentzahl, die Seitenabdeckung gegenüber dem Inhaltsverzeichnis und die Vollständigkeit der Felder und bildet eine Kreuzmatrix der Sprachidentität (jede Ausgabe erkennt nur ihren eigenen Umschlag-Untertitel) |
scripts/check-search.py |
| Hinweis | Vollständige Prüfung vor dem Start: Der Build erzeugt 6 Sprachen × 46 Seiten = 277 Seiten; 21.072 interne Links, 0 tote; die Sprachleiste ist auf allen 276 Inhaltsseiten korrekt; alle acht automatischen Übersetzungsprüfungen bestehen. Die Suche wurde zudem in einem echten Browser in drei Ausgaben getestet — Chinesisch „闸北" 46 Treffer, Englisch „Sihang Warehouse" 16, Französisch „ruisseau" 27 | — |
v3.2.1 · 2026-10-10 · Stichprobenprüfung der fünf Übersetzungen
Eine genaue Lektüre zusammen mit maschinellen Prüfungen (Links, Zahlen, Eigennamen, Einbruch fremder Sprachen, Längenverhältnisse und Überschriftenstruktur — acht Prüfungen insgesamt) hat drei Arten von Unstimmigkeit zutage gefördert und beseitigt.
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Überarbeitet | Zwei Anhangseiten der koreanischen Ausgabe bezeichneten die Quellen am Kapitelende als **인용과 출처**:, zwei Seiten der deutschen Ausgabe als **Quellen und Herkunft**: — beides statt der im Glossar festgelegten Formen **출처**: und **Quellen**:. Alle vier Seiten sind nun angeglichen |
ko/appendix/place-names.md, ko/appendix/road-names.md, de/appendix/place-names.md, de/appendix/road-names.md |
| Überarbeitet | In der französischen und der deutschen Ausgabe wich der Eintrag im Inhaltsverzeichnis vom Seitentitel des Änderungsprotokolls ab (französisch: Verzeichnis Journal des versions gegen Titel Journal des modifications; deutsch: Verzeichnis Versionsverlauf gegen Titel Änderungsprotokoll). Beide richten sich jetzt nach dem Seitentitel, wie in den übrigen vier Ausgaben von Anfang an. Korrigiert wurde die Quelle des Inhaltsverzeichnisses; die erzeugten Dateien wurden neu geschrieben |
scripts/toc.tsv, fr/SUMMARY.md, de/SUMMARY.md |
| Überarbeitet | Im Eintrag zu Wang Shouhua las sich die Zeile „ursprünglicher Name“ im Englischen und Französischen wie ein Dopplungsfehler, weil mehrere Namensvarianten dieselbe Umschrift teilen (紀元 / 寄元 → beide „Jiyuan“; 今亮 / 晋亮 / 金亮 → alle „Jinliang“). Englisch, Französisch und Deutsch geben die ursprünglichen Schriftzeichen nun in Klammern, wie es Japanisch und Koreanisch bereits taten | en/part4/05-wangshouhua.md, fr/part4/05-wangshouhua.md, de/part4/05-wangshouhua.md |
v3.2.0 · 2026-10-10 · Der Haupttext in allen fünf Sprachen übersetzt
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Hinzugefügt | Der Haupttext liegt nun in allen fünf Ausgaben vollständig vor — Englisch, Japanisch, Koreanisch, Französisch und Deutsch, je 43 Seiten (Erster Teil 10, Zweiter Teil 10, Dritter Teil 10, Vierter Teil 9, Anhänge 4). Mit den drei Titeleien jeder Ausgabe ergibt das 276 Seiten in sechs Sprachen. Es gibt keine Platzhalterseite mehr im ganzen Buch | alle .md unter en/, ja/, ko/, fr/, de/ |
| Hinzugefügt | Das Glossar erhält einen Abschnitt 7, „Häufige Eigennamen des Haupttextes“ (Allgemeine Gewerkschaft Shanghais, Bunye Cheng, die Kommunistische Partei Chinas, die Kuomintang, Schlacht um Shanghai (1937), 19. Routenarmee, Jiang Jieshi, Mao Zedong, Qingyun-Straße, Huiwen-Straße, Pengyue-Bach, Guangzhao Shanzhuang, Zoumating, Mittlerer Ring, „Bezirk der Nacktärmel“, Whampoa — 25 Einträge) und einen Abschnitt 8, „Zahlen und Maßeinheiten“ (wie 万元 / 亿元 / Mu / Li / km² in jeder der fünf Sprachen zu schreiben sind) | docs/TRANSLATION-GLOSSARY.md |
| Überarbeitet | Im Deutschen wird „19. Routenarmee“ vereinheitlicht (der Erste Teil hatte „Route-Armee“, gegen das Glossar — 9 Vorkommen) | de/README.md, de/part1/05-1927-1932.md, de/appendix/ |
| Überarbeitet | Auf der englischen Titelseite wird „What this book contains“ wieder zu einer dreispaltigen Tabelle wie im Chinesischen, und der nun überflüssige Satz „This translation is produced in stages“ entfällt (der englische Text ist vollständig) | en/README.md |
| Hinweis | In den fünf Übersetzungen folgen Namen und Register dem Glossar: Japanisch verwendet traditionelle Kanji mit Katakana-Lesungen, Koreanisch transkribiert nach dem Mandarin, Englisch, Französisch und Deutsch verwenden Pinyin | — |
v3.1.1 · 2026-10-09 · Die Autorensignatur (Zhou Ge / Nickzhuo)
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Hinzugefügt | Der Autorenname „Zhou Ge (舟哥) · Nickzhuo“ ist nun im ganzen Buch verzeichnet, an vier Stellen einheitlich: die author-Metadaten jeder Fassung, die Signatur auf der Titelseite, die Signatur am Ende des Vorworts und der Abschnitt „Über den Autor“. Die Schreibweise folgt jeder Sprache: Chinesisch „舟哥(Nickzhuo)“; Englisch, Französisch, Deutsch „Zhou Ge (舟哥) · Nickzhuo“; Japanisch „舟哥(Nickzhuo)“; Koreanisch „저우거(舟哥) · Nickzhuo“. Das lateinische Nickzhuo bleibt stets unverändert, für die Suche im Buch und einheitliche Metadaten |
book.json, */book.json, */README.md, */about.md |
| Hinzugefügt | Die Seite „Über dieses Buch“ jeder Sprache erhält einen Abschnitt „Über den Autor“; darin steht, dass Korrekturen, Ergänzungen und Diskussion über das GitHub-Repository laufen | */about.md |
| Hinzugefügt | Das Übersetzungsglossar erhält einen Eintrag „Der Autor dieses Buches“, der die Signatur in allen sechs Sprachen festlegt und verlangt, dass sie mit den Metadaten Wort für Wort übereinstimmt | docs/TRANSLATION-GLOSSARY.md |
| Überarbeitet | Im Wurzel-book.json wird der Autor von „舟哥“ zu „舟哥(Nickzhuo)“ ergänzt |
book.json |
v3.1.0 · 2026-10-09 · Keine Sprachauswahl-Seite mehr; Sprachleiste oben
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Verbessert | Die Seite öffnet jetzt direkt auf Chinesisch. Die Wurzel-index.html ist keine „Sprache wählen“-Landeseite mehr, sondern eine Sofort-Weiterleitung: Der meta refresh steht im <head>, der Browser wechselt also, sobald er den Kopf gelesen hat, und der Body kommt gar nicht mehr zum Zeichnen — kein Flackern. Darüber liegt ein location.replace(), das keinen Verlaufseintrag schreibt; wer „Zurück“ drückt, landet also nicht wieder hier |
_layouts/website/languages.html |
| Hinzugefügt | Eine Leiste mit sechs Sprachen rechts in der oberen Leiste jeder Seite (中文 · English · 日本語 · 한국어 · Français · Deutsch) — kein Aufklappmenü, alle sechs flach nebeneinander, die aktuelle Sprache in einer zinnoberroten Pille hervorgehoben. Die Verweise werden automatisch als „diese Seite → dieselbe Seite in einer anderen Sprache“ berechnet; das Titelblatt README.md wird korrekt auf index.html abgebildet |
local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html, styles/website.css |
| Verbessert | Die obere Leiste wird ein Flex-Layout: die Werkzeugknöpfe (Inhaltsverzeichnis ein-/ausblenden, diese Seite bearbeiten, Schrifteinstellungen) links, die Sprachleiste rechts. Auf schmalen Bildschirmen (≤900 px) bricht die Leiste automatisch in eine zweite, mittige Zeile um; selbst bei 320 px läuft sie weder über noch verdeckt sie den Text | styles/website.css |
| Behoben | Die Vorlage der Sprachleiste muss im lokalen Plugin liegen, nicht im _layouts/ des Projektstamms: Im mehrsprachigen Modus ist jede Sprache ein eigenes Buch, dessen Inhaltswurzel zh/, en/ … ist — nicht der Projektstamm. Legt man sie in den Stamm, scheitert sie stumm (der Build meldet keinen Fehler, aber auf der Seite gibt es schlicht keine Sprachleiste). Der Punkt ist in der Vorlage und in .bookignore vermerkt |
local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html |
| Behoben | Vorlagen-Kommentare müssen ` geschrieben werden: IntemplateEngine.toNunjucks()ändert HonKit die Kommentar-Begrenzer von nunjucks auf drei Doppelkreuze. In der üblichen Schreibweise ist ein Kommentar **kein Kommentar** — die darin enthaltenen Block-Tags werden wirklich ausgewertet, und der Build bricht mitparseBlock: expected endblock, got end of file` ab; ohne Block-Tags erscheint der ganze Kommentartext auf der Seite |
_layouts/website/languages.html, local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html |
| Überarbeitet | In den Titelblättern aller Sprachen verweist der Satz „andere Sprachen: siehe die Sprachauswahl“ jetzt auf die Sprachleiste in der oberen Leiste | */README.md |
v3.0.0 · 2026-10-09 · Mehrsprachige Ausgabe (Englisch / Japanisch / Koreanisch / Französisch / Deutsch)
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Umgebaut | Das Buch wird ein mehrsprachiges HonKit-Projekt: eine LANGS.md kommt hinzu, der gesamte chinesische Inhalt zieht nach zh/, und jede Sprache bildet nun ihr eigenes Buch (mit eigener book.json und SUMMARY.md). Die Wurzel-Einstellung language wird geleert, die Wurzelkonfiguration gilt für alle Ausgaben gemeinsam |
LANGS.md, book.json, zh/ |
| Hinzugefügt | Fünf neue Ausgaben — Englisch, Japanisch, Koreanisch, Französisch, Deutsch — mit allen 46 Inhaltsangaben in der jeweiligen Sprache | en/, ja/, ko/, fr/, de/ |
| Hinzugefügt | Ein Übersetzungsglossar: allgemeine Umschreibungsregeln je Sprache sowie Konkordanzen der Ortsnamen, Institutionen, Ereignisse, Personen und Begriffe, als einzige Autorität für die Schreibung jedes Namens. Japanisch verwendet Kanji mit der damals in Shanghai tatsächlich üblichen Lesung (閘北 = ザホク; 呉昌碩 = goshōseki); Koreanisch folgt der Regel des nationalen Koreanischen Sprachinstituts von 1986 und überträgt nach dem Mandarin (闸北 = 자베이) | docs/TRANSLATION-GLOSSARY.md |
| Hinzugefügt | Vorseiten in allen fünf Sprachen fertig: Titelseite, Über dieses Buch, Änderungsprotokoll | */README.md, */about.md, */changelog.md |
| Hinzugefügt | Platzhalterseiten für unübersetzte Kapitel (damit die Seitenleiste keine toten Verweise hat) und ein Prüfskript für alle internen Verweise der Website | scripts/make-stubs.py, scripts/check-links.py |
| Behoben | Die Stile erreichten die Sprachbücher nicht: Die Wurzeleinstellung theme-default.styles wirkt innerhalb eines Sprachunterbuchs nie (der fileExists(style)-Test des Theme-Templates schlägt in diesem Gültigkeitsbereich fehl, und ein Umweg über einen ../-Pfad löst FileOutOfScopeError aus). Ersetzt durch ein lokales Plugin, honkit-plugin-zhabei-theme, das das Stylesheet als Buchressource einbindet; in allen sechs Sprachen wirksam |
local-plugins/, scripts/sync-styles.mjs, package.json |
| Verbessert | Die Sprachauswahlseite nutzt ein eigenes Template (ersetzt die fest verdrahtete englische Überschrift von HonKit) mit der Palette „Papier und Tusche“; das eingebaute zweispaltige Float-Layout wird durch ein CSS-Grid ersetzt — denn das Theme gibt .languages ein ::before/::after { display: table }, und in einem Grid-Container belegen diese Pseudoelemente je eine Zelle, was die sechs Einträge durcheinanderbringt |
_layouts/website/languages.html, styles/website.css |
| Hinweis | Die Übersetzung des Haupttextes erfolgt stufenweise; unübersetzte Kapitel zeigen bis zu ihrer Ersetzung eine Platzhalterseite | — |
v2.3.0 · 2026-10-09 · Fehler behoben + Farbkonzept neu gestaltet
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Behoben | „Zwei Schriftauswahlmenüs oben“: highlight, fontsettings und theme-default sind Standarderweiterungen von HonKit, wurden aber in book.json erneut deklariert und dadurch zweimal geladen (es wurden zwei eingebundene fontsettings/website.css gefunden) |
book.json |
| Behoben | splitter entfernt: Bei jedem Seitenwechsel hängte es einen absolut positionierten Balken width:5px; height:100% an und räumte ihn nie wieder auf (nach acht Wechseln in Folge war .divider-content-summary von 1 auf 9 gewachsen). Das war die Ursache des weißen Randes rechts |
book.json, package.json |
| Behoben | back-to-top-button entfernt: Es hängte beim Seitenwechsel ebenfalls bedingungslos an, und .back-to-top wuchs ebenso von 1 auf 9; das Paket war zudem von npm als nicht mehr gepflegt gekennzeichnet |
book.json, package.json |
| Verbessert | Farbkonzept als „Papier und Tusche · hell“ neu gestaltet: Das eingebaute color-theme-1 (Pergament) strich die Seitenleiste fast schwarz #111 und den Text cremefarben und geriet mit dem eigenen Stylesheet in Konflikt. Nun einheitlich: heller Grund, dunkle Schrift, Zinnober-Akzent #9c3d2e |
styles/website.css (Palette in :root oben gebündelt) |
| Verbessert | Textschrift nun standardmäßig Serif, Schriftgröße 2 | book.json |
| Überarbeitet | Ungenutzte Abhängigkeit gitbook-plugin-toc entfernt |
package.json |
| Überarbeitet | Reste entfernter Erweiterungen in _book/ beseitigt |
_book/ (Build-Ausgabe, nicht versioniert) |
v2.2.0 · 2026-10-09 · Leseerweiterungen aktiviert
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Verbessert | Bessere chinesische Suche: search-plus ersetzt die eingebauten lunr/search, mit chinesischer Worttrennung und hervorgehobenen Treffern |
book.json |
| Verbessert | „Diese Seite bearbeiten“: ein direkter Verweis oben auf jeder Seite zur zugehörigen Quelldatei im GitHub-Repository, damit Leser an Ort und Stelle korrigieren können | book.json |
| Verbessert | Überschriftenanker: jede Unterüberschrift erhält einen eigenen kopierbaren Link (alle 46 Seiten) | book.json |
| Verbessert | Einklappbare Kapitel in der Seitenleiste: ein Klick auf einen Kapiteltitel faltet die Untereinträge ein oder aus | book.json |
| Verbessert | Ein schwebender „Nach oben“-Knopf (in v2.3.0 wieder entfernt) | book.json |
| Verbessert | Eine in der Breite ziehbare Seitenleiste (in v2.3.0 wieder entfernt) | book.json |
| Verbessert | Codeblöcke mit einem Klick kopieren | book.json |
| Verbessert | Neue Erweiterungsabhängigkeiten | package.json, package-lock.json |
v2.1.0 · 2026-10-09 · Neues Modul
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Hinzugefügt | Neues Modul „Änderungsprotokoll“, das jede Änderung Zeile für Zeile in Tabellen festhält | changelog.md (diese Seite) |
| Umgebaut | Eintrag „Änderungsprotokoll“ ins Inhaltsverzeichnis aufgenommen | SUMMARY.md |
v2.0.2 · 2026-10-09 · Bessere lokale Vorschau
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Hinzugefügt | Vorschau-Starter per Klick (Doppelklick startet den Server und öffnet den Browser) | preview.bat |
| Hinzugefügt | HonKit-Ausschlussliste, die Entwicklungsdateien aus der Veröffentlichung heraushält | .bookignore |
| Verbessert | Ein Abschnitt „Lokal lesen (wichtig)“ auf der Titelseite, der erklärt, warum file:// nicht funktioniert |
README.md |
| Behoben | Festgestellt und dokumentiert: Eine HonKit-Seite navigiert SPA-artig; unter file:// wird sie von CORS blockiert und muss über HTTP ausgeliefert werden |
— |
v2.0.1 · 2026-10-09 · Tote Verweise repariert
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Behoben | 60 interne Verweise zwischen Verzeichnissen berichtigt (über 34 Dateien); die Ursache war, dass Verweise relativ zur Buchwurzel statt zur aktuellen Datei geschrieben worden waren | mehrere .md unter part1/–part4/, appendix/ |
| Verbessert | Vollständige Selbstprüfung der Verweise eingerichtet: 45 Seiten, 2.065 interne Verweise, 0 tot | Prüfskript (temporär) |
v2.0.0 · 2026-10-09 · Plattformwechsel und Neuschreibung
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Umgebaut | Build-System von GitBook auf HonKit 6 umgestellt (nahezu direkte Kompatibilität bei SUMMARY.md / book.json) |
package.json, book.json |
| Hinzugefügt | Alle 45 Seiten von Grund auf neu geschrieben: Titelseite, Vorwort, vier Teile und vier Anhänge | 45 .md-Dateien |
| Hinzugefügt | Erster Teil · Chronik von Zhabei (9 Kapitel, von der Namensgebung bis zur Zusammenlegung 2015) | part1/ |
| Hinzugefügt | Zweiter Teil · Überblick über die Stadtteile Zhabeis (8 Stadtteile + Großgemeinde Pengpu) | part2/ |
| Hinzugefügt | Dritter Teil · Sehenswürdigkeiten Zhabeis (9 Beiträge) | part3/ |
| Hinzugefügt | Vierter Teil · Gestalten der Zhabeier Geschichte (8 Beiträge) | part4/ |
| Hinzugefügt | Anhänge: Straßennamen-Codes, Zeittafel, Ortsnamen einst und jetzt, zitierte Werke | appendix/ |
| Hinzugefügt | Ein dreistufiges Quellensystem (A Chroniken/Amtsblätter/Denkmalverzeichnisse, B maßgebliche Medien, C Enzyklopädien und Reiseberichte), mit einem Abschnitt „Quellen“ am Ende jedes Kapitels | alle Kapitel |
| Verbessert | Ein eigenes „Archivpapier“-Stylesheet (Serif-Text, braune Überschriften, gesetzte Tabellen) | styles/website.css |
| Verbessert | Automatischer Bereitstellungs-Workflow für GitHub Pages | .github/workflows/deploy.yml |
| Verbessert | Zeilenenden und Kodierung normalisiert, damit Windows-Entwicklung und Linux-Build übereinstimmen | .gitattributes, .gitignore |
| Überarbeitet | Platzhalterdatei gelöscht | NONONO (gelöscht) |
v1.0 · 2023-11-03 · Initial (aufgegeben)
| Art | Änderung | Betroffene Dateien |
|---|---|---|
| Hinzugefügt | Projektgerüst mit dem GitBook-Online-Editor angelegt | README.md, SUMMARY.md |
| Hinzugefügt | Eine Platzhalterdatei | NONONO |
| Hinweis | Alle drei Commits wurden von GitBook automatisch erzeugt (GITBOOK-3 / GITBOOK-4 / Create NONONO) und enthalten keinen echten Inhalt. Danach wurde das Projekt aufgegeben |
— |
Regeln für die Pflege dieser Seite
Damit Einträge auf Dauer ergänzt werden können, gelten drei Regeln:
- Eine Änderung, ein Eintrag: Nach einer Runde von Bearbeitungen zuerst eine Zeile unter „Auf einen Blick“, dann einen Abschnitt unter „Fassung für Fassung“ ergänzen;
- Jede Zeile muss für sich verständlich sein: sagen, was sich wirklich geändert hat; keine Floskeln wie „optimiert“ oder „aktualisiert“;
- Die betroffenen Dateien nennen: damit jede Änderung nachverfolgt und rückgängig gemacht werden kann.
Feinkörnigere, technische Commit-Nachrichten bleiben in der Git-Historie; diese Seite hält nur fest, was für den Leser zählt. Beides ergänzt sich.