📝 使用与贡献指南

使用与贡献指南

📥 如何下载资料

  1. 使用页面顶部的全局搜索(快捷键 Ctrl+K)搜索课程名
  2. 或在左侧导航栏选择课程
  3. 找到你需要的资料,点击下载按钮即可

🤝 如何贡献资料

我们非常欢迎你分享自己收集或整理的资料!

情况一:为已有课程添加资料

如果你要贡献的课程已经存在,只需两步:

步骤 1:上传资料文件

将你的文件放入对应课程的资料目录(中文名):

public/resources/课程中文名/你的文件.pdf

例如:

public/resources/数据结构/2024-期末-试卷.pdf
public/resources/线性代数/2024-复习-重点总结.pdf

步骤 2:编辑课程页面

打开对应的课程页面文件(拼音名)pages/courses/拼音名.mdx,在合适的位置添加:

<FileDownload 
  name="2024年期末试卷" 
  path="/resources/数据结构/2024-期末-试卷.pdf" 
/>

然后提交 PR 即可!

💡 为什么页面文件用拼音? Next.js 对中文路由的支持存在编码问题,使用拼音可以避免 404 错误,同时保证 GitHub 和 Vercel 部署的稳定性。侧边栏导航仍然显示中文标题。

现有课程文件名对照表:

课程资料目录页面文件
数学分析B数学分析B/shuxuefenxiB.mdx
线性代数线性代数/xianxingdaishu.mdx
高等线性代数高等线性代数/gaodengxianxingdaishu.mdx
概率论与数理统计概率论与数理统计/gailulun.mdx
集合与图论集合与图论/jiheyutulun.mdx
最优化方法最优化方法/zuiyouhua.mdx
大学物理大学物理/daxuewuli.mdx
电路基础电路基础/dianlujichu.mdx
程序设计程序设计/chengxusheji.mdx
面向对象程序设计面向对象程序设计/oop.mdx
数据结构数据结构/shujujiegou.mdx
算法设计与分析算法设计与分析/suanfa.mdx
计算机组成与体系结构计算机组成与体系结构/jisuanjizucheng.mdx
数据库引论数据库引论/shujukuyinlun.mdx
腾飞先导课腾飞先导课/tengfeixiandao.mdx
近代史纲要近代史纲要/jindaishi.mdx
习概习概/xigai.mdx
马克思主义基本原理马克思主义基本原理/makesi.mdx
宋词导读宋词导读/songcidaodu.mdx

情况二:新增一门课程

如果你要贡献的课程不存在,需要三步:

步骤 1:创建资料目录

public/resources/ 下创建新的课程目录(用中文名):

public/resources/编译原理/

步骤 2:创建课程页面

pages/courses/ 下创建新的 .mdx 文件(用拼音名),可以复制已有课程页面作为模板:

pages/courses/bianyiyuanli.mdx

页面模板:

import { FileDownload } from '@/components/FileDownload'
import { Comments } from '@/components/Comments'
 
# 📚 编译原理
 
> 本页面收集了编译原理课程的相关资料
 
## 📝 期末考试
 
<FileDownload 
  name="2024年期末试卷" 
  path="/resources/编译原理/2024-期末-试卷.pdf" 
/>
 
---
 
## 📝 期中考试
 
---
 
## 📚 复习资料
 
---
 
<Comments />

步骤 3:注册课程导航

编辑 pages/courses/_meta.ts,添加新课程:

export default {
  // ... 其他课程
  'bianyiyuanli': '⚙️ 编译原理'  // 新增这一行
}

然后提交 PR!


📋 文件命名规范

请遵循统一的命名格式,方便管理:

[年份]-[类型]-[描述].pdf

类型包括:期末、期中、复习、作业、笔记等

示例:

文件名说明
2024-期末-试卷.pdf2024年期末考试试卷
2024-期末-答案.pdf2024年期末考试答案
2023-期中-试卷.pdf2023年期中考试试卷
2024-复习-知识点总结.pdf复习用知识点总结
2024-笔记-课堂笔记.pdf课堂笔记

📋 资料要求

要求说明
✅ 清晰可读PDF 扫描件需清晰
✅ 正确命名遵循命名规范
✅ 注明来源如有原作者请标注
❌ 禁止侵权不上传有版权争议的资料
❌ 禁止商用仅供学习交流

简便PR方法

我们提供了自动化脚本,让贡献更简单!

使用 easy_pr.py 脚本

  1. Fork 本仓库到你的 GitHub 账号

  2. 点击绿色的code按钮,选择codespaces,点击Create CodeSpaces on master,然后会自动打开一个编辑器窗口

  3. 将资料放入 upload/ 目录

    upload/
    ├── 数据结构/
       └── 2024-期末-试卷.pdf
    └── 线性代数/
        └── 2024-复习-总结.pdf
  4. 运行脚本

    pip install -r scripts/requirements.txt
    python scripts/easy_pr.py
  5. 按提示完成

    • ✅ 自动识别课程和资料类型
    • ✅ 智能文件命名建议
    • ✅ 自动创建分支和提交
    • ✅ 自动创建 Pull Request

脚本功能

  • 📁 扫描上传目录中的文件
  • 🔍 智能识别课程名、年份、资料类型
  • 📝 交互式选择和确认
  • 🎯 自动移动文件到正确位置
  • 📄 自动更新 MDX 页面
  • 🌿 自动创建 Git 分支并提交
  • 🚀 自动创建 Pull Request

🔧 如果你更喜欢传统方式,或者贡献比较复杂

🔧 完整 PR 流程

  1. Fork 本仓库到你的 GitHub 账号
  2. Clone 到本地:
    git clone https://github.com/你的用户名/FDU-Sharing.git
  3. 创建新分支:
    git checkout -b add/课程名-资料描述
  4. 按上述步骤添加资料
  5. 提交更改:
    git add .
    git commit -m "添加:课程名 - 资料描述"
  6. 推送并创建 PR:
    git push origin add/课程名-资料描述
  7. 在 GitHub 上创建 Pull Request

自动化PR

  1. 为了方便不熟悉代码的同学也能贡献/,我们创建了一个自动化脚本,你只需按照

❓ 常见问题

Q: 文件太大无法上传怎么办?

GitHub 单文件限制 100MB。如果文件过大,可以:

  • 压缩文件
  • 拆分为多个文件
  • 在 Issue 中提供网盘链接

Q: 不熟悉 Git 操作怎么办?

可以直接在 GitHub 上提交 Issue,附上资料文件或网盘链接,我们会帮你添加!

Q: 发现错误如何反馈?

欢迎提交 Issue 或直接 PR 修复!


感谢你对本项目的支持!🙏