国庆假期,原本计划整理一下学生的项目,但进展没有达到预期,于是闲暇中给自己的网站做了一轮更新。
现在有了 AI 帮忙,修改网站比以前容易了很多,至少在我技术已经不算什么门槛。真正的难题反倒是自己的审美不太够。页面怎么布局、颜色怎么搭配,总觉得不太协调,差点意思,反反复复折腾了不少时间。为了这件事,还专门买了一本谢蓓、颜雨茜主编的《拯救你的配色 》。不过审美这东西显然不是看一本书就能解决的,翻了半天,还是没找到特别满意的配色方案,最后选了杨春青果子方案。
说起来,这个网站最初只是我学习编程时搭建的一个练手项目,当时根本没有考虑什么整体规划和架构设计。后来随着使用需求不断增加,又陆续添加了各种功能和模块。由于一开始就没有设计,只能在原有基础上不断修改、扩展和拼接,基本上是需要什么就加什么,哪里不合适就修补哪里。时间长了,各种功能和代码相互交织,结构越来越复杂,逻辑也越来越混乱。每次想改点东西,都得先研究一下之前是怎么写的,有时改了一个地方,还会影响到其他地方。网站就这样在不断打补丁的过程中,逐渐到了剪不断、理还乱的地步。
其中最麻烦的是成员管理。刚开始网站上只有我自己,直接写一个 HTML 页面就够了。后来团队成员越来越多,有人入学,有人硕转博,也有人毕业离开,再加上中英文两个版本,原本简单的事情就变得越来越复杂。更新一个人的信息,常常需要在好几个文件之间来回查找和修改。更麻烦的是,文件里夹杂着大量 HTML,隔一段时间再打开,连自己都要先琢磨半天当时到底是怎么写的。今年新增成员时,这个感觉尤其明显。
既然折腾了一轮,索性把这次修改也记录下来。
网站仍然使用 Hugo,原来的栏目和内容都保留,已有的正文也完全没有改动。这次主要是整理页面样式和背后的文件结构,并没有打算推倒重来。页面上主要调整了菜单栏、正文宽度、字体和颜色,尽量让各个栏目的风格保持一致。博客目录也重新排了一下,把日期和标题放在同一行。不过说实话,现在的目录我还是觉得有些别扭,只是一时也想不出更好的方案,就先这样吧。
成员个人页也重新调整了布局,照片旁边放姓名和联系方式,简介、学习工作经历以及论文放在下面。离室成员用蓝色加以区分,毕业时间和成员身份也根据现有资料做了更新。另外,一些自动生成的英文目录标题,以及原来留下的、不太必要的提示和说明,也顺手清理掉了。整体看起来比之前清爽了一些。
相比页面样式,成员信息的维护方式才是这次最想解决的问题。以前成员名单和个人页面需要分别修改,现在改成了每位成员对应一个 Markdown 文件,中英文资料放在同一个文件里。以后有新成员加入,只需要复制一份模板,填写姓名、成员类别、联系方式和简介,再放好照片,成员名单和个人页面就可以自动生成,不用再去手动修改 HTML。
成员文件统一按照“首次入学年—英文全名”的方式命名。考虑到有些学生会硕转博,文件名不再随着身份变化而调整,新的学习阶段直接在文件里更新。这样打开文件夹,至少可以先按照入学年份找人,不至于每次都翻半天。同时,成员还有一个固定且唯一的标识,不随姓名、身份或文件名的变化而改变。一方面可以保留原来的个人页面网址,另一方面也方便关联论文。
论文管理也存在类似的问题。以前一篇论文正式发表后,需要修改总发表列表,有时还要更新相关成员的个人页面,而且中英文各有一份。稍不留神,就会出现中文版已经补上卷号、页码,英文版却还写着“在投”的情况。论文越来越多以后,这样维护显然不是长久之计。
现在把团队论文统一放在一个markdown文件中管理。每篇论文只需要写一条完整引文,再标记参与的成员。生成网站时,这篇论文就会自动出现在相应成员的中英文个人页中。以后更新期刊信息、DOI 或 PDF 链接,只需要修改这一份清单,不必再到各个页面重复操作。
页面和内容管理方式整理完以后,又顺手清理了一遍网站文件夹。以前留下的旧主题示例、没有使用的模板以及各种缓存,都做了一次集中清理,当然不知道是不是给未来的我挖下一个新坑。整理完以后,日常真正需要维护的东西就比较明确了:博客、成员档案、论文清单,以及对应的图片和 PDF 文件。其他部分尽量交给模板和程序自动处理。
回头看,这次修改没有增加新功能,只是花了不少精力去整理原来已经有的东西,和重构了框架。作为一个半吊子,不知道这一次改动会不会是爬坑的开始,如果各位看官发现什么问题,还请及时告知。
展开评论