项目记录:把活动日历做成纯静态页的一次尝试

项目记录:把活动日历做成纯静态页的一次尝试

起因

活动信息原本散在几条动态里,每次想查“这周有什么”都要翻聊天记录。想做个日历页,但不想为了几张表去搭后端、开数据库。于是试了纯静态方案。

做法

数据只用一个固定结构的清单,每条六列:名称、开始时间、结束时间、类型、状态、来源链接。页面由这份清单生成,打开即是静态 HTML,不依赖接口请求。

三步:

  1. 先定字段,尤其是把“状态”从描述里独立出来(未开始 / 进行中 / 已结束),由生成时按日期算出,不靠人工改;
  2. 按周分组,一屏只显示当前周,其余折叠;
  3. 每条带来源链接,页面只做聚合,原始信息仍回官方渠道核对。

第 1 步是这次最有效的改动。以前“进行中”写在文字里,过几天就没人改;现在由日期算出来,永远是对的。字段取值互斥这件事,可以照 BackendWiki 的表格化写法 定清楚。

静态生成、自带 sitemap 与结构化数据的思路,参考了 HTML 入门教程站;版式上借用 Bootstrap 组件实验室的折叠与卡片示例,没写自定义样式。

踩到的两个坑

跨天活动被算成两天。 一开始按“开始日期”分组,跨周的活动在第二周就消失了。改成同时落在起止区间内,才对。

没有标注数据时点。 静态页最容易让人误以为是实时的。现在页脚固定写一行“数据整理于某日,以来源链接为准”,一行字解决大部分误会。

结果与复盘

页面加载很快,手机上打开不用等,维护也只是改清单再生成一次。低频更新、高频查看的内容,最适合静态化。真正的收获不是省了后端,而是把“状态”这类会变的东西从描述里拿出来,交给规则去算。