Journal des modifications
Cette page consigne chacune des modifications apportées à Zhabei : un siècle sur la rive nord du ruisseau de Suzhou.
Pourquoi tenir une telle page ? Parce que ce livre est né de la reprise d'un projet GitBook abandonné : les brouillons, la structure et tout le système de sourçage ont été refaits. En exposant les changements au grand jour, le lecteur voit « ce qui a été nouvellement documenté et ce qui a été corrigé », et l'auteur sait « ce que la version précédente a exactement changé ».
Comment lire les numéros de version
Le livre suit un schéma en trois nombres, majeure.mineure.corrective :
| Position | Quand elle augmente de un | Exemple |
|---|---|---|
| Majeure (X.0.0) | La structure du livre entier change, ou la plateforme est migrée | GitBook → HonKit |
| Mineure (x.Y.0) | Un module ou un bloc de contenu est ajouté | Le module « Journal des modifications » |
| Corrective (x.y.Z) | Un fait est corrigé, un bug réparé, une formulation revue | La réparation d'un lien mort |
Légende des types de changement
Les valeurs qui apparaissent dans la colonne « Type » des tableaux :
| Type | Signification |
|---|---|
| Ajout | Une nouvelle page, un nouveau module, une nouvelle fonction |
| Révision | La correction de faits, de chiffres ou de formulations sur une page existante |
| Correction | Un correctif (liens morts, erreurs de compilation, défauts d'affichage, etc.) |
| Amélioration | Un meilleur confort de lecture (style, navigation, aperçu, chaîne de compilation) |
| Refonte | Un remaniement structurel (sommaire, configuration du projet, système de sources) |
Vue d'ensemble
| Version | Date | Type | Ce qui a changé, en une ligne |
|---|---|---|---|
| v1.0 | 2023-11-03 | Initiale | Le projet GitBook d'origine : fichiers provisoires, puis abandon |
| v2.0.0 | 2026-10-09 | Refonte | Migration vers HonKit 6 ; les 45 pages réécrites de zéro |
| v2.0.1 | 2026-10-09 | Correction | Réparation de 60 liens internes morts entre répertoires |
| v2.0.2 | 2026-10-09 | Amélioration | Aperçu local en un clic ; publication allégée |
| v2.1.0 | 2026-10-09 | Ajout | Le module « Journal des modifications » (cette page) |
| v2.2.0 | 2026-10-09 | Amélioration | Sept extensions de confort activées (recherche en chinois, « modifier cette page », etc.) |
| v2.3.0 | 2026-10-09 | Correction | Deux défauts corrigés — double chargement et accumulation d'éléments DOM au changement de page ; palette repensée |
| v3.0.0 | 2026-10-09 | Refonte | Édition multilingue : le chinois passe dans zh/ ; cinq nouvelles éditions (en/ja/ko/fr/de) ; les pages liminaires sont achevées dans les cinq |
| v3.1.0 | 2026-10-09 | Amélioration | La page d'accueil « choisissez une langue » disparaît : le site s'ouvre directement en chinois ; une barre de six langues apparaît en haut de chaque page |
| v3.1.1 | 2026-10-09 | Ajout | La signature de l'auteur — Zhou Ge (舟哥) · Nickzhuo — est ajoutée : métadonnées des six langues, couvertures, « à propos de l'auteur » et glossaire |
| v3.2.0 | 2026-10-10 | Ajout | Le corps du texte est traduit dans les cinq éditions (anglais, japonais, coréen, français, allemand), 43 pages chacune ; 276 pages en six langues |
| v3.2.1 | 2026-10-10 | Révision | Contrôle par échantillonnage des cinq traductions : quatre étiquettes de sources remises au norme, les noms de la page « journal des modifications » en français et en allemand alignés, et des caractères chinois ajoutés pour lever l'ambiguïté des alias de Wang Shouhua |
| v3.2.2 | 2026-10-10 | Correction | Recherche interne réparée dans les cinq éditions non chinoises : elles chargeaient l'index chinois, si bien que toute requête non chinoise ne renvoyait aucun résultat |
| v3.3.0 | 2026-10-12 | Ajout | Le chinois se scinde en deux éditions, simplifiée et traditionnelle, aux côtés de l'anglais, du japonais, du coréen, du français et de l'allemand ; la barre de langues passe de six à sept entrées, et l'ouvrage compte désormais 323 pages en sept langues |
| v3.4.0 | 2026-10-12 | Ajout | En ligne sur https://zhabei.org : la couverture et la page « À propos de ce livre » de chaque édition indiquent l'adresse de lecture, les 323 pages reçoivent un canonical auto-référent et des renvois hreflang entre les sept langues, et un sitemap.xml ainsi qu'un robots.txt sont générés |
| v3.5.0 | 2026-10-12 | Amélioration | Le bandeau supérieur et le pied de chaque page affichent désormais le domaine de l'ouvrage, zhabei.org, et renvoient à la couverture de la langue en cours de lecture |
| v3.5.1 | 2026-10-12 | Révision | L'entrée « GitHub » en haut de la barre latérale a été retirée : seul le domaine zhabei.org demeure ; qui cherche les sources passe toujours par le texte de couverture et le bouton « Modifier cette page » |
| v3.5.2 | 2026-10-12 | Amélioration | Les quatre parties et les quatre annexes du tableau de couverture sont désormais des liens : un clic y mène directement |
| v3.5.3 | 2026-10-12 | Amélioration | Le pied de page ajoute après le domaine la signature de l'auteur, « 舟哥@2026 », et le numéro de version courant : chaque page indique d'un coup d'œil l'édition qu'on a sous les yeux |
| v3.6.0 | 2026-10-12 | Amélioration | Quelque 17 700 liens internes mènent désormais droit à leur adresse canonique ; chaque page gagne une carte de partage en sept langues ; et une invitation à changer de langue apparaît lorsque le navigateur n'est pas en chinois |
Détail par version
v3.6.0 · 2026-10-12 · Liens directs, cartes de partage et invitation à changer de langue
| Type | Modification | Fichiers |
|---|---|---|
| Amélioration | Quelque 17 700 liens internes du site adoptent désormais l'adresse canonique. Chaque lien s'écrivait auparavant xxx.html, alors que la forme canonique d'une adresse en ligne est « sans extension pour une page, barre oblique finale pour un dossier » (par exemple /zh/part1/01-naming, /zh/), si bien que chaque clic passait d'abord par une redirection. Liens et adresses canoniques suivent maintenant la même règle et un clic aboutit directement ; les adresses des résultats de recherche ont été modifiées de la même façon, pour qu'on n'y fasse plus de détour non plus |
scripts/inject-seo.mjs |
| Ajout | Chaque page dispose désormais d'une carte de partage. Une carte de 1200×630 par langue, dessinée dans la palette papier-et-encre de l'ouvrage et portant le titre ainsi que la signature de l'auteur dans cette langue. Partagez n'importe quelle page vers une messagerie ou un réseau social : c'est cette carte qui s'affiche, non un lien nu | nouveaux assets/og/*.png (sept fichiers), scripts/gen-og-images.mjs |
| Ajout | Une invitation apparaît en bas de page lorsque le navigateur n'est pas réglé sur le chinois. Elle indique la langue détectée et propose un bouton qui bascule vers cette édition. Le site s'ouvre toujours directement en chinois simplifié ; l'invitation peut être fermée et, une fois fermée, ne revient pas | scripts/inject-seo.mjs, styles/website.css |
| Note | L'invitation est attachée à la fin de la page et non au corps du texte : la navigation interne remplace le conteneur de contenu, si bien qu'une invitation placée dedans disparaîtrait dès le premier changement de page. Elle n'apparaît d'ailleurs que si la langue diffère réellement — un navigateur chinois lisant le chinois, ou un navigateur anglais lisant l'anglais, ne voit rien de plus. Le bouton mène à la page en cours dans cette langue, et non à la couverture | scripts/inject-seo.mjs |
| Amélioration | Nouvel aperçu local npm run preview, qui sert le résultat de construction selon les mêmes règles d'adresse qu'en production (sans extension, barres obliques finales, redirections .html) : « ça marche en local » signifie donc à peu près « ça marche en ligne ». L'ancien npm run serve reste utile pour rédiger, mais il suit une autre chaîne de construction et ses pages ne portent ni le pied de page ni les balises SEO |
nouveaux scripts/preview-dist.mjs, package.json |
v3.5.3 · 2026-10-12 · Auteur et version en pied de page
| Type | Modification | Fichiers |
|---|---|---|
| Amélioration | Le colophon qui termine chaque page est passé de « titre + domaine » à « titre + zhabei.org + 舟哥@2026 + numéro de version ». Après le domaine vient la signature de l'auteur, « 舟哥@2026 », en gras, puis le numéro de version courant, d'un corps plus petit et en gris. Cet ordre permet au colophon de répondre à lui seul à la question « qui a écrit ceci, et en quelle édition » : le nom en gras identifie l'auteur d'un regard, tandis que le numéro de version reste assez discret pour ne pas disputer l'attention tout en restant vérifiable à tout moment | scripts/inject-seo.mjs, styles/website.css |
| Note | Le numéro de version n'est stocké nulle part ailleurs : au moment de la construction, il est lu directement dans la dernière ligne du tableau « Les versions en un coup d'œil » de la page « Journal des versions » en chinois simplifié (ce tableau s'allonge dans l'ordre chronologique, sa dernière ligne est donc la version la plus récente). Pourquoi pas le champ de version du fichier de projet ? Ce champ n'est plus tenu à jour depuis la v2.0.0, et s'en servir afficherait aussitôt une version erronée. Si le numéro est illisible, la construction échoue sur-le-champ, plutôt que de laisser le pied de page silencieusement vide | scripts/inject-seo.mjs |
| Note | La signature de l'auteur est la même chaîne « 舟哥@2026 » dans les sept langues : c'est un nom de personne, non un libellé d'interface, tout comme la couverture de chaque édition porte « 舟哥(Nickzhuo)编著 » ; le numéro de version reste lui aussi un vX.Y.Z non traduit. Le contrôle du pied de page gagne deux assertions : la signature vaut exactement « 舟哥@2026 », et le numéro ressemble à vX.Y.Z et correspond mot pour mot à la dernière ligne du tableau récapitulatif en chinois simplifié (analyse indépendante, si bien que le contrôle et le script d'injection forment deux serrures distinctes) |
scripts/check-branding.py |
v3.5.2 · 2026-10-12 · Un sommaire cliquable sur la couverture
| Type | Modification | Fichiers |
|---|---|---|
| Amélioration | Le tableau de couverture n'est plus du simple texte. La colonne des parties comme le titre en gras de la colonne du contenu sont devenus des liens : un clic sur l'un ou l'autre mène à la page d'introduction de la partie concernée ; les quatre entrées de la ligne des annexes (codes des noms de rues / chronologie / concordance des toponymes / sources citées) ont chacune leur propre lien vers la page correspondante. Un lecteur clique volontiers sur un sommaire : inutile de le renvoyer d'abord à la barre latérale | les sept README.md |
| Note | Tous les liens sont relatifs (par exemple part1/README.md), comme les autres liens de la page : ils fonctionnent sur https://zhabei.org et ne font pas sortir de localhost en aperçu local. Le texte d'ancrage suit les usages de chaque langue, tandis que les cibles des liens sont identiques mot pour mot, ce que la section A de scripts/check-translations.py vérifie automatiquement |
— |
v3.5.1 · 2026-10-12 · Seul le domaine demeure dans la barre latérale
| Type | Modification | Fichiers |
|---|---|---|
| Révision | L'entrée « GitHub » en haut de la barre latérale a disparu. Cette colonne portait auparavant deux liens côte à côte — le domaine et GitHub ; il n'en reste qu'un, le domaine. La barre latérale sert à orienter le lecteur, et y loger le dépôt des sources n'a guère à voir avec la lecture d'un livre ; cela laisse même croire qu'un détour par GitHub serait nécessaire | book.json (links.sidebar) |
| Note | L'accès aux sources n'est pas coupé : la phrase « les fichiers sources sont sur GitHub » reste sur la page de couverture (elle y est pour les errata), et le bouton « Modifier cette page » du bandeau renvoie toujours au dépôt. La barre latérale cesse simplement de le répéter | — |
v3.5.0 · 2026-10-12 · Le domaine dans le bandeau et en pied de page
| Type | Modification | Fichiers |
|---|---|---|
| Amélioration | Chaque page affiche désormais le domaine de l'ouvrage, zhabei.org, à droite du bandeau supérieur et à la fin du texte. Celui du bandeau est un petit badge, placé à gauche de la barre de langues et séparé d'elle par un fin filet vertical ; celui du pied partage une ligne avec le titre de l'ouvrage et tient lieu de signature de la page. Le lecteur voit d'un coup d'œil, depuis n'importe quelle page, l'adresse officielle du livre, et peut la transmettre telle quelle |
modèle du bandeau header.html, scripts/inject-seo.mjs, styles/website.css |
| Amélioration | Les deux liens ramènent à la couverture de la langue en cours de lecture — d'une page japonaise vers /ja/, d'une page française vers /fr/ — plutôt que de renvoyer tout le monde à l'édition en chinois simplifié ; ce sont des liens relatifs, donc y cliquer pendant un aperçu local ne fait pas sortir de localhost |
idem |
| Ajout | Contrôle de l'affichage du domaine scripts/check-branding.py : vérifie page par page que le badge du bandeau et la signature du pied sont bien présents, que les deux liens pointent vers la couverture de la langue courante, que le titre de l'ouvrage en pied correspond au titre de la page, et que les styles ont été synchronisés dans les fichiers compilés. Test de réfutation effectué : un lien détourné vers une autre langue, un pied supprimé, un titre d'ouvrage erroné et un second badge ajouté sont tous signalés |
nouveau scripts/check-branding.py |
| Note | Le pied de page est injecté après la compilation plutôt qu'ajouté en surchargeant un modèle : le thème ne comporte aucun website/footer.html, et l'ajouter dans un modèle obligerait à recopier intégralement page.html (128 lignes, script de restauration de la barre latérale compris), où la moindre dérive échoue en silence ; de plus l'extension de recherche interne occupe déjà une surcharge de ce même page.html, et superposer une couche de plus la délogerait, cassant la recherche avec elle. La version injectée porte en outre des assertions de comptage : si la structure des pages change, elle fait échouer la compilation au lieu de perdre le pied de page en silence |
— |
v3.4.0 · 2026-10-12 · En ligne sur zhabei.org
| Type | Modification | Fichiers |
|---|---|---|
| Ajout | Le livre est désormais en ligne à l'adresse https://zhabei.org. La couverture et la page « À propos de ce livre » des sept éditions indiquent l'adresse de lecture en ligne : plus besoin des fichiers sources pour commencer à lire | README.md et about.md des sept éditions |
| Ajout | Bases SEO sur les 323 pages : un canonical auto-référent sur chaque page, des renvois hreflang entre les sept éditions (x-default pointant vers l'édition en chinois simplifié), des balises Open Graph, et la description jusque-là vide remplie à partir du premier paragraphe du texte ; plus un sitemap.xml généré (322 entrées, chacune accompagnée de ses sept renvois xhtml:link) et un robots.txt. La page de redirection racine est en noindex et reste donc hors du sitemap |
nouveau scripts/inject-seo.mjs, package.json |
| Ajout | Contrôle SEO scripts/check-seo.py : vérifie que le canonical de chaque page est auto-référent et unique, que le jeu de hreflang des sept langues est fermé, que les descriptions ne sont pas vides et que le sitemap couvre toutes les pages |
nouveau scripts/check-seo.py |
| Note | Structure du site : un seul domaine, un chemin par édition (/zh/, /zh-hant/, /en/, …). La forme des adresses est « sans extension pour les pages, avec barre oblique finale pour les couvertures » (par ex. /zh/part1/01-naming, /zh/) : c'est la forme canonique imposée par l'hébergeur, et le canonical comme le sitemap la suivent ; les anciennes adresses en .html restent valables et y redirigent. L'adresse du site est regroupée en un seul endroit, en tête de scripts/inject-seo.mjs, et peut être remplacée par la variable d'environnement SITE_URL |
— |
v3.3.0 · 2026-10-12 · Le chinois scindé en deux éditions, simplifiée et traditionnelle
| Type | Modification | Fichiers |
|---|---|---|
| Ajout | À partir de cette version, le chinois existe en deux éditions, simplifiée et traditionnelle, aux côtés de l'anglais, du japonais, du coréen, du français et de l'allemand ; la barre de langues de l'en-tête passe de six à sept entrées. L'édition simplifiée reste la source unique (zh/) ; l'édition traditionnelle (zh-hant/) en est dérivée et non recopiée — deux graphies d'un même texte ne doivent pas avoir deux brouillons, sans quoi toute modification de la source chinoise devrait être recopiée à la main |
zh-hant/ (nouveau : 47 pages + book.json), LANGS.md, gabarit d'en-tête |
| Ajout | Un script de dérivation, scripts/gen-zh-hant.py : une seule commande reconstruit zh-hant/ (y compris book.json et SUMMARY.md) à partir de zh/, avec --check (comparaison seule, code de sortie 1 en cas de dérive) et --report (cinq contrôles) |
scripts/gen-zh-hant.py |
| Note | L'édition traditionnelle emploie les graphies standard de Taïwan (OpenCC s2tw) et convertit les guillemets droits ASCII du corps en 「」『』 (l'édition simplifiée conserve ", l'usage du continent). La conversion des guillemets doit sauter les segments de code : cette page même contient un segment de code renfermant un guillemet droit ASCII littéral (") ; la première version ne l'a pas sauté, le littéral a été consommé comme guillemet typographique, et la parité de tous les guillemets du fichier s'est inversée — les paires suivantes sortaient toutes fermantes avant ouvrantes. Une erreur, tout le fichier faux, et la construction ne signale rien |
scripts/gen-zh-hant.py |
| Note | La conversion est bien plus qu'un simple échange de glyphes. La table de locutions d'OpenCC transforme l'élément générique 「里」 des 21 noms de lilong tels que 三曾里 et 吉庆里 en locatif 「裡」, écrit 工程总局干的第一件事 avec 乾的, déforme le fondateur de la Commercial Press 鲍咸昌 en 鮑鹹昌 et prend la particule 了 pour 瞭 (点明了原因 → 點明瞭原因). Chaque cas a été versé dans une table de substitution appliquée via des caractères de la zone privée — qu'OpenCC ne touche pas ; « convertir d'abord en traditionnel, puis passer par OpenCC » ne fonctionne donc pas : il retouche sa propre sortie traditionnelle |
scripts/gen-zh-hant.py |
| Note | Portée de la conversion : glyphes et ponctuation seulement, aucune localisation du vocabulaire. Des formes comme 報道 (Taïwan écrit 報導), 鏈接 (Taïwan écrit 連結), 視頻, 軟件 et 網絡 sont donc conservées telles quelles — c'est un auteur du continent qui écrit sur Shanghai, selon le même principe qui fait garder leur sens d'origine aux éditions anglaise, française, allemande, japonaise et coréenne |
docs/TRANSLATION-GLOSSARY.md |
| Amélioration | Les trois scripts d'autocontrôle couvrent désormais sept langues : l'assertion sur la barre de langues passe de « exactement 6 liens » à 7 ; la matrice croisée d'identité linguistique de l'index de recherche s'étend à 7×7 — les éditions simplifiée et traditionnelle utilisent des URL de pages identiques comme clés, soit précisément la paire la plus exposée à ce type de contamination ; et un nouveau contrôle K, « conservation de la dérivation traditionnelle » (longueur égale page par page, aucun guillemet brut, aucun caractère de remplissage non résolu), saute les deux contrôles qui ne s'appliquent pas au traditionnel | scripts/check-langbar.py, scripts/check-search.py, scripts/check-translations.py |
| Révision | La liste des langues des sept couvertures et de la barre de langues passe de « 中文 · English · … » à « 简体中文 · 繁體中文 · English · … » ; chaque nom de langue s'écrit dans son propre système d'écriture, si bien que la couverture traditionnelle porte elle aussi 简体中文 — comme le texte anglais contient 日本語 et 한국어 | les sept README.md, gabarit d'en-tête |
| Correction | Le bouton d'édition de l'en-tête était libellé en chinois sur les sept éditions — son texte provenait d'une seule chaîne de la configuration racine, partagée par tous les sous-livres, si bien que les lecteurs de l'édition française voyaient eux aussi le libellé chinois. Il se résout désormais par langue : 編輯本頁 / Edit this page / このページを編集 / 이 페이지 편집 / Modifier cette page / Diese Seite bearbeiten. Le greffon prenait déjà en charge les libellés par langue (il se fonde sur le nom du répertoire de langue du sous-livre) ; la configuration ne les listait simplement pas tous. Nous avons aussi testé les sept URL d'édition et vérifié que chacune pointe vers un répertoire réellement présent dans le dépôt |
book.json racine |
v3.2.2 · 2026-10-10 · Recherche interne réparée dans les cinq éditions
| Type | Modification | Fichiers |
|---|---|---|
| Correction | La recherche interne ne fonctionnait pas du tout dans les éditions anglaise, japonaise, coréenne, française et allemande. L'index est produit par le greffon search-plus, qui le conserve dans une variable globale au niveau du module ; or la construction multilingue de HonKit génère les six livres en parallèle dans un même processus, et chaque langue utilise exactement les mêmes URL de pages comme clés : chaque édition écrasait donc la précédente — les six fichiers d'index se sont retrouvés identiques au byte près, et entièrement en chinois. Les lecteurs d'une édition non chinoise obtenaient 0 résultat pour toute requête. La construction ne signalait aucune erreur et les pages s'affichaient normalement : seule une recherche réelle permettait de le constater |
local-plugins/gitbook-plugin-search-plus/index.js (nouveau ; l'index est réparti par racine de sortie ; les scripts et le gabarit côté client sont copiés à l'identique de l'amont), package.json |
| Ajout | Un script d'autocontrôle de l'index, scripts/check-search.py : il vérifie par langue le nombre de documents, la couverture des pages par rapport au sommaire et l'intégrité des champs, et construit une matrice croisée d'identité linguistique (chaque édition ne reconnaît que son propre sous-titre de couverture) |
scripts/check-search.py |
| Note | Audit complet avant mise en ligne : la construction produit 6 langues × 46 pages = 277 pages ; 21 072 liens internes, 0 lien mort ; la barre de langues est correcte sur les 276 pages de contenu ; les huit contrôles automatiques de traduction passent tous. La recherche a aussi été testée dans un vrai navigateur sur trois éditions — chinois « 闸北 » 46 résultats, anglais « Sihang Warehouse » 16, français « ruisseau » 27 | — |
v3.2.1 · 2026-10-10 · Contrôle par échantillonnage des traductions
Une lecture attentive doublée de vérifications automatiques (liens, chiffres, noms propres, fuites d'autres langues, ratios de longueur et structure des titres — huit contrôles au total) a permis de trouver et de corriger trois types d'incohérence.
| Type | Changement | Fichiers concernés |
|---|---|---|
| Révision | Deux pages d'annexe de l'édition coréenne intitulaient les sources de fin de chapitre **인용과 출처**: et deux pages de l'édition allemande **Quellen und Herkunft**:, au lieu des formes prévues par le glossaire, **출처**: et **Quellen**:. Les quatre pages sont désormais conformes |
ko/appendix/place-names.md, ko/appendix/road-names.md, de/appendix/place-names.md, de/appendix/road-names.md |
| Révision | Dans les éditions française et allemande, l'entrée du sommaire du « journal des modifications » ne correspondait pas au titre de la page (sommaire français Journal des versions contre titre Journal des modifications ; sommaire allemand Versionsverlauf contre titre Änderungsprotokoll). Les deux suivent maintenant le titre de la page, comme dans les quatre autres éditions. La correction a été faite dans la source du sommaire, et les fichiers générés ont été refaits |
scripts/toc.tsv, fr/SUMMARY.md, de/SUMMARY.md |
| Révision | Dans la notice consacrée à Wang Shouhua, la ligne « nom d'origine » se lisait comme une erreur de duplication en anglais et en français, plusieurs surnoms partageant la même romanisation (紀元 / 寄元 → tous deux « Jiyuan » ; 今亮 / 晋亮 / 金亮 → tous « Jinliang »). L'anglais, le français et l'allemand donnent désormais les caractères d'origine entre parenthèses, comme le faisaient déjà le japonais et le coréen | en/part4/05-wangshouhua.md, fr/part4/05-wangshouhua.md, de/part4/05-wangshouhua.md |
v3.2.0 · 2026-10-10 · Le corps du texte traduit dans les cinq langues
| Type | Changement | Fichiers concernés |
|---|---|---|
| Ajout | Le corps du texte est désormais traduit dans les cinq éditions — anglais, japonais, coréen, français et allemand — soit 43 pages par langue (Première partie 10, Deuxième partie 10, Troisième partie 10, Quatrième partie 9, Annexes 4). Avec les trois pages liminaires de chaque édition, cela fait 276 pages en six langues. Il ne reste plus aucune page de remplacement dans le livre | tous les .md sous en/, ja/, ko/, fr/, de/ |
| Ajout | Le glossaire reçoit une section 7, « Noms propres fréquents du corps du texte » (fédération générale des syndicats de Shanghai, Bunye Cheng, le Parti communiste chinois, le Kuomintang, la bataille de Shanghai (1937), la 19e armée de route, Jiang Jieshi, Mao Zedong, rue Qingyun, rue Huiwen, ruisseau Pengyue, Guangzhao Shanzhuang, Zoumating, périphérique intérieur, « quartier torse nu », Whampoa — 25 entrées) et une section 8, « Nombres et unités » (comment écrire 万元 / 亿元 / mu / li / km² dans chacune des cinq langues) | docs/TRANSLATION-GLOSSARY.md |
| Révision | En allemand, « 19e armée de route » est unifié en Routenarmee (la Première partie portait « Route-Armee », contre le glossaire — 9 occurrences) | de/README.md, de/part1/05-1927-1932.md, de/appendix/ |
| Révision | Sur la couverture anglaise, « What this book contains » redevient un tableau à trois colonnes identique au chinois, et la phrase devenue inutile « This translation is produced in stages » est supprimée (le texte anglais est complet) | en/README.md |
| Note | Dans les cinq traductions, les noms et le registre suivent le glossaire : le japonais emploie les kanji traditionnels avec lectures en katakana, le coréen transcrit d'après le mandarin, et l'anglais, le français et l'allemand emploient le pinyin | — |
v3.1.1 · 2026-10-09 · Signature de l'auteur (Zhou Ge / Nickzhuo)
| Type | Changement | Fichiers concernés |
|---|---|---|
| Ajout | La signature de l'auteur, « Zhou Ge (舟哥) · Nickzhuo », est désormais inscrite dans tout le livre, de façon cohérente en quatre endroits : les métadonnées author de chaque édition, la signature de couverture, la signature à la fin de la préface et la section « À propos de l'auteur ». La formulation suit chaque langue : chinois « 舟哥(Nickzhuo) » ; anglais, français, allemand « Zhou Ge (舟哥) · Nickzhuo » ; japonais « 舟哥(Nickzhuo) » ; coréen « 저우거(舟哥) · Nickzhuo ». Le Nickzhuo en lettres latines est toujours conservé tel quel, pour la recherche dans le livre et l'uniformité des métadonnées |
book.json, */book.json, */README.md, */about.md |
| Ajout | La page « À propos de ce livre » de chaque langue reçoit une section « À propos de l'auteur », qui indique que corrections, compléments et discussions passent par le dépôt GitHub | */about.md |
| Ajout | Le glossaire de traduction reçoit une entrée « L'auteur de ce livre » fixant la signature dans les six langues et exigeant qu'elle corresponde mot pour mot aux métadonnées | docs/TRANSLATION-GLOSSARY.md |
| Révision | Dans le book.json racine, l'auteur passe de « 舟哥 » à « 舟哥(Nickzhuo) » |
book.json |
v3.1.0 · 2026-10-09 · Plus de page d'accueil des langues ; une barre de langues en haut
| Type | Changement | Fichiers concernés |
|---|---|---|
| Amélioration | Le site s'ouvre désormais directement en chinois. Le fichier racine index.html n'est plus une page d'accueil « choisissez une langue » mais une redirection instantanée : le meta refresh est placé dans le <head>, si bien que le navigateur part dès qu'il analyse l'en-tête et que le corps n'a pas le temps d'être peint — aucun scintillement. Un location.replace() vient par-dessus et, comme il n'écrit aucune entrée d'historique, un lecteur qui appuie sur « retour » n'est pas renvoyé ici |
_layouts/website/languages.html |
| Ajout | Une barre de six langues à la droite du bandeau supérieur de chaque page (中文 · English · 日本語 · 한국어 · Français · Deutsch) — sans menu déroulant, les six langues étalées, la langue courante mise en évidence par une pastille vermillon. Les liens sont calculés automatiquement comme « cette page → la même page dans une autre langue », et la couverture README.md est correctement associée à index.html |
local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html, styles/website.css |
| Amélioration | Le bandeau supérieur devient une disposition flex : les boutons d'outils (ouvrir/fermer le sommaire, modifier cette page, réglages de police) à gauche, la barre de langues à droite. Sur écran étroit (≤900 px) la barre passe automatiquement sur une deuxième ligne centrée ; même à 320 px elle ne déborde pas et ne recouvre pas le texte | styles/website.css |
| Correction | Le gabarit de la barre de langues doit se trouver dans le greffon local, et non dans le _layouts/ à la racine du projet : en mode multilingue chaque langue est un Livre distinct dont la racine de contenu est zh/, en/, etc. — pas la racine du projet — si bien que l'y placer échoue en silence (la compilation ne signale aucune erreur, mais la barre de langues est tout simplement absente de la page). Le point est noté dans le gabarit et dans .bookignore |
local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html |
| Correction | Les commentaires de gabarit doivent s'écrire ` : danstemplateEngine.toNunjucks(), HonKit remplace les délimiteurs de commentaire de nunjucks par des triples dièses. Écrit de la manière habituelle, un commentaire **n'en est plus un** — les balises de bloc qu'il contient sont réellement analysées et la compilation échoue avecparseBlock: expected endblock, got end of file` ; s'il n'y a pas de balise de bloc, tout le texte du commentaire s'affiche sur la page |
_layouts/website/languages.html, local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html |
| Révision | Dans la couverture de chaque langue, la phrase « autres langues : voir la page de sélection des langues » renvoie désormais à la barre de langues du bandeau supérieur | */README.md |
v3.0.0 · 2026-10-09 · Édition multilingue (anglais / japonais / coréen / français / allemand)
| Type | Changement | Fichiers concernés |
|---|---|---|
| Refonte | Le livre devient un projet HonKit multilingue : ajout d'un LANGS.md, déplacement de tout le contenu chinois dans zh/, chaque langue formant désormais son propre livre (son book.json et son SUMMARY.md). Le language racine est vidé et la configuration racine est partagée par toutes les éditions |
LANGS.md, book.json, zh/ |
| Ajout | Cinq nouvelles éditions — anglaise, japonaise, coréenne, française, allemande — avec les 46 entrées du sommaire rédigées dans chaque langue | en/, ja/, ko/, fr/, de/ |
| Ajout | Un glossaire de traduction : règles générales de transcription par langue et concordances des toponymes, institutions, événements, personnes et concepts, qui fait seule autorité sur l'orthographe de chaque nom. Le japonais emploie les kanji avec la lecture réellement en usage à Shanghai à l'époque (閘北 = ザホク ; 呉昌碩 = goshōseki) ; le coréen suit la règle de 1986 de l'Institut national de la langue coréenne et transcrit d'après le mandarin (闸北 = 자베이) | docs/TRANSLATION-GLOSSARY.md |
| Ajout | Pages liminaires achevées dans les cinq langues : couverture, à propos, journal des modifications | */README.md, */about.md, */changelog.md |
| Ajout | Pages provisoires pour les chapitres non traduits (pour éviter les liens morts dans la barre latérale) et un vérificateur de liens internes pour tout le site | scripts/make-stubs.py, scripts/check-links.py |
| Correction | Les styles n'atteignaient pas les livres de langue : le réglage theme-default.styles de la racine ne s'applique jamais dans un sous-livre de langue (le test fileExists(style) du gabarit de thème échoue dans cette portée, et le contourner par un chemin ../ déclenche FileOutOfScopeError). Remplacé par une extension locale, honkit-plugin-zhabei-theme, qui injecte la feuille de style comme ressource du livre ; effective dans les six langues |
local-plugins/, scripts/sync-styles.mjs, package.json |
| Amélioration | La page de sélection des langues utilise un gabarit maison (remplaçant le titre anglais figé de HonKit) avec la palette « papier et encre » ; la disposition flottante sur deux colonnes est remplacée par une grille CSS — car le thème donne à .languages un ::before/::after { display: table }, et dans un conteneur en grille ces pseudo-éléments occupent chacun une cellule, ce qui désorganisait les six entrées |
_layouts/website/languages.html, styles/website.css |
| Note | La traduction du corps du texte se fait par étapes ; les chapitres non traduits affichent une page provisoire jusqu'à leur remplacement | — |
v2.3.0 · 2026-10-09 · Correction de défauts + palette repensée
| Type | Changement | Fichiers concernés |
|---|---|---|
| Correction | « Deux menus de police en haut » : highlight, fontsettings et theme-default sont des extensions par défaut de HonKit, mais étaient redeclarées dans book.json, donc chargées deux fois (deux feuilles fontsettings/website.css ont été trouvées montées) |
book.json |
| Correction | Suppression de splitter : à chaque changement de page, il ajoutait une barre verticale positionnée en absolu, width:5px; height:100%, et ne la nettoyait jamais (après huit changements de page consécutifs, .divider-content-summary était passé de 1 à 9). C'était la source de la bordure blanche à droite |
book.json, package.json |
| Correction | Suppression de back-to-top-button : il ajoutait lui aussi sans condition à chaque changement de page, et .back-to-top passait pareillement de 1 à 9 ; le paquet avait en outre été marqué par npm comme n'étant plus maintenu |
book.json, package.json |
| Amélioration | Palette repensée en « Papier et encre · clair » : la palette intégrée color-theme-1 (parchemin) peignait la barre latérale en quasi-noir #111 et le corps en crème, en conflit avec la feuille de style personnalisée. Désormais unifié : fond clair, texte sombre, accent cinabre #9c3d2e |
styles/website.css (palette centralisée dans :root, en tête) |
| Amélioration | Police du corps désormais sérif par défaut, taille 2 | book.json |
| Révision | Suppression de la dépendance inutilisée gitbook-plugin-toc |
package.json |
| Révision | Nettoyage des résidus dans _book/ laissés par les extensions retirées |
_book/ (sortie de compilation, non versionnée) |
v2.2.0 · 2026-10-09 · Activation des extensions de confort
| Type | Changement | Fichiers concernés |
|---|---|---|
| Amélioration | Meilleure recherche en chinois : search-plus remplace les extensions intégrées lunr/search, avec segmentation des mots chinois et surlignage des résultats |
book.json |
| Amélioration | « Modifier cette page » : un lien direct, en haut de chaque page, vers son fichier source dans le dépôt GitHub, pour que le lecteur puisse corriger sur place | book.json |
| Amélioration | Ancres de titres : chaque sous-titre reçoit son propre lien copiable (les 46 pages) | book.json |
| Amélioration | Chapitres repliables dans la barre latérale : un clic sur un titre de chapitre replie ou déplie ses sous-entrées | book.json |
| Amélioration | Un bouton flottant « retour en haut » (retiré depuis en v2.3.0) | book.json |
| Amélioration | Une barre latérale redimensionnable à la souris (retirée depuis en v2.3.0) | book.json |
| Amélioration | Copie des blocs de code en un clic | book.json |
| Amélioration | Nouvelles dépendances d'extensions | package.json, package-lock.json |
v2.1.0 · 2026-10-09 · Nouveau module
| Type | Changement | Fichiers concernés |
|---|---|---|
| Ajout | Nouveau module « Journal des modifications », consignant chaque changement ligne par ligne dans des tableaux | changelog.md (cette page) |
| Refonte | Entrée « Journal des modifications » ajoutée au sommaire | SUMMARY.md |
v2.0.2 · 2026-10-09 · Meilleur aperçu local
| Type | Changement | Fichiers concernés |
|---|---|---|
| Ajout | Lanceur d'aperçu en un clic (double-clic pour démarrer le serveur et ouvrir le navigateur) | preview.bat |
| Ajout | Liste d'exclusion HonKit, qui tient les fichiers de développement hors de la publication | .bookignore |
| Amélioration | Une section « Lire en local (important) » ajoutée à la couverture, expliquant pourquoi file:// ne fonctionne pas |
README.md |
| Correction | Identification et documentation : un site HonKit navigue à la manière d'une SPA ; sous file:// il est bloqué par CORS et doit être servi en HTTP |
— |
v2.0.1 · 2026-10-09 · Liens morts réparés
| Type | Changement | Fichiers concernés |
|---|---|---|
| Correction | 60 liens internes entre répertoires corrigés (sur 34 fichiers) ; la cause était que les liens avaient été écrits relativement à la racine du livre, et non au fichier courant | plusieurs .md sous part1/–part4/, appendix/ |
| Amélioration | Mise en place d'un autocontrôle complet des liens : 45 pages, 2 065 liens internes, 0 mort | script de vérification (temporaire) |
v2.0.0 · 2026-10-09 · Migration de plateforme et réécriture complète
| Type | Changement | Fichiers concernés |
|---|---|---|
| Refonte | Système de compilation déplacé de GitBook vers HonKit 6 (compatibilité quasi directe de SUMMARY.md / book.json) |
package.json, book.json |
| Ajout | Les 45 pages réécrites de zéro : couverture, préface, quatre parties et quatre annexes | 45 fichiers .md |
| Ajout | Première partie · Chronique de Zhabei (9 chapitres, du nom jusqu'à la fusion de 2015) | part1/ |
| Ajout | Deuxième partie · Panorama des sous-districts de Zhabei (8 sous-districts + bourg de Pengpu) | part2/ |
| Ajout | Troisième partie · Sites remarquables de Zhabei (9 notices) | part3/ |
| Ajout | Quatrième partie · Figures de l'histoire de Zhabei (8 notices) | part4/ |
| Ajout | Annexes : codes des noms de rues, chronologie, toponymes d'hier et d'aujourd'hui, sources citées | appendix/ |
| Ajout | Un système de sources à trois niveaux (A recueils/bulletins/inventaires du patrimoine, B presse autorisée, C encyclopédies et récits de voyage), avec une note « Sources » à la fin de chaque chapitre | tous les chapitres |
| Amélioration | Une feuille de style maison « papier d'archive » (corps sérif, titres bruns, tableaux soignés) | styles/website.css |
| Amélioration | Workflow de déploiement automatique vers GitHub Pages | .github/workflows/deploy.yml |
| Amélioration | Fins de ligne et encodage normalisés, pour que le développement sous Windows et la compilation sous Linux concordent | .gitattributes, .gitignore |
| Révision | Suppression du fichier provisoire | NONONO (supprimé) |
v1.0 · 2023-11-03 · Initiale (abandonnée)
| Type | Changement | Fichiers concernés |
|---|---|---|
| Ajout | Squelette du projet créé avec l'éditeur en ligne de GitBook | README.md, SUMMARY.md |
| Ajout | Un fichier provisoire | NONONO |
| Note | Les trois commits ont tous été générés automatiquement par GitBook (GITBOOK-3 / GITBOOK-4 / Create NONONO) et ne contiennent aucun contenu réel. Le projet a ensuite été abandonné |
— |
Règles de tenue de cette page
Pour que les entrées puissent s'ajouter dans la durée, trois règles s'appliquent :
- Un changement, une entrée : au terme d'une série de modifications, ajouter d'abord une ligne à « Vue d'ensemble », puis une section à « Détail par version » ;
- Chaque ligne doit se comprendre seule : dire ce qui a réellement changé ; ne pas écrire de formules creuses comme « optimisé » ou « mis à jour » ;
- Nommer les fichiers concernés : pour que tout changement puisse être retrouvé et annulé.
Les messages de commit plus fins et plus techniques restent dans l'historique Git ; cette page ne consigne que les changements qui comptent pour le lecteur. Les deux se complètent.