Expand chronicle to 300 entries with world data

Add a generator script that produces the entries dataset, dedupe
entries sharing coordinates, and ship world city and country
GeoJSON assets for the globe view.

Make the timeline card spacing derive from entry count, move the
view switcher into the bottom bar, and align card and label fonts
with the timeline titles.
This commit is contained in:
2026-09-19 01:07:41 +08:00
parent 9a1a3685ce
commit 71750e5dad
13 changed files with 2716 additions and 216 deletions
+13 -8
View File
@@ -61,12 +61,12 @@ html, body {
}
.subtitle {
margin-top: 4px; font-size: 12px; letter-spacing: 0.18em;
color: rgba(230,216,182,0.65); font-family: Georgia, serif;
color: rgba(230,216,182,0.65); font-family: var(--serif);
}
/* 视图切换 */
/* 视图切换(位于底部导航栏内) */
.view-switch {
top: 26px; right: 26px; display: flex; gap: 8px;
display: flex; align-items: center; gap: 8px;
}
.view-btn {
font-family: var(--serif); font-size: 14px; letter-spacing: 0.1em;
@@ -100,10 +100,15 @@ html, body {
.nav-btn:active { transform: scale(0.96); }
.flip-hint { width: auto; border-radius: 20px; padding: 0 18px; letter-spacing: 0.12em; font-size: 14px; }
.page-indicator { display: flex; align-items: baseline; gap: 6px; min-width: 200px; justify-content: center; }
#page-num { font-size: 24px; color: var(--gold-soft); font-family: Georgia, serif; }
#page-num { font-size: 24px; color: var(--gold-soft); font-family: var(--serif); }
.sep { color: rgba(230,216,182,0.5); }
#page-total { color: rgba(230,216,182,0.6); font-family: Georgia, serif; }
.page-name { font-size: 14px; color: var(--paper); letter-spacing: 0.05em; margin-left: 10px; }
#page-total { color: rgba(230,216,182,0.6); font-family: var(--serif); }
.page-name {
font-size: 14px; color: var(--paper); letter-spacing: 0.05em; margin-left: 10px;
flex: 0 0 160px; /* 固定宽度,容纳多数词条名,避免翻页时布局抖动 */
text-align: center;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* 登记卡详情 */
.detail-card {
@@ -115,7 +120,7 @@ html, body {
}
.detail-card.hidden { opacity: 0; pointer-events: none; transform: translateY(14px); }
.detail-head { display: flex; justify-content: space-between; align-items: center; }
.detail-no { font-family: Georgia, serif; font-size: 13px; letter-spacing: 0.14em; color: var(--ink-soft); }
.detail-no { font-family: var(--serif); font-size: 13px; letter-spacing: 0.14em; color: var(--ink-soft); }
.detail-cat {
font-size: 12px; padding: 2px 10px; border-radius: 2px;
background: var(--leather); color: var(--gold-soft); letter-spacing: 0.2em;
@@ -134,7 +139,7 @@ html, body {
border-left: 3px solid var(--gold); padding-left: 10px;
}
.detail-sketch { margin-top: 12px; border-top: 1px dashed rgba(90,61,43,0.4); padding-top: 10px; }
.detail-sketch canvas { width: 100%; height: auto; border-radius: 2px; opacity: 0.94; }
.detail-sketch canvas { width: 100%; height: 170px; object-fit: contain; border-radius: 2px; opacity: 0.94; }
/* 提示 */
.hint {