# under35 **Repository Path**: Lyong9102/under35 ## Basic Information - **Project Name**: under35 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-29 - **Last Updated**: 2026-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 35 岁以下科技创新 35 人 · 探索站(Web) 基于 **MIT Technology Review — Innovators Under 35**(TR35 / IU35)公开名单的 React 展示站点。 `public/data/` 已内置静态 JSON,**克隆仓库后即可运行**,无需后端或数据库。 | | | |---|---| | **仓库** | [gitee.com/Lyong9102/under35](https://gitee.com/Lyong9102/under35) | | **许可证** | [MIT](./LICENSE) | | **包名** | `tr35-explorer` · v1.0.0 | | **English** | [README.md](./README.md) | --- ## 功能 - **首页**默认展示 **最新年份**(如 2025)+ **Global(全球)** 榜单 - **顶部三个探索入口** - **2103 Innovators** → 独立路由 **照片墙**(`/gallery`) - **Years covered** → 首页年份选择卡片 - **Regions** → 地区子卡片(可切换年份)→ 进入对应地区列表 - **筛选**:年份 / 区域 / 领域 / 关键词 - **人物目录**(`/people`) - **个人详情**(`/person/:slug`) - 成就与简介 - 大学 / 公司标识(域名 favicon + SVG 字母 monogram 回退) - 关联论文(含 DOI / 链接,如有)及 Scholar / Semantic Scholar / OpenAlex 检索入口 - 外链与上榜记录 - **列表卡片 / 照片墙 / 详情页**头像统一为矩形 cover 裁切(无圆形遮盖) - 默认包管理器:**pnpm** - **i18n 就绪**(当前英文;预留多语言) --- ## 技术栈 | 层级 | 选型 | |------|------| | UI | React 19 | | 路由 | React Router 7 | | 构建 | Vite 6 + TypeScript | | 包管理 | **pnpm** 11(锁定 `pnpm@11.9.0`) | | 国际化 | i18next + react-i18next | --- ## 环境要求 - Node.js **20+**(推荐) - **pnpm** 9+(锁定 `pnpm@11.9.0`) ```bash corepack enable # 或: npm install -g pnpm ``` --- ## 快速开始 ```bash git clone https://gitee.com/Lyong9102/under35.git cd under35 pnpm install pnpm dev ``` 浏览器打开 **http://127.0.0.1:5173/** | 命令 | 说明 | |------|------| | `pnpm install` | 安装依赖 | | `pnpm dev` | 开发服务器 | | `pnpm build` | 类型检查 + 生产构建 → `dist/` | | `pnpm preview` | 预览生产包 | > **请只用 pnpm。** `npm` / `yarn` 会被 `preinstall` 拦截。 pnpm v11 下 esbuild 构建脚本已在 `pnpm-workspace.yaml` 中允许(`allowBuilds.esbuild: true`)。 --- ## 目录结构 ```text . ├── LICENSE ├── README.md ├── README.zh-CN.md ├── index.html ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── vite.config.ts ├── public/ │ └── data/ # 静态数据(随仓库提交) │ ├── index.json │ ├── slugs.json │ ├── years/{year}.json │ └── persons/{slug}.json └── src/ ├── api/ # /data 请求封装 ├── components/ # 卡片、照片墙、机构 logo、筛选等 ├── hooks/ ├── i18n/ # 文案与初始化 ├── pages/ # 首页、照片墙、人物、详情、关于 ├── styles/ ├── types/ ├── utils/ # 机构解析、论文辅助 ├── App.tsx └── main.tsx ``` --- ## 路由 | 路径 | 页面 | |------|------| | `/` | 首页(最新年人物 + 年份/地区探索) | | `/gallery` | 照片墙(独立页面) | | `/people` | 人物列表与筛选 | | `/person/:slug` | 个人详情 | | `/about` | 关于 | --- ## 数据说明 - 通过 `public/data/` 静态文件提供 - 已纳入版本库,clone 后无需额外导入 - 规模约:**2103** 位创新者、**16** 个年份(2010–2025)、**10** 个地区 - 来源:Innovators Under 35 公开名单 API 与档案页 - 论文链接:尽可能补充 DOI/URL;详情页另提供学术检索入口 若日后更新数据,替换 `public/data/` 下文件并提交即可。 --- ## 国际化(i18n) 1. 界面文案统一 `t('key')`,见 `src/i18n/locales/en.json` 2. 初始化:`src/i18n/index.ts` 3. 预留语言:`zh` / `es` / `ja`(`enabled: false`) 4. 顶栏语言切换器已接入 **添加语言:** 1. 复制 `en.json` → `zh.json` 并翻译 2. 在 `src/i18n/index.ts` 注册 3. 将该语言 `enabled: true` --- ## 生产部署 ```bash pnpm install pnpm build # 将 dist/ 部署到任意静态托管 ``` 支持 Gitee Pages、GitHub Pages、Cloudflare Pages、Netlify、Vercel、nginx 等。 若使用项目页子路径(如 `https://user.github.io/repo-name/`),在 `vite.config.ts` 中设置: ```ts export default defineConfig({ base: '/repo-name/', // ... }) ``` --- ## 数据与合规 - 概念与公开档案文本来自 **MIT Technology Review · Innovators Under 35** - 官网展示顺序 **不是** 1–35 官方名次 - 头像与简介等受来源站点条款约束;本项目整理结构化公开信息,面向研究与展示 - 请合规使用,注意个人隐私 **MIT 协议**覆盖本仓库的**源代码与文档**。第三方商标(大学/公司名称、外部 favicon 服务加载的标识)归属其权利人。 --- ## 许可证 本项目采用 **[MIT License](./LICENSE)** 开源发布。 ``` Copyright (c) 2026 Lyong9102 ``` 在保留版权声明与许可声明的前提下,可自由使用、复制、修改、合并、发布、分发、再授权和/或出售本软件的副本。