跳转至

BNU 120 年校史

这是我做的第一个 web 项目。特此留念。

这个网站以前是在 bnu120.space 这个域名,但是后来由于我把公益网站 Free Chat 放在它的子域名下,导致不仅域名备案被吊销、DNS 解析被污染,我个人还被禁止备案了,所以后来就没再续费这个域名了。从此我也就放弃在国内 SEO 了。

screenshot

Warning

以下内容来自 仓库 README,可能存在一定程度的过时,请谨慎参考。

北师大 120 周年校史整理

本站资料由 2020 级北师珠本科生 蔡伟俊唐佳 人工收集整理自海量文献,后由 徐景喆庄毅辉 略加处理。项目成员还包括潘泽嘉师兄和姜赢导师。

本大创项目最初诞生于 北师大 120 周年校庆 前后,虽然这个项目组最终由于以我为首的一些拖延不欢而散,但毕竟这些资料基本完整,于是这个网站仍然被维护,作为当年成果的一个 snapshot,希望能给互联网带来一些价值。

如果在浏览本站的你有什么纠错 / 建议或者任何想说的,欢迎在 Issues 或者 Discussions 版块留言!

由于这是我第一次接触 Web 时的作品,当时工程知识几乎为 0,所以技术栈比较传统,加上我个人的一些 hack,可能很多地方比较怪异,请见谅!这些技术债导致这个项目维护成本较高,因此可视作是一个 archived 的状态。

Deployed · 开始浏览

你可以通过 bnu.muspimerol.site 访问本网站。网站由 Jinja2 简单地渲染自一些 markdown 文件,现在通过一个 SSG 脚本静态化,部署到 Vercel 和 Netlify 上。你也可以在 这个目录 直接浏览所有 markdown 文档。我们也提供开放 API,文档见 Elements / Swagger / ReDoc

Development · 本地开发

本项目现在使用 uv 管理 Python 依赖,uv sync 以安装依赖。npm run build 以构建 uno.css,然后 uvicorn app:app 即可启动服务。

Misc · 一些优化

作为一些基于兴趣的编程探索,当时纯手动实现了 SPA 和粗粒度的差量更新,还实现了比较激进的 preloading、PWA 支持和 service worker 等等特性。你可能感觉这个网站(尤其在桌面端)加载特别快,算是一些个人的完美主义吧。

Roadmap · 以前写的 TODO(不会做了)

  • 适配 Open Graph 特性
  • 学校视图:左边目录(参考 mdn 右边),右边正文
  • 人物视图:左边头像
  • 列表视图:多列布局,头像 + 姓名
  • 预算阅读时间
  • 扫描全文,标注所有站内链接
  • 首页展示

Repositories · 项目相关链接

本项目以前托管在 JihuLab 上,现已迁移至 GitHub(因为 JihuLab 抛弃免费用户了)。以下是当年处理的一些本站未展示的一些其它来源的数据:

深入洞见

仓库是一个基于“数据驱动 SSG”的静态网站工程:vercel.jsonnetlify.toml 的 buildCommand 都运行 uv run ssg.pybun run build,说明站点在构建时会把 data/ 下的 Markdown 与 normalize.py(内容规范化)经过 Jinja2 模板渲染并输出为静态页面。项目同时维护了 Vercel 与 Netlify 的配置,表明对多平台部署的支持与对静态 API 的重写策略(/api/* → 静态 JSON)的实践。

参考源码:data/normalize.py(内容预处理) · vercel.json / netlify.toml(构建与重写)