변경 이력
이 페이지는 《자베이: 쑤저우허 북안의 백 년 기록》의 모든 변경을 기록한다.
왜 이런 페이지를 남기는가. 이 책은 버려진 GitBook 프로젝트에서 다시 태어났고, 초고·구조·출처 체계가 한 차례 통째로 바뀌었다. 변경을 감추지 않고 펼쳐 쓰면, 독자는 "무엇이 새로 조사된 것이고 무엇이 고쳐진 것인지"를 볼 수 있고, 저자는 "지난 판이 무엇을 바꿨는지"를 알 수 있다.
판 번호 읽는 법
주판.부판.수정번호 삼단식을 쓴다.
| 자리 | 언제 +1 하는가 | 예 |
|---|---|---|
| 주판(X.0.0) | 전권의 구조를 바꾸거나 플랫폼을 통째로 옮겼을 때 | GitBook → HonKit |
| 부판(x.Y.0) | 새 모듈 / 통째 내용을 추가했을 때 | 「변경 이력」 모듈 신설 |
| 수정번호(x.y.Z) | 사실을 고치고, 버그를 잡고, 표현을 다듬었을 때 | 끊긴 링크 하나 수정 |
유형 범례
표의 '유형' 열에 들어가는 값:
| 유형 | 뜻 |
|---|---|
| 추가 | 새 페이지, 새 모듈, 새 기능 |
| 개정 | 기존 페이지의 사실·데이터·표현 수정 |
| 수정 | 버그 수정(끊긴 링크, 빌드 오류, 표시 이상 등) |
| 개선 | 읽기 경험 향상(스타일, 내비게이션, 미리보기, 빌드 공정) |
| 재구성 | 구조적 조정(목차, 프로젝트 설정, 출처 체계) |
판 한눈에 보기
| 판 | 날짜 | 유형 | 무엇을 바꿨는지 한 줄로 |
|---|---|---|---|
| v1.0 | 2023-11-03 | 최초 | 원래의 GitBook 프로젝트. 자리표시자만 있고 이후 폐기 |
| v2.0.0 | 2026-10-09 | 재구성 | HonKit 6으로 이전, 전권 45쪽을 처음부터 다시 씀 |
| v2.0.1 | 2026-10-09 | 수정 | 디렉터리를 넘나드는 끊긴 링크 60개 수정 |
| v2.0.2 | 2026-10-09 | 개선 | 클릭 한 번 로컬 미리보기 + 배포 산출물 경량화 |
| v2.1.0 | 2026-10-09 | 추가 | 「변경 이력」 모듈 신설(이 페이지) |
| v2.2.0 | 2026-10-09 | 개선 | 읽기 보조 플러그인 7종 활성화(중국어 검색, '이 페이지 편집' 등) |
| v2.3.0 | 2026-10-09 | 수정 | 중복 로딩과 페이지 전환 시 DOM 중복 추가 두 결함 수정. 색 구성 개편 |
| v3.0.0 | 2026-10-09 | 재구성 | 다국어화: 중국어판을 zh/로 옮기고 영·일·한·프·독 다섯 판을 신설. 앞부분은 다섯 언어 모두 완료 |
| v3.1.0 | 2026-10-09 | 개선 | '언어 선택' 착지 페이지를 없앴다 — 열면 곧바로 중국어판. 모든 페이지 상단에 여섯 언어 가로 바 신설 |
| v3.1.1 | 2026-10-09 | 추가 | 지은이 이름 '저우거(舟哥) · Nickzhuo'를 명기 — 여섯 언어 메타데이터, 표지, 지은이 소개, 용어표에 반영 |
| v3.2.0 | 2026-10-10 | 추가 | 영어·일본어·한국어·프랑스어·독일어판 본문을 모두 번역 완료(각 43쪽). 여섯 언어 합계 276쪽 |
| v3.2.1 | 2026-10-10 | 개정 | 다섯 언어 번역문 표본 점검: 장 끝 출처 표기 4쪽 정리, 불·독 '변경 이력' 문서명 정렬, 왕서우화 이명에 한자 병기 |
| v3.2.2 | 2026-10-10 | 수정 | 중국어 외 다섯 판의 사이트 내 검색을 고쳤습니다: 그동안 중국어 색인을 불러와 비중국어 검색어는 모두 0건이었습니다 |
| v3.3.0 | 2026-10-12 | 추가 | 중국어를 '간체 중국어'와 '번체 중국어' 두 판으로 나누어 영어·일본어·한국어·프랑스어·독일어와 나란히 배치했습니다. 상단 언어 바는 여섯 개에서 일곱 개로 늘었고, 일곱 언어를 합쳐 모두 323쪽입니다 |
| v3.4.0 | 2026-10-12 | 추가 | https://zhabei.org 공개. 일곱 언어판 표지와 '책 소개'에 온라인 열람 주소를 적고, 323쪽 전체에 자기 참조 canonical과 일곱 언어 hreflang 상호 참조를 넣었으며 sitemap.xml과 robots.txt를 생성했습니다 |
| v3.5.0 | 2026-10-12 | 개선 | 상단 바 오른쪽과 각 쪽 본문 끝에 이 책의 도메인 zhabei.org를 표시하고, 지금 읽는 언어의 표지로 돌아갈 수 있게 했습니다 |
| v3.5.1 | 2026-10-12 | 개정 | 왼쪽 사이드바 위쪽에서 GitHub 입구를 없애고 도메인 zhabei.org만 남겼습니다. 원고를 찾는 독자는 표지 본문과 상단 바의 편집 버튼으로 여전히 갈 수 있습니다 |
| v3.5.2 | 2026-10-12 | 개선 | 표지의 안내 표에 있는 네 개 부와 네 개 부록을 모두 링크로 만들었습니다. 한 번 누르면 바로 이동합니다 |
| v3.5.3 | 2026-10-12 | 개선 | 쪽 끝에 도메인 뒤로 저자 서명 '舟哥@2026'과 현재 판 번호를 덧붙였습니다. 어느 쪽에서든 지금 보고 있는 것이 어느 판인지 한눈에 알 수 있습니다 |
| v3.6.0 | 2026-10-12 | 개선 | 온 사이트 약 1만 7,700개의 내부 링크를 바로 가는 주소로 바꾸었습니다. 모든 쪽에 일곱 언어 공유용 카드를 넣었습니다. 브라우저 언어가 중국어가 아니면 전환 안내를 띄웁니다 |
판별 상세
v3.6.0 · 2026-10-12 · 바로 가는 링크와 공유 카드, 언어 안내
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 개선 | 온 사이트 약 1만 7,700개의 내부 링크를 바로 가는 주소로 바꾸었습니다. 이제까지는 모든 링크가 xxx.html로 적혀 있었지만, 온라인에서 정규 주소의 꼴은 '단일 쪽은 확장자 없이, 목차 쪽은 끝에 빗금'(/zh/part1/01-naming, /zh/ 등)이며, 그래서 누를 때마다 한 번씩 우회되었습니다. 이제 내부 링크와 정규 주소가 같은 기준이 되어 누르면 곧바로 닿습니다. 사이트 안 검색 결과의 주소도 함께 바꾸었으므로 검색에서 들어가도 돌아가지 않습니다 |
scripts/inject-seo.mjs |
| 추가 | 모든 쪽에 공유용 카드가 생겼습니다. 일곱 언어에 각각 한 장씩, 1200×630 크기로 이 책의 종이와 먹 색을 써서 그 언어의 책 제목과 저자 서명을 담았습니다. 어느 쪽 주소든 메신저나 교류 사이트에 보내면 이 카드가 뜨고, 맨 링크가 뜨지 않습니다 | 신규 assets/og/*.png(일곱 장), scripts/gen-og-images.mjs |
| 추가 | 브라우저 언어가 중국어가 아니면 쪽 아래에 안내가 떠오릅니다. 감지된 언어를 알려 주고 그 판으로 바꾸는 단추를 답니다. 사이트를 열면 먼저 간체 중국어로 들어가는 것은 그대로이며, 필요 없으면 닫을 수 있고 한 번 닫으면 다시 나타나지 않습니다 | scripts/inject-seo.mjs, styles/website.css |
| 설명 | 안내는 본문이 아니라 쪽 끝에 붙여 두었습니다. 사이트 안에서 쪽을 넘길 때는 본문 그릇을 갈아 끼우므로, 본문 안에 두면 한 장만 넘겨도 사라집니다. 또한 이 안내는 언어가 실제로 다를 때만 나타납니다. 중국어 브라우저로 중국어를 읽거나 영어 브라우저로 영어를 읽는 동안에는 군더더기가 붙지 않습니다. '전환'은 지금 이 쪽의 해당 언어판으로 가며, 표지로 되돌려 보내지 않습니다 | scripts/inject-seo.mjs |
| 개선 | 로컬 확인용 npm run preview를 추가했습니다. 온라인과 같은 주소 규칙(확장자 없음, 끝 빗금, .html 자동 우회)으로 빌드 산출물을 내놓으므로 '로컬에서 열린다'는 곧 '온라인에서 열린다'가 됩니다. 기존 npm run serve도 편집용으로 남지만 다른 빌드를 거치므로 쪽에 낙관도 SEO 표식도 들어가지 않습니다 |
신규 scripts/preview-dist.mjs, package.json |
v3.5.3 · 2026-10-12 · 쪽 끝에 저자와 판 번호를 더하다
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 개선 | 모든 쪽 본문 끝의 낙관이 '책 제목 + 도메인'에서 '책 제목 + zhabei.org + 舟哥@2026 + 판 번호'로 길어졌습니다. 도메인 다음에 저자 서명 '舟哥@2026'을 굵게 놓고, 이어서 현재 판 번호를 한 단계 작은 글자와 회색으로 덧붙였습니다. 이 순서로 둔 까닭은 낙관 자체가 '누가 썼고 어느 판인가'에 답하게 하기 위해서입니다. 굵은 글씨로 저자가 한눈에 드러나고, 판 번호는 눈길을 빼앗지 않을 만큼 작으면서도 언제든 확인할 수 있습니다 | scripts/inject-seo.mjs, styles/website.css |
| 설명 | 판 번호는 어디에도 따로 두지 않습니다. 빌드할 때 간체 중국어 '판 기록' 쪽의 '판 한눈에 보기' 표 마지막 줄에서 곧바로 읽습니다(이 표는 시간 순으로 덧붙이므로 마지막 줄이 최신판입니다). 왜 공정 파일의 판 항목을 쓰지 않는가 하면, 그 항목은 v2.0.0 이래 손대지 않아 그것을 원천으로 삼으면 곧바로 잘못된 판을 표시하기 때문입니다. 판 번호를 읽을 수 없으면 빌드가 그 자리에서 실패합니다. 쪽 끝이 조용히 비는 일은 없습니다 | scripts/inject-seo.mjs |
| 설명 | 저자 이름은 일곱 언어에서 같은 한 문자열 '舟哥@2026'을 씁니다. 이는 인명·서명이지 옮겨야 할 화면 문구가 아니며, 각 언어 표지의 '舟哥(Nickzhuo) 편저'와 같은 사안입니다. 판 번호 또한 옮기지 않는 vX.Y.Z 그대로입니다. 쪽 끝 자체 점검에는 두 항목을 더했습니다. 저자 이름이 '舟哥@2026'과 일치할 것, 판 번호가 vX.Y.Z 꼴이고 간체 중국어 한눈에 보기 표의 마지막 줄과 한 글자도 다르지 않을 것(자체 점검은 독자적으로 해석하므로 주입 스크립트와 더불어 두 개의 자물쇠가 됩니다) |
scripts/check-branding.py |
v3.5.2 · 2026-10-12 · 표지 목차를 누를 수 있게
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 개선 | 표지의 안내 표는 더 이상 글자만이 아닙니다. 부분 열과 내용 열의 굵은 제목을 모두 링크로 만들어, 어느 쪽을 눌러도 그 부의 머리말 쪽으로 갑니다. 부록 줄의 네 항목(길 이름의 암호 / 연표 / 지명 대조 / 인용 문헌)은 각각 따로 링크하여 해당 쪽으로 바로 닿습니다. 목차를 보면 누르고 싶어 하는 것이 독자이니, 먼저 사이드바를 뒤지게 해서는 안 됩니다 | 일곱 개의 README.md |
| 설명 | 링크는 모두 상대 주소(part1/README.md 등)로, 쪽 안의 다른 링크와 같은 방식입니다. https://zhabei.org에서는 그대로 이동하고, 로컬에서 확인할 때도 localhost 밖으로 나가지 않습니다. 일곱 언어의 앵커 텍스트는 각 언어의 옮김을 따르고, 링크 대상은 한 글자도 다르지 않으며, scripts/check-translations.py의 A 항목이 자동으로 살핍니다 |
— |
v3.5.1 · 2026-10-12 · 사이드바에 도메인만 남김
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 개정 | 왼쪽 사이드바 위쪽에서 GitHub 입구를 없앴습니다. 그 자리에는 원래 도메인과 GitHub 두 링크가 나란히 있었는데, 이제 도메인 하나만 남습니다. 사이드바는 독자의 길잡이이고, 거기에 원고 저장소를 놓는 일은 책을 읽는 일과 거의 관계가 없으며, GitHub에 가야만 하는 것처럼 오해하게 만들기도 합니다 | book.json(links.sidebar) |
| 설명 | 원고로 가는 길이 끊긴 것은 아닙니다. 표지 본문의 원고 안내 한 줄은 그대로 있고(오탈자 신고를 위해 둔 것입니다), 상단 바의 편집 버튼도 여전히 저장소를 가리킵니다. 사이드바가 같은 것을 겹쳐 놓는 일만 그만둔 것입니다 | — |
v3.5.0 · 2026-10-12 · 상단 바와 본문 끝에 도메인 표시
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 개선 | 모든 쪽의 상단 바 오른쪽과 본문 끝에 이 책의 도메인 zhabei.org를 표시합니다. 상단 바 쪽은 작은 표장(배지)으로 만들어 언어 바 왼쪽에 얇은 세로줄을 사이에 두고 놓았고, 본문 끝 쪽은 책 제목과 같은 줄에 두어 그 쪽의 낙관(落款)으로 삼았습니다. 어느 쪽에서든 이 책의 정식 주소가 한눈에 보이고, 그대로 남에게 전할 수 있습니다 |
상단 바 템플릿 header.html, scripts/inject-seo.mjs, styles/website.css |
| 개선 | 두 곳의 도메인 모두 지금 읽고 있는 언어의 표지로 돌아갑니다——일본어 쪽에서는 /ja/로, 프랑스어 쪽에서는 /fr/로. 모든 독자를 간체 중국어판으로 되돌려 보내지 않습니다. 상대 링크이므로 로컬에서 확인할 때 눌러도 localhost 밖으로 나가지 않습니다 |
위와 같음 |
| 추가 | 도메인 표시 자체 점검 scripts/check-branding.py: 모든 쪽에 대해 상단 바 표장과 본문 끝 낙관이 모두 있는지, 두 링크가 이 언어의 표지를 가리키는지, 본문 끝의 책 제목이 그 쪽 제목과 일치하는지, 스타일이 빌드 산출물에 동기화되었는지를 대조합니다. 반증 테스트를 마쳤습니다——링크를 다른 언어로 돌리기·본문 끝 삭제·책 제목 오기·표장을 두 개로 늘리기, 네 가지 파괴를 모두 검출합니다 |
신규 scripts/check-branding.py |
| 설명 | 본문 끝은 템플릿을 덮어쓰지 않고 빌드 후 주입하는 방식입니다. 주제에 website/footer.html이라는 템플릿이 아예 없고, 템플릿으로 넣으려면 page.html(128행, 사이드바 상태 복원 스크립트 포함)을 통째로 베껴야 하는데 사본이 어긋나면 조용히 실효됩니다. 게다가 책 내 검색 플러그인이 같은 이름의 page.html을 이미 차지하고 있어 한 겹 더 겹치면 서로 밀어내며 검색까지 망가집니다. 주입 방식에는 개수 단언도 붙여 두어 쪽 구조가 바뀌면 빌드 시점에 그대로 실패하고, 본문 끝이 조용히 사라지는 일은 없습니다 |
— |
v3.4.0 · 2026-10-12 · zhabei.org 공개
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 추가 | 이 책을 https://zhabei.org에 공개했습니다. 일곱 언어판의 표지와 '책 소개' 페이지에 온라인 열람 주소를 적어, 원본 파일 없이도 읽기 시작할 수 있습니다 | 일곱 언어판의 README.md, about.md |
| 추가 | 323쪽 전체에 SEO 기반을 넣었습니다. 각 페이지에 자기 참조 canonical, 일곱 언어 hreflang 상호 참조(x-default는 간체 중국어판을 가리킴), Open Graph 태그, 그리고 비어 있던 description을 본문 첫 단락으로 채웠습니다. 아울러 sitemap.xml(322건, 각 건에 일곱 언어 xhtml:link 병기)과 robots.txt를 생성했습니다. 루트 이동 페이지는 noindex라서 sitemap에서 제외했습니다 |
신규 scripts/inject-seo.mjs, package.json |
| 추가 | SEO 자체 점검 scripts/check-seo.py: 각 페이지의 canonical이 자기 참조이며 유일한지, 일곱 언어 hreflang이 닫혀 있는지, 설명이 비어 있지 않은지, sitemap이 모든 페이지를 덮는지 확인합니다 |
신규 scripts/check-seo.py |
| 설명 | 사이트 구조는 한 도메인에 언어별 경로(/zh/, /zh-hant/, /en/…)이며 일곱 언어가 도메인 하나를 공유합니다. 주소 형식은 '낱장은 확장자 없이, 표지 페이지는 끝에 슬래시'(예: /zh/part1/01-naming, /zh/)입니다. 호스팅 쪽이 정한 정규 형식이며 canonical과 sitemap도 여기에 맞췄습니다. .html이 붙은 예전 주소도 그대로 열리고 정규 형식으로 넘어갑니다. 사이트 주소는 scripts/inject-seo.mjs 맨 위 한 곳에 모아 두었고 환경 변수 SITE_URL로 바꿀 수 있습니다 |
— |
v3.3.0 · 2026-10-12 · 중국어를 간체/번체 두 판으로 분리
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 추가 | 중국어는 이번 판부터 '간체 중국어'와 '번체 중국어' 두 판으로 나뉘어 영어·일본어·한국어·프랑스어·독일어와 나란히 놓입니다. 상단 언어 바는 여섯 개에서 일곱 개로 늘었습니다. 간체판이 여전히 유일한 원본(zh/)이며, 번체판(zh-hant/)은 여기서 파생된 것이지 베껴 쓴 것이 아닙니다——같은 텍스트의 두 자형에 두 개의 원고를 두면, 중국어 원본을 고칠 때마다 다시 베껴야 합니다 |
zh-hant/(신규 47쪽 + book.json), LANGS.md, 상단 템플릿 |
| 추가 | 파생 스크립트 scripts/gen-zh-hant.py 신규 추가: 명령 하나로 zh/에서 zh-hant/(book.json과 SUMMARY.md 포함)를 다시 생성합니다. --check(비교만 수행, 차이가 있으면 종료 코드 1)와 --report(다섯 항목 점검)를 갖추었습니다 |
scripts/gen-zh-hant.py |
| 설명 | 번체판은 대만 정체 자형(OpenCC s2tw)을 채택하고, 본문의 ASCII 곧은따옴표를 짝을 맞춰 「」『』로 변환합니다(간체판은 "를 그대로 유지하며, 이는 중국 대륙의 조판 관행입니다). 따옴표 변환은 코드 스팬을 건너뛰어야 합니다: 바로 이 쪽에 ASCII 곧은따옴표 하나가 든 코드 스팬이 있는데("), 첫 판에서는 이를 건너뛰지 않아 그 자리표 문자가 조판용 따옴표로 소비되었고, 파일 전체의 따옴표 홀짝이 뒤집혔습니다——이후의 모든 짝 따옴표가 '닫고 나서 여는' 순서가 되었습니다. 한 곳의 실수가 전체를 그르치는데 빌드는 아무것도 알려 주지 않습니다 |
scripts/gen-zh-hant.py |
| 설명 | 변환은 결코 '자형만 바꾸는 일'이 아닙니다. OpenCC의 어구 표는 '三曾里', '吉庆里' 등 21개 리룽(里弄) 이름의 통명 '里'를 방위사로 잘못 보고 '裡'로 바꾸고, '工程总局干的第一件事'를 '乾的'로, 상무인서관 창립자 '鲍咸昌'을 '鮑鹹昌'으로 만들며, 조사 '了'를 '瞭'로 착각하기도 합니다(点明了原因 → 點明瞭原因). 이런 사례는 하나하나 덮어쓰기 표에 등록해 사설 영역 자리표시자로 OpenCC를 우회시켰습니다——실측 결과 OpenCC는 사설 영역을 전혀 건드리지 않습니다. 따라서 '먼저 번체로 바꾼 뒤 OpenCC에 넣는' 방식은 쓸 수 없습니다. OpenCC는 자기가 내놓은 번체에도 다시 손을 대기 때문입니다 |
scripts/gen-zh-hant.py |
| 설명 | 자형 기준: 자형과 문장부호만 변환하고 어휘 현지화는 하지 않습니다. 따라서 報道(대만은 '報導'), 鏈接(대만은 '連結'), 視頻, 軟件, 網絡 같은 대륙 어형은 그대로 둡니다——이 책은 대륙 저자가 상하이를 쓴 것이며, 영어·프랑스어·독일어·일본어·한국어판이 원래 뜻을 유지하는 것과 같은 원칙입니다 |
docs/TRANSLATION-GLOSSARY.md |
| 강화 | 세 가지 자체 점검 스크립트를 일곱 언어로 확장: 언어 바 검사는 '정확히 6개'에서 7개로, 검색 색인의 언어 동일성 교차 행렬은 7×7로 넓혔습니다——간체판과 번체판은 페이지 URL이 완전히 같아서, 이런 뒤섞임 결함에 가장 취약한 한 쌍입니다. 번역문 자체 점검에는 K 항목 '번체 자형 파생 보존'(쪽마다 같은 길이, 맨따옴표 없음, 복원되지 않은 자리표시자 없음)을 추가하고 번체에 해당하지 않는 두 항목은 건너뜁니다 | scripts/check-langbar.py, scripts/check-search.py, scripts/check-translations.py |
| 개정 | 일곱 언어의 표지와 언어 바에 있는 언어 목록을 '中文 · English · …'에서 '简体中文 · 繁體中文 · English · …'로 바꾸었습니다. 언어 이름은 한결같이 그 언어 자신의 문자로 씁니다——번체판 표지에도 '简体中文'라고 쓰며, 이는 영어 본문에 '日本語', '한국어'를 쓰는 것과 같은 이치입니다 | 일곱 언어의 README.md, 상단 템플릿 |
| 수정 | 상단의 편집 버튼이 일곱 언어판 모두에서 중국어로 표시되었다——문구는 루트 설정의 문자열 하나에서 오고 모든 언어 자식 책이 이를 공유했기 때문에, 한국어판 독자에게도 중국어 라벨이 보였다. 이를 언어별 값으로 변경: 編輯本頁/Edit this page/このページを編集/이 페이지 편집/Modifier cette page/Diese Seite bearbeiten. 플러그인은 원래 언어별 문구를 지원했으며(자식 책의 언어 디렉터리 이름을 참조한다), 설정에 빠져 있었을 뿐이다. 아울러 일곱 언어의 편집용 URL을 실제로 시험하여 모두 저장소에 실재하는 디렉터리를 가리키는 것을 확인했다 |
루트 book.json |
v3.2.2 · 2026-10-10 · 다섯 언어판 사이트 내 검색 수정
| 유형 | 변경 내용 | 관련 파일 |
|---|---|---|
| 수정 | 영어·일본어·한국어·프랑스어·독일어판에서 사이트 내 검색이 사실상 작동하지 않았습니다. 색인은 search-plus 플러그인이 만드는데, 이 색인을 모듈 수준 전역 변수에 담아 둡니다. HonKit의 다국어 빌드는 여섯 언어의 책을 한 프로세스에서 동시에 생성하고, 각 언어의 페이지 URL이 완전히 동일하기 때문에 뒤에 만들어진 언어가 앞의 것을 덮어씁니다——여섯 색인 파일의 크기가 끝내 바이트 단위로 같아졌고, 내용은 모두 중국어였습니다. 비중국어판 독자가 검색창에 무엇을 넣어도 0건이었습니다. 이 결함은 빌드 시 오류를 내지 않고 페이지도 정상으로 보이므로, 실제로 검색해 보아야만 드러납니다 |
local-plugins/gitbook-plugin-search-plus/index.js(신규. 색인을 '출력 루트'별로 분리. 프런트엔드 스크립트와 템플릿은 상류와 바이트 단위로 동일), package.json |
| 추가 | 색인 자체 점검 스크립트 scripts/check-search.py 추가: 언어별 문서 수, 목차 대비 페이지 포괄, 필드 완전성을 점검하고, 각 언어 표지 부제로 언어 동일성 교차 행렬(자기 언어만 일치, 나머지 다섯 언어는 0건)을 검증합니다 |
scripts/check-search.py |
| 설명 | 공개 전 전면 점검: 빌드는 6개 언어 × 46쪽 = 277쪽, 내부 링크 21,072개에 죽은 링크 0개, 276쪽 모두 언어 바 정상, 번역문 기계 점검 여덟 항목 전부 통과. 실제 브라우저에서도 세 판의 검색을 실측했습니다(중국어 '闸北' 46건, 영어 'Sihang Warehouse' 16건, 프랑스어 'ruisseau' 27건) | — |
v3.2.1 · 2026-10-10 · 전 언어 번역문 표본 점검
영어·일본어·한국어·프랑스어·독일어 다섯 언어에 대해 정독과 기계 검증(링크·숫자·고유명사·타 언어 혼입·분량 비율·제목 구조, 모두 여덟 항목)을 함께 실시하여 세 가지 불일치를 찾아 바로잡았다.
| 유형 | 변경 사항 | 관련 파일 |
|---|---|---|
| 개정 | 한국어판 부록 2쪽이 장 끝 출처 표기를 **인용과 출처**:, 독일어판 2쪽이 **Quellen und Herkunft**:로 적어 용어집이 정한 **출처**:/**Quellen**:와 어긋나 있었다. 네 쪽 모두 바로잡았다 |
ko/appendix/place-names.md, ko/appendix/road-names.md, de/appendix/place-names.md, de/appendix/road-names.md |
| 개정 | 프랑스어·독일어판 '변경 이력'에서 목차 항목명과 문서 안 제목이 서로 달랐다 (프랑스어: 목차 Journal des versions/제목 Journal des modifications, 독일어: 목차 Versionsverlauf/제목 Änderungsprotokoll). 문서 안 제목으로 통일했다——나머지 네 언어에는 애초에 이런 차이가 없다. 목차의 원본을 고치고 생성물도 다시 만들었다 |
scripts/toc.tsv, fr/SUMMARY.md, de/SUMMARY.md |
| 개정 | 《왕서우화》 편 '본명' 행이 영어·프랑스어판에서는 병음이 같은 탓에(紀元/寄元 모두 Jiyuan, 今亮/晋亮/金亮 모두 Jinliang) 중복 오류처럼 읽혔다. 영어·프랑스어·독일어 세 판 모두 이름 뒤에 한자를 괄호로 병기하여 구분하도록 했고, 일본어·한국어판과 같게 맞췄다 | en/part4/05-wangshouhua.md, fr/part4/05-wangshouhua.md, de/part4/05-wangshouhua.md |
v3.2.0 · 2026-10-10 · 다섯 언어판 본문 번역 완료
| 유형 | 갱신점 | 관련 파일 |
|---|---|---|
| 추가 | 영어·일본어·한국어·프랑스어·독일어판 본문을 모두 번역 완료. 언어별 43쪽(제1부 10, 제2부 10, 제3부 10, 제4부 9, 부록 4). 각 언어의 앞부분 3쪽을 더하면 여섯 언어 합계 276쪽. 이로써 자리표시 페이지가 한 장도 남지 않았다 | en/, ja/, ko/, fr/, de/ 아래 모든 .md |
| 추가 | 용어표에 제7절 「본문 빈출 보충 고유명사」(상하이총공회, 부예청, 중국공산당, 국민당, 쑹후 회전, 제19로군, 장제스, 마오쩌둥, 칭윈루, 후이원루, 펑웨푸, 광자오산좡, 조우마탕, 중환, 적박구, 황푸 등 25항목)와 제8절 「수치와 계량 표기」(万元/亿元/무/리/km²의 다섯 언어 통일 표기)를 증보 | docs/TRANSLATION-GLOSSARY.md |
| 수정 | 독일어 '제19로군'을 Routenarmee로 통일(제1부가 Route-Armee로 되어 있어 용어표와 불일치, 총 9곳) | de/README.md, de/part1/05-1927-1932.md, de/appendix/ |
| 수정 | 영어판 표지의 '이 책의 구성'을 중국어와 같은 3열 표로 되돌리고, 이미 필요 없어진 '본 역본은 단계적으로 진행 중'이라는 문장을 삭제(영어판 본문은 번역 완료) | en/README.md |
| 설명 | 다섯 언어 본문의 역명과 문체는 모두 용어표를 따랐다: 일본어는 번체 한자+가타카나 독음, 한국어는 보통화 음역, 영·프·독은 한어병음 | — |
v3.1.1 · 2026-10-09 · 지은이 서명(저우거 / Nickzhuo)
| 유형 | 갱신점 | 관련 파일 |
|---|---|---|
| 추가 | 지은이 이름 '저우거(舟哥) · Nickzhuo'를 책 전체에 명기. 네 곳의 표기를 통일: 각 언어 메타데이터 author, 표지 서명, 머리말 말미의 서명, 지은이 소개 절. 언어별 표기: 중국어 '舟哥(Nickzhuo)', 영·프·독 'Zhou Ge (舟哥) · Nickzhuo', 일본어 '舟哥(Nickzhuo)', 한국어 '저우거(舟哥) · Nickzhuo'. 라틴 문자 Nickzhuo는 항상 그대로 두어 전권 검색과 메타데이터 통일을 꾀한다 |
book.json, */book.json, */README.md, */about.md |
| 추가 | 각 언어의 '이 책에 대하여'에 '지은이에 대하여' 절을 넣고, 오류 지적·보충·논의는 GitHub 저장소로, 라고 밝혔다 | */about.md |
| 추가 | 번역 용어표에 '이 책의 지은이' 절을 새로 두어 여섯 언어의 서명 표기를 정하고, 메타데이터와 한 글자까지 일치할 것을 요구한다 | docs/TRANSLATION-GLOSSARY.md |
| 수정 | 루트 book.json의 지은이를 '舟哥'에서 '舟哥(Nickzhuo)'로 보완했다 |
book.json |
v3.1.0 · 2026-10-09 · 언어 착지 페이지 폐지 + 상단 언어 바
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 개선 | 사이트를 열면 곧바로 중국어판으로 들어간다. 루트 index.html은 더 이상 '언어 선택' 착지 페이지가 아니라 0초 리디렉션 페이지다. meta refresh를 <head>에 두었으므로 브라우저가 head를 해석하는 즉시 이동하고 body는 그려질 틈이 없다 —— 깜빡임이 전혀 없다. 여기에 location.replace()를 겹쳐 두고 방문 기록도 남기지 않으므로, 독자가 '뒤로'를 눌러도 이곳으로 되튕겨 오지 않는다 |
_layouts/website/languages.html |
| 추가 | 모든 페이지 상단 바 오른쪽에 여섯 언어 가로 바(中文 · English · 日本語 · 한국어 · Français · Deutsch)를 신설. 드롭다운을 쓰지 않고 여섯을 모두 펼쳐 보이며, 현재 언어는 주홍색 알약으로 강조한다. 링키는 '현재 페이지 → 다른 언어의 같은 페이지'로 자동 계산하고, 표지 README.md는 index.html로 올바르게 대응시킨다 |
local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html, styles/website.css |
| 개선 | 상단 바를 flex 레이아웃으로 바꿨다: 도구 버튼(사이드바 열기/닫기, 이 페이지 편집, 글꼴 설정)은 왼쪽, 언어 바는 오른쪽. 좁은 화면(≤900px)에서는 언어 바가 자동으로 둘째 줄로 접혀 가운데 정렬되고, 320px에서도 넘치지 않고 본문을 가리지 않는다 | styles/website.css |
| 수정 | 언어 바 템플릿은 로컬 플러그인에 두어야 하며 프로젝트 루트의 _layouts/에는 둘 수 없다. 다국어 모드에서 각 언어는 독립된 Book이고 그 내용 루트는 zh/, en/… 이지 프로젝트 루트가 아니기 때문에, 루트에 두면 소리 없이 실패한다(빌드는 오류를 내지 않지만 페이지에 언어 바가 없다). 템플릿과 .bookignore 양쪽에 주석으로 남겼다 |
local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html |
| 수정 | 템플릿 주석은 `로 써야 한다.templateEngine.toNunjucks()에서 HonKit이 nunjucks의 주석 구분자를 세 개의 샤프로 바꾸기 때문이다. 기본 방식으로 쓰면 그것은 **주석이 아니다** —— 안에 있는 블록 태그가 실제로 해석되어 빌드가parseBlock: expected endblock, got end of file`로 죽는다. 블록 태그가 없으면 주석 전문이 그대로 페이지에 표시된다 |
_layouts/website/languages.html, local-plugins/honkit-plugin-zhabei-theme/_layouts/website/header.html |
| 개정 | 각 언어 표지의 '다른 언어판은 언어 선택 페이지를 보라' 문장을 상단 바의 언어 바를 가리키도록 고쳤다 | */README.md |
v3.0.0 · 2026-10-09 · 다국어화(영/일/한/프/독)
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 재구성 | 이 책을 HonKit 다국어 구조로 전환: LANGS.md를 신설하고 중국어 내용을 통째로 zh/로 옮겼다. 각 언어가 독립된 한 권(각자의 book.json과 SUMMARY.md)이 된다. 루트의 language는 비우고 루트 설정은 모든 판이 공유한다 |
LANGS.md, book.json, zh/ |
| 추가 | 영·일·한·프·독 다섯 판을 신설. 목차 46개 항목을 모두 각 언어로 작성 | en/, ja/, ko/, fr/, de/ |
| 추가 | 번역 용어표: 언어별 전사 원칙 + 지명·기관·사건·인물·개념 대조표. 전권 역명의 유일한 근거로 삼는다. 일본어는 한자 + 당시 상하이에서 실제 쓰인 읽기(閘北=ザホク, 呉昌碩=ごしょうせき), 한국어는 1986년 국립국어원 《외래어 표기법》에 따라 보통화 음역(闸北=자베이) | docs/TRANSLATION-GLOSSARY.md |
| 추가 | 앞부분을 다섯 언어 모두 완료: 표지·이 책에 대하여·변경 이력 | */README.md, */about.md, */changelog.md |
| 추가 | 미번역 장의 자리표시자 페이지(사이드바 404 방지)와 전 사이트 내부 링크 검사 스크립트 | scripts/make-stubs.py, scripts/check-links.py |
| 수정 | 언어 페이지에 스타일이 적용되지 않던 문제: 루트 book.json의 theme-default.styles는 언어 하위 책에서 작동하지 않는다(테마 템플릿의 fileExists(style)가 그 스코프에서 성립하지 않고, ../로 우회하면 FileOutOfScopeError가 난다). 로컬 플러그인 honkit-plugin-zhabei-theme가 '책 자산'으로 주입하는 방식으로 바꿔 여섯 언어 모두에서 적용된다 |
local-plugins/, scripts/sync-styles.mjs, package.json |
| 개선 | 언어 선택 페이지를 자체 템플릿으로 교체(HonKit 내장 영어 고정 제목 대체)하고 '종이와 먹' 색 구성을 적용. 내장 float 2단을 CSS grid로 교체 —— 테마가 .languages에 준 ::before/::after{display:table}이 grid 컨테이너에서는 각각 한 칸을 차지해 6개 항목 배치를 흐트러뜨렸기 때문 |
_layouts/website/languages.html, styles/website.css |
| 설명 | 본문 다섯 언어 번역은 단계적으로 진행한다. 미번역 장은 당분간 자리표시자로 보여 주고, 번역이 끝나는 대로 덮어쓴다 | — |
v2.3.0 · 2026-10-09 · 결함 수정 + 색 구성 개편
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 수정 | "맨 위에 폰트 선택이 둘": highlight/fontsettings/theme-default는 원래 HonKit의 기본 플러그인인데 book.json에서 다시 선언해 두 번 로딩되었다(fontsettings/website.css가 두 장 마운트된 것을 실측) |
book.json |
| 수정 | splitter 제거: 페이지를 바꿀 때마다 width:5px; height:100%의 절대 위치 막대를 append하고 결코 정리하지 않았다(연속 8회 전환 시 .divider-content-summary가 1에서 9로 증가). 오른쪽 흰 테두리의 원인이 이것이었다 |
book.json, package.json |
| 수정 | back-to-top-button 제거: 마찬가지로 전환 시 무조건 append하여 .back-to-top이 똑같이 1에서 9로 증가했고, 해당 패키지는 npm에서 유지보수 종료로 표시되어 있었다 |
book.json, package.json |
| 개선 | 색 구성을 「종이와 먹 · 라이트」로 개편: 내장 color-theme-1(양피지)은 사이드바를 거의 검정 #111, 본문을 크림색으로 칠해 사용자 스타일과 충돌했다. 이를 옅은 바탕에 진한 글자, 주사(朱砂) #9c3d2e 강조로 통일 |
styles/website.css(팔레트는 맨 위 :root에 집중) |
| 개선 | 본문 글꼴을 기본 세리프, 글자 크기 2로 | book.json |
| 개정 | 쓰지 않는 gitbook-plugin-toc 의존성 정리 |
package.json |
| 개정 | 제거한 플러그인의 _book/ 내 잔여물 청소 |
_book/(빌드 산출물, 커밋 안 함) |
v2.2.0 · 2026-10-09 · 읽기 보조 플러그인 활성화
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 개선 | 중국어 검색 강화: 내장 lunr/search를 search-plus로 대체, 중국어 분절과 결과 하이라이트 지원 |
book.json |
| 개선 | 「이 페이지 편집」: 각 페이지 상단에서 GitHub 저장소의 해당 원본으로 바로 링크. 독자가 그 자리에서 고칠 수 있다 | book.json |
| 개선 | 제목 앵커: 소제목마다 복사 가능한 개별 링크 생성(전권 46쪽 적용) | book.json |
| 개선 | 사이드바 장 접기: 장 제목을 클릭해 하위 항목을 접고 편다 | book.json |
| 개선 | 「맨 위로」 떠 있는 버튼(v2.3.0에서 제거됨) | book.json |
| 개선 | 사이드바 너비 끌어 조절(v2.3.0에서 제거됨) | book.json |
| 개선 | 코드 블록 클릭 한 번 복사 | book.json |
| 개선 | 플러그인 의존성 추가 | package.json, package-lock.json |
v2.1.0 · 2026-10-09 · 모듈 신설
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 추가 | 「변경 이력」 모듈을 신설해 변경을 표로 한 줄씩 기록 | changelog.md(이 페이지) |
| 재구성 | 목차에 「변경 이력」 항목 추가 | SUMMARY.md |
v2.0.2 · 2026-10-09 · 로컬 미리보기 개선
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 추가 | 클릭 한 번 미리보기 실행기(두 번 클릭하면 서버가 뜨고 브라우저가 열린다) | preview.bat |
| 추가 | HonKit 제외 목록. 개발용 파일을 배포 산출물 밖으로 밀어낸다 | .bookignore |
| 개선 | 표지에 「로컬에서 읽기(중요)」 절을 넣어 file://로 열리지 않는 이유를 설명 |
README.md |
| 수정 | 규명 및 문서화: HonKit 사이트는 SPA식 내비게이션을 하므로 file://에서는 CORS에 막히고 HTTP로 제공해야 한다 |
— |
v2.0.1 · 2026-10-09 · 끊긴 링크 수정
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 수정 | 디렉터리를 넘나드는 내부 링크 60개 수정(총 34개 파일). 원인은 링크를 '현재 파일'이 아니라 '책 루트' 기준으로 적었기 때문 | part1/~part4/, appendix/ 아래 여러 .md |
| 개선 | 전체 링크 자체 점검 구축: 45쪽, 내부 링크 2,065개, 끊긴 링크 0개 | 검증 스크립트(임시) |
v2.0.0 · 2026-10-09 · 플랫폼 이전 및 전권 재집필
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 재구성 | 빌드 시스템을 GitBook에서 HonKit 6으로 이전(SUMMARY.md/book.json 거의 그대로 호환) |
package.json, book.json |
| 추가 | 전권 45쪽을 처음부터 다시 씀: 표지, 머리말 + 네 부 + 부록 네 편 | .md 45개 |
| 추가 | 제1부 · 자베이 연대기(9장, 명명에서 2015년 합병까지) | part1/ |
| 추가 | 제2부 · 자베이 가도 개관(8개 가도 + 펑푸진) | part2/ |
| 추가 | 제3부 · 자베이의 명소(9편) | part3/ |
| 추가 | 제4부 · 자베이의 역사 인물(8편) | part4/ |
| 추가 | 부록: 길 이름의 암호, 연표, 지명 금석, 인용 문헌 | appendix/ |
| 추가 | 사료 3등급 체계(갑 지방지·공보·문화재 명록, 을 권위 매체, 병 백과·기행). 각 장 끝에 「인용과 출처」 | 각 장 |
| 개선 | 자체 「기록지」 스타일(세리프 본문, 갈색조 제목, 표 장식) | styles/website.css |
| 개선 | GitHub Pages 자동 배포 워크플로 | .github/workflows/deploy.yml |
| 개선 | 줄바꿈·인코딩 정규화로 Windows 개발과 Linux 빌드를 일치시킴 | .gitattributes, .gitignore |
| 개정 | 자리표시자 파일 삭제 | NONONO(삭제됨) |
v1.0 · 2023-11-03 · 최초(폐기)
| 유형 | 변경점 | 관련 파일 |
|---|---|---|
| 추가 | GitBook 클라우드 편집기로 프로젝트 뼈대 생성 | README.md, SUMMARY.md |
| 추가 | 자리표시자 파일 | NONONO |
| 설명 | 세 번의 커밋은 모두 GitBook이 자동 생성한 것(GITBOOK-3/GITBOOK-4/Create NONONO)으로 실질 내용이 없다. 이후 프로젝트는 폐기되었다 |
— |
유지 규약
오래 덧붙여 갈 수 있도록 기록은 다음 세 원칙을 따른다.
- 한 번의 변경에 한 번의 기록: 한 차례 수정을 마치면 먼저 「판 한눈에 보기」에 한 줄, 다음에 「판별 상세」에 한 절을 더한다.
- 한 줄만으로 읽혀야 한다: 무엇을 바꿨는지 구체적으로 쓴다. "최적화", "업데이트" 같은 빈말은 쓰지 않는다.
- 관련 파일을 밝힌다: 추적해 확인하거나 되돌리기 쉽도록.
더 자세한 기술적 커밋 메시지는 Git 이력에 남아 있다. 이 페이지는 독자에게 의미 있는 변경만 기록한다. 둘은 서로를 보완한다.