feat(pages): /books 书架与 /opensource 开源页——导航第四项(T2/T5)

- BooksPage:色脊排版卡(mood 竖脊+文楷书名+作者+三行截断策展语)
  × 年份分组规整网格;zh/en 双路由;阅读轨标题旁「书架 →」入口
- /opensource:全量仓墙(ProjectWall 加 limit prop,首页精选 6 不变)
  + 热力图 + 本站开源叙事段;导航第四项「开源」(i18n nav_opensource)
- 五书 frontmatter 策展字段(含泥潭=刘楚昕)

验证: build 28 页 exit 0;books/opensource zh/en 五路由产物断言过;
      五书卡与作者 grep 在案;E2E 30/30 PASS

Spec: 2026-10-25_add-terminal-books-admin

Co-authored-by: GLM-5.3
This commit is contained in:
wait4xandGLM-5.3 committed 2026-10-25 13:46:56 +08:00
1 parent 3bd8369eda
commit 90574edce7
9 files changed
+180 -2

No files matched your search

+7 -1
View File
@@ -41,7 +41,12 @@ const mmdd = (d: Date) =>
if (rows.length === 0) return null;
return (
<div class="track-block">
<h3 class="track">{TRACK_LABEL[cat]}</h3>
<h3 class="track">
{TRACK_LABEL[cat]}
{cat === 'reading' && (
<a class="shelf-link" href={locale === 'en' ? '/en/books/' : '/books/'}>{locale === 'en' ? 'Books →' : '书架 →'}</a>
)}
</h3>
<ul>
{rows.map((post) => (
<li>
@@ -79,6 +84,7 @@ const mmdd = (d: Date) =>
color: var(--ink-3);
font-variant-numeric: tabular-nums;
}
.shelf-link { float: right; font-size: 12.5px; color: var(--accent); font-weight: 400; }
.track {
display: flex;
align-items: center;