我的导航站开源了:PHP + SQLite 零配置个人主页,还有 ACG 导航站改造记
最近把江江.com 个人导航站的源码开源到了 GitHub(jiang-home 仓库),顺手把 ACG 网址导航站(dh.江江.com)也做了大版本升级。这篇文章记录一下这两个项目的做法和踩过的坑。
江江.com:PHP 8.2 + SQLite 零配置导航站
主站是 PHP + SQLite 的轻量架构,核心设计目标是「零配置可跑」:
- 不需要 MySQL,SQLite 单文件存储(site.db)
- 不需要 Composer,纯手写 includes
- 前台展示 + 后台管理 + 友链审核一体的单站结构
- 页面带加载动画、公告弹窗、访问统计(不蒜子)
数据表设计很朴素:nav_links(导航链接,支持分组和排序)、links(友链)、settings(站点配置,key-value)、users(后台账号)。
后台管理入口在 /admin,支持导航增删改、友链审核、公告修改。对于个人站长来说,这套东西比装一个 CMS 轻太多,改起来也直观。
ACG 导航站:275 个站点 + 丝滑动画 + 管理后台
dh.江江.com 是一个 ACG 网址导航,收录 275+ 个站点,覆盖 ACG、网盘、搜索、工具、影视、开发、AI、购物八大分类。这次升级做了三件事:
1. 数据外置
之前站点数据直接内嵌在 index.html 的 JS 里,改一个站点就要动整个页面文件。现在把数据抽到独立的 data.json,页面通过 fetch 加载,数据与展示分离。
2. 丝滑动画
整体走「高级极简」路线:暖米色底、细边框、无重阴影。动画全部用 transform + opacity 实现,不碰布局属性:
- 滚动进入视口:淡入 + 上移 12px,600ms 缓动,列表带级联延迟
- 卡片 hover:微抬升 + 超轻阴影
- 分类跳转:平滑滚动
3. 管理后台
新增 /admin 后台,单密码登录,可以做站点的增删改查(名称、网址、简介、状态、分类、页码),数据写回 data.json。密码用 password_hash 存储,登录走 session,写文件带锁,防止并发写坏数据。
开源的意义
个人站的代码不值钱,但「敢开源」这件事挺有价值:
- 代码质量被公开审视,逼自己写干净
- 同类需求的站长可以直接拿去改
- README 里把架构讲清楚,比简历有用
两个项目都开了 MIT 协议:
- 江江.com:github.com/JiangMak-Yiu/jiang-home
- ACG 导航站:github.com/JiangMak-Yiu/jiang-nav
踩坑记录
- SQLite 并发写:后台保存和前台读取同时发生可能锁库,写操作要包事务、加重试
- nginx 静态缓存:改了 JS/CSS 记得 bump ?v= 版本号,否则用户拿到旧文件
- PHP + 静态站共存:vhost 里要 include enable-php 配置,否则 .php 文件会被当静态文件下载
- 动画性能:只用 transform/opacity,别用 top/left 做动画,低端机上会卡
结语
导航站这种「小项目」最适合练手和开源:需求明确、边界清晰、做完能立刻上线用。如果你也有自己的站点,不妨也开源出来试试。
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 江江
评论
隐私政策
0/500
滚动到此处加载评论...
