About / 关于本站

让每一个浙大开源项目,
都能被找到。

求是开源是一个静态的浙江大学开源项目索引。它不托管代码,也不替项目做宣传,只做三件事:把项目按场景归类,记录它们最近是否仍在维护,并让搜索变得足够快。

01 / WHAT

这是什么

浙江大学每年都会产生大量课程资料、科研代码、校园工具与效率脚本。它们散落在不同的组织和个人仓库里,很多项目生态位重叠,也有很多已经停止维护。这个站点试图给出一张持续更新的地图。

  • 在做新项目之前,先确认是否已经有人做过类似的事。
  • 在选用一个项目之前,先判断它是否仍在维护。
  • 在寻找学习资料或校园工具时,按分类和标签快速筛选。
02 / CRITERIA

维护状态如何判定

每次构建时,站点会读取 GitHub 仓库的默认分支提交时间与最近 90 天提交数量,并结合仓库是否归档,给出一个粗略但直观的维护状态。它不是质量评分,也不代表项目是否适合生产使用。

活跃最近 90 天内有提交。
维护中最近一年内有提交。
低频最近一次提交在一至两年前。
停滞超过两年没有提交。
已归档仓库维护者已将其归档。

最近更新时间取默认分支最新提交时间,失败时回退到 GitHub 的 pushed_at。已归档仓库会明确标注为“已归档”,即使它仍然可以正常使用。

03 / DATA

数据从哪里来

项目的基本信息来自仓库内的src/data/projects.ts,包括名称、简介、分类、标签与链接。Stars、语言、归档状态、最近提交时间与提交频率在构建时从 GitHub 获取。

构建结果会写入src/generated/repository-stats.json作为缓存。网络不可用或触发速率限制时,页面会继续使用上一次成功同步的数据,因此构建不会因为 GitHub 暂时不可达而失败。

最近一次同步时间:2026.11.04 21:14。当前收录 140 个项目,其中 96 个在最近一年内有提交。

04 / CONTRIBUTE

如何收录一个项目

收录标准很宽松:只要项目与浙江大学有关,并且公开可访问,就可以提交。课程作业、科研代码、校园工具、模板与资源集合都欢迎。

  1. 打开 src/data/projects.ts,按现有格式添加一条项目记录。
  2. 填写唯一的 slug、仓库的 owner/name、中文简介、分类与至少一个标签。
  3. 如果项目有部署网站或下载地址,填写到 links.website 或 links.download。
  4. 运行 pnpm check,然后提交 Pull Request。
{
  slug: "my-zju-project",
  name: "My ZJU Project",
  description: "一句话说明这个项目解决了什么问题。",
  repo: "owner/repo",
  category: "study",
  tags: ["课程资料", "工具"],
  links: { website: "https://example.com" },
}

如果项目已经不存在、仓库迁移或分类不合适,也可以直接提交修改。收录不是排名,所有项目按最近更新排序,已归档项目会自动沉底。

05 / STACK

技术栈

站点使用 Astro 静态生成,Tailwind CSS v4 负责样式,HeroUI v3 提供框架无关的 BEM 组件样式,Lucide 图标通过 astro-icon 管理。页面切换由 Swup 控制,搜索与筛选完全在浏览器端完成,不依赖服务端。

项目数据与展示逻辑按 DDD + MVC 分层:领域层定义项目、分类与维护状态,应用层负责组装与搜索,基础设施层负责 GitHub 同步,表现层负责 Astro 组件与浏览器控制器。

06 / LICENSE

许可与声明

本站代码以GPL-3.0许可发布。项目名称、简介、链接与统计数据仅用于索引与展示,版权归各自作者所有。维护状态只是自动化判断,不构成对项目质量的保证。

收录范围以公开可访问为准,收录不代表推荐、审核或保证合规。部分自动化脚本可能违反平台规则或学术诚信要求,请自行判断并承担使用后果。

本站不是浙江大学官方项目,也不代表学校立场。如果你不希望自己的项目被收录,可以通过仓库 Issue 或 Pull Request 联系我们移除。