内容
# 个人作品集 CMS — andresnijs.be
一个由 Laravel 支持的,可由管理员编辑的 [andresnijs.be](https://andresnijs.be) 重建版本。
曾经的静态网站现在是一个支持双语(中文/英文)的个人作品集,配备有自定义 CMS、
媒体库、自定义分析功能,以及一个受令牌保护的 API,该 API 也作为 MCP 服务器公开 -
这样整个网站都可以通过 AI 助手进行编辑。
## 功能特点
- **管理员 CMS** — 在 `/admin` 处编辑网站的每个部分(首页、关于、项目、教育、
经验、联系),并使用单用户身份验证(Laravel Breeze)。
- **动态项目筛选** — 在管理员后台管理多对多的筛选条件,并在前端渲染为筛选按钮。
- **媒体库** — 一个集中式的、类似 WordPress 的图片库,配备可重复使用的选取器。
- **多语言支持(中文/英文)** — 英文版在 `/` 处提供,中文版在 `/zh` 处提供。数据库内容可
以翻译(Spatie),UI 界面使用 Laravel 语言文件,每个语言都有对应的简历。
- **自定义分析** — 一个轻量级事件日志(页面浏览、简历下载、项目点击、
联系点击),并带有仪表盘小工具和 30 天图表。
- **CMS API + MCP 服务器** — 一个受令牌保护的 JSON API,封装在模型上,并由
一个 stdio MCP 服务器封装,以便 AI 助手可以直接读取和编辑内容。
## 技术栈
- **Laravel 13** + **SQLite** (`database/database.sqlite`)
- **Blade** 模板,**Tailwind** + **Vite**
- **Laravel Breeze**(Blade)用于身份验证 — 单个管理员用户,无公开注册
- **spatie/laravel-translatable** 用于双语内容
- 通过 **Laravel Herd** 在本地提供服务
## CMS API & MCP 服务器
API 通过 `/api/cms/*` 暴露 CMS,并由 Bearer 令牌保护。`mcp-server/` 目录将其封装为
一个 stdio MCP 服务器,为每个可编辑字段注册工具 - 单例,完整的 CRUD + 项目/教育/经验/筛选条件、
媒体、简历和分析摘要的重新排序 - 以便 AI 助手可以直接读取和编辑内容。