卡塞尔学院守夜人讨论区INTRANET / 09
诺玛主机运行正常
NORMAlink 7.3卡塞尔学院内部网络系统在线

CASSELL ACADEMY · DEVLOG

开发日志

这个站每改一次,就在这里记一笔:加了什么、修了什么、哪儿踩了坑。 最新的在最上面,往下翻就是它长大的顺序。

ENTRIES

10

最近更新 2026-10-24

  1. 2026-10-24新功能v0.11.0

    正文支持 Markdown 与实时预览

    帖子和回复都能写粗体、列表、代码块了;发帖前可以先看渲染效果。

    • ·支持粗体 / 斜体 / 删除线 / 行内代码 / 代码块 / 列表 / 引用 / 分隔线 / 链接
    • ·发帖与回复都加了「预览」,开着预览继续打字会实时跟着更新
    • ·渲染走 React 元素,不生成 HTML 字符串:正文里的 <script> 会被当成文字显示
    • ·链接只放行 http(s)、mailto 与站内路径,javascript: 一律退化成纯文本
    • ·图片语法不渲染 —— 免得有人用外链塞追踪像素
    • ·历史帖子是纯文本,渲染后与原样一致,只有真写了标记的才变富文本

    记录人 unicorn

  2. 2026-10-24新功能v0.10.0

    站内搜索与通知上线

    参照 Discourse / Flarum 的核心能力,把「搜得到」和「被找到」这两件事补上。

    • ·搜索覆盖帖子标题、楼层正文、代号与言灵;多词按「同时包含」处理
    • ·结果在 SQL 层就按血统过滤 —— 低血统学员搜不出「黑太子档案」里的内容
    • ·被回复 / 被引用 / 被 @ 会收到站内通知,顶栏带未读角标
    • ·同一次发言对同一个人只发一条,按「引用 > 回复 > @」取最具体的那种
    • ·楼层加了锚点,通知可以直接跳到被提到的那一楼

    记录人 unicorn

  3. 2026-10-07新功能v0.9.3

    开发日志上线:站上能查更新记录了

    新增 devlog_entries 表与 /devlog 时间线;守夜人小屋里能写、改、删,未登录访客也看得到。

    • ·新增 /devlog:按日期倒序的时间线,带分类、版本号与要点列表
    • ·原来那篇建站长文挪到 /devlog/story —— 一篇讲「为什么」,一份记「改了什么」
    • ·守夜人小屋新增「开发日志」面板:新建 / 编辑 / 转草稿 / 删除
    • ·草稿只有版主可见,没写完的更新不会漏到线上

    记录人 unicorn

  4. 2026-10-07修复v0.9.2

    抽题之后,重新渲染会偷偷换题

    注册提交失败时页面重新渲染,服务端又抽了一次题,刚答完的 5 道全作废。

    • ·原因是抽题发生在渲染期,任何一次重新渲染都会重抽
    • ·修法:首屏抽到的 5 道在客户端钉住,只有手动刷新才换一批
    • ·顺手补上抽题集校验:必须恰好 5 道、互不重复、都在题库里,否则按 0 分处理

    记录人 unicorn

  5. 2026-10-07视觉v0.9.1

    登录页改成门户:半透明玻璃卡片 + 底层轮播

    下线 /welcome 开场页,访客直接落在登录页,背景换成四段素材轮播。

    • ·两段 4K 60fps 原片压成 1080p / 30fps / 无音轨 / CRF26,每段 1.5~2MB
    • ·两张插画转 webp,再用 ffmpeg 抽首帧做 poster,切换时不留黑场
    • ·视频必须 muted + playsInline 才给自动播放;播不动就退到 poster,定时器照常轮换
    • ·系统开了「减少动态效果」就停在第一张插画,不轮播也不播视频

    记录人 unicorn

  6. 2026-09-29修复v0.9.0

    背景视频被自家门禁拦掉了

    部署后登录页背景黑屏,可视频文件明明 200 可访问。

    • ·原因:全站门禁的静态资源白名单里没有 mp4,视频请求被当成「未登录访问内页」307 走了
    • ·修法:白名单改成扩展名表驱动,补上 mp4 / webm / avif
    • ·教训记在这里:门禁白名单别手写,每加一类资源就会漏一次

    记录人 unicorn

  7. 2026-09-20新功能v0.8.0

    守夜人小屋开张:赏金、封学籍、升降版主

    管理后台落地,学院的暗面中枢终于能干活了。

    • ·赏金发放与扣除走原子自增,操作后余额为负直接拒绝
    • ·封禁同时清掉该用户的会话,不给旧 cookie 留活路
    • ·帖务处理:置顶 / 锁定 / 删除,删除会一并带走楼层
    • ·学籍名录里只有 admin 能升 / 撤版主,且动不了管理员自己

    记录人 unicorn

  8. 2026-09-15部署v0.7.0

    首次上线 bbs.inkfolio.top

    Caddy 反代 + PM2 常驻,一台轻量云跑完整个站。

    • ·Caddy 自动签 HTTPS,bbs 子域名反代到 127.0.0.1:3000,不动根域名上的作品集
    • ·PM2 常驻 + 开机自启;SQLite 单文件存储,备份就是拷一个文件
    • ·部署脚本一条命令走完:装依赖 → prisma db push → 构建 → pm2 restart
    • ·.env 里的 SMTP 授权码不进 git,生产环境不再回退到「界面显示验证码」

    记录人 unicorn

  9. 2026-09-14新功能v0.6.0

    3E 考试:血统由答题结果决定

    注册改成「新生入学登记」,30 道题库随机抽 5 道,诺玛在服务端评分。

    • ·答对 5 题 S 级、4 题 A 级……全错 E 级;F 级不是考试结果,是「尚未评定」
    • ·题库、正确答案、解析只存在于服务端,下发给浏览器的题目一律先剔除答案
    • ·客户端提交的血统字段完全忽略 —— 改表单、伪造请求都拿不到高等级
    • ·血统决定版块可见性,越级访问看到的是诺玛的权限拒绝播报,不是空白页

    记录人 unicorn

  10. 2026-09-14内容v0.5.0

    诺玛与芬格尔:把设定做成规则

    论坛主机诺玛当规则引擎,芬格尔专治水贴。

    • ·每条发言先过风纪审查:校外联络、代考、账号交易的暗语会被拦下
    • ·提到言灵 / 血之哀 / 3E 考试 / 楚子航 会触发对应回复,每帖自动回复上限 4 条
    • ·正文 ≤ 6 字、或纯粹一句「顶 / 沙发 / 打卡」,芬格尔会亲自下场吐槽
    • ·言灵按血统档位随机觉醒,档案页可「重新觉醒」,但只在同一档位的序列号区间内换

    记录人 unicorn

继续往里走

日志写的是「改了什么」,站里放着「能用来做什么」。 演示账号可以直接进去看,想留下就参加 3E 考试。

建站手记(长文)在 /devlog/story,这份日志只记录变更本身。