一个基于 Next.js 构建的静态知识导航网站,专注于人工智能与生命科学的交叉领域。
- 15 个分类,845+ 条精选资源
- 暗色科技风格,玻璃拟态 UI 设计
- 分子网络风格动态背景
- 首次访问时的开场动画
- 全站搜索与分类筛选
- 响应式设计,移动端适配
- SEO 优化,包含 sitemap.xml
- GitHub Actions 自动部署
npm install从 Excel 文件生成网站数据:
npm run build-data数据来源:data-src/网站类别.xlsx
生成的文件:
/data/categories.json- 分类数据/data/category-slugs.json- 分类 slug 映射/data/links.json- 全量链接数据
npm run dev访问 http://localhost:3000 查看网站。
npm run build静态文件会输出到 out/ 目录。
- 替换
data-src/网站类别.xlsx文件 - 运行
npm run build-data重新生成数据 - 提交并推送到 GitHub,Actions 会自动部署
EXCEL_PATH=path/to/your/file.xlsx npm run build-data项目已配置 GitHub Actions 自动部署:
- 推送代码到
main分支 - GitHub Actions 自动运行构建
- 部署完成后访问:https://junior1p.github.io/BioTender/
首次部署需要手动开启:
- 访问仓库设置:https://github.com/junior1p/BioTender/settings/pages
- 在 "Source" 下拉菜单中选择 "GitHub Actions"
- 保存设置
访问 Actions 页面查看部署日志: https://github.com/junior1p/BioTender/actions
biotender/
├── app/ # Next.js App Router
│ ├── c/[slug]/ # 分类页(动态路由)
│ ├── all/ # 全量索引页
│ ├── layout.tsx # 根布局
│ ├── page.tsx # 首页
│ ├── sitemap.ts # Sitemap 生成
│ └── robots.ts # Robots.txt
├── components/ # React 组件
│ ├── BioAIBg.tsx # 动态背景组件
│ └── IntroOverlay.tsx # 开场动画组件
├── data/ # 生成的数据文件
│ ├── categories.json
│ ├── category-slugs.json
│ └── links.json
├── data-src/ # 数据源文件
│ └── 网站类别.xlsx # Excel 源文件
├── scripts/ # 构建脚本
│ ├── build-data.ts # 数据构建脚本
│ └── inspect-excel.ts # Excel 检查脚本
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions 配置
└── public/ # 静态资源
- 框架: Next.js 16 (App Router)
- 语言: TypeScript
- 样式: TailwindCSS 4
- 数据解析: xlsx
- 拼音转换: pinyin-pro
- 部署: GitHub Pages
Excel 文件结构为"按列分组":
- 第 1 列为"分类",全为空,忽略
- 每个分类占 3 列:[分类标题] [URL] [空列]
- 识别不以
Unnamed:开头的列作为分类 - 逐行读取,提取 title 和 url
- 同一分类内按 URL 去重
Intro 动画使用 localStorage 记录访问状态:
- Key:
biotender_intro_seen - 存在即不再显示
MIT