这是一个基于 GitHub Pages 的静态网站项目,旨在为 3FUI 社区提供视频压制作品的元数据存储与展示。
projects/: 数据源。按年份存放原始 JSON 数据文件,是所有内容的源头。frontend/: 前端工程源码 (Vue 3 + Vite + Tailwind CSS)。public/: 静态资源与构建产物目录。api/: 由 Python 脚本生成的静态 API 数据,供前端消费。index.html&assets/: 前端构建后的部署文件。
schemas/: 数据规范定义。包含project-schema.json,用于校验提交的 JSON 格式。scripts/: 自动化脚本。build_indexes.py: 核心构建脚本,负责将projects/下的原始数据转换为public/api/的索引。
config/: 站点配置。包含site-settings.yaml等。
在 projects/2026/ (或当年年份) 目录下创建一个新的 JSON 文件,建议命名为 你的ID_作品名.json。
请参考以下标准模板。注意:download 现在支持多链接形式。
{
"basic": {
"title": "作品标题 [编码器 分辨率]",
"description": "这里写你的压制心得、参数说明等...",
"tags": ["AV1", "1080p", "SVT-AV1"]
},
"meta": {
"author": "你的ID或昵称"
},
"source": {
"url": "https://源链接.com/video"
},
"download": [
{ "name": "主力下载", "url": "https://link1.com/file.mkv" },
{ "name": "备用下载", "url": "https://link2.com/file.mkv" }
]
}注:如果只有一个链接,也可以写成单个对象:"download": { "url": "..." },但推荐使用数组格式。
- Fork 仓库:点击右上角的
Fork按钮。 - 创建文件:在
projects/当年年份/文件夹下新建 JSON。- 文件名规范:仅限英文、数字或下划线,例如
user_project_01.json。禁止使用中文文件名。
- 文件名规范:仅限英文、数字或下划线,例如
- 提交更改 (Commit):填写简短的描述(如
Add: 新增作品 X)。 - 发起请求 (Pull Request):点击
Compare & pull request。 - 等待自动化检查:GitHub Actions 会根据
schemas/project-schema.json自动检查格式。
本项目采用 Jamstack 架构:原始 JSON (Data) -> Python (Build) -> 静态 API -> Vue 3 (Frontend)。
- Node.js (v18+)
- Python 3
- 构建 API 数据 (新增或修改项目后运行):
python scripts/build_indexes.py
- 启动前端开发服务器:
cd frontend npm install npm run dev - 构建与预览:
npm run build python -m http.server 3000 --directory public
提交前请务必阅读 CommunityRules.vue 或在线预览中的“社区规则”页面,确保您的作品符合规范。