重构做到关于页时,我把两版内容都退了回去。单栏排版有一版我喜欢,文字却不对。当时我的反馈是:“都不行,内容偏移了原来的要求了。”

我不想公开太多个人信息,也不想把这里写成一份履历。最后保留了喜欢的单栏版式,介绍重新写过:删去城市、学校、年份和经历,只留下昵称、简短介绍、正在做的事情和公开项目。随后又补了联系方式,我愿意保留公开邮箱和 GitHub,让读者有地方继续交流。

现在的首页也只剩下一个名字、一段题诗,以及关于、项目、博客三个入口。左边是鹿,右边是鹤,lennney. 末尾的句点是一点橙色。在做到这一版之前,还试过深色的 Signal、版刻和点阵。纸本方向确定以后,插图和内页又改了不少次。

纸本方向后期的中文首页,鹿与鹤朝向中间的三个目录入口
鹿与鹤朝向中间的目录,橙色留在字标末尾。

从技术工作台,到版刻和点阵

7 月的 Signal 更接近技术工作台:深色外框、冷白阅读区、编号轨、细线、等宽文字,还有少量橙色提示。项目像登记条目一样排列,但配在旁边的抽象校准图没有说清项目在做什么。逐页看下来,关于、项目和博客都用了类似的登记行,原本不同的内容被排得太像了。

9 月初试过的版刻风,画面就很不一样了。最初的“山海手记”把细密的西方线刻、中国山海与祥云、比格犬角色放在一起,后来主视觉改成了“云上校图”:比格坐在云上看地图,展开的纸卷又延伸成山。

版刻阶段的主视觉,比格犬坐在云上读地图,纸卷延伸成山,山上停着一只鸟
“云上校图”,版刻阶段的比格主视觉。

那一版用了暖纸色和蓝墨色,桌面排成双栏,内容分组呈现。四个项目各有一幅动作不同的比格插图,角色在画里做的事也开始和项目本身有关。

版刻阶段内部也改了几次。最初用了打字机字体和宋体,后来试着把正文换成 EB Garamond 和宋体,打字机字体只留给日期、编号等辅助文字。翻页实验没有采用,页面仍然可以连续读下去;印章、裁切线、假折角和几何花饰也陆续撤下。

当时我还明确要求不要纸纹和全屏噪点。今天留下的纸张质感,是后来重新尝试的结果。

9 月中旬又做了点阵 A/B 方案。我没有选中那两种构图,随后要求回到简单的 lennney.、实际头像、个人介绍,以及博客和真实项目入口。接下来的候选换成纸白、墨字和橙色,首页上的大块项目、文章列表也改成了几段介绍和句中的链接。

先拿真实文章试字体

再往后的纸本方向,参考了 Lynn Fisher 的 2025 版个人网站。她在复盘里写到平装书的影响:首页像目录,内页有章节式标题,纸张纹理很轻。

用到自己的站上,先要处理的是中英文排版。中文标题用了汇文明朝体,英文标题用了 IM FELL English;两种语言的长文正文分别用 Noto Serif SC 和 Alegreya,代码仍然使用等宽字体。标题可以有明显的印刷感,正文则要能一段接着一段读下去。

所以确认字体时,用的是现有文章的段落。我把它们放进字样页,连着标题一起看,也看中文里夹着的英文术语和数字,以及强调文字会不会显得突兀。

用真实文章摘录比较标题和正文的中英文字体样张
中英文的标题和正文,放在字样页里一起比较。

背景用了单独生成的纸纹。普通页面保留一些,阅读页再减弱,少在长文后面叠一层纹理。缺墨和残边留在插图里,文字不加噪点或模糊滤镜。夜间主题用深底和浅色文字,沿用同一套排版。

橙色只留在 lennney. 的句点上,用的就是字体本身的句点,直接改了颜色。这个位置已经足够醒目,导航和正文也就不用再反复加橙色。

鹿鹤放上去以后,还要看手机

早期纸本试样的左边是一只鸟,右边是一段边纹。两边都有图形,形态和作用却不同,这个组合没有通过。

较早的纸本首页试样,左侧为鸟、右侧为边纹,目录仍有四项
早期的鸟与边纹组合,目录当时有四个入口。

后来的桌面首页换成左鹿右鹤,都朝向中间的目录。这批图借用了汉画像石拓印的形态,轮廓简练,墨色有少量残缺,画面里留着空处。

图放上页面以后,又遇到了平衡的问题。鹿的身体铺得开,鹤的身体窄、腿长,给它们相同的 CSS 宽度,两边看起来并不一样重。于是分别调整大小、墨色轻重和位置,按可见的形体和脚下的落点来对齐。

桌面上的鹿鹤摆好了,手机上却要重新试。窄屏方案先试过隐藏两侧装饰,也试过把鹿鹤一起移到目录下面,最后换成另一只小鸟,放在目录下方。字标、题诗和三个入口仍然占据页面的主要位置。

窄屏首页的下半部分,三个目录入口下面是一只小鸟
手机上的目录下方,最终只留一只小鸟。

文章页上的“叁”是什么

关于页确定后,接着看项目列表、博客列表、文章和说明页。首页早期有订阅入口,后来只保留关于、项目、博客三项,我也决定不做订阅 API。删掉一个栏目,页眉和页尾的目录都要跟着调整;返回入口也一起梳理,减少重复的导航。

到了博客列表,又得细看搜索框、按钮和提示文字。搜索框改成一条简单的下划线,操作尽量用文字;搜索、清空、没有结果时的提示都保留下来,让读者看得出这里可以做什么。

中文版确认以后,又看了一轮英文页面。标题的长度和换行变了,导航用词、日期和段落的节奏也要分别调整。把文字换成英文以后,还得重新看整页的排版。

看文章页时,我对上面的“叁”产生了疑问。它沿用的是“博客是第三个栏目”的编号,放到具体文章上,却容易看成这篇文章自己的序号。

于是把其他页面也检查了一遍:关于、项目、博客这一级保留章号,中文用壹、贰、叁,英文用 I、II、III;进入具体文章和项目详情,就去掉重复的栏目号。安装步骤本身有先后顺序,继续使用序号。

图片的边缘,和墨迹的边缘

页面陆续确定后,我又要求按平面设计中的网格系统审查整站。普通窄栏采用 436px,长文阅读区放宽到 640px,窄屏保留至少 24px 的两侧空间。各页可以有不同宽度,标题、正文、插图和目录却需要沿着明确的线排列。

项目插图里有一个具体的问题:几张图的画布尺寸相同,下面设置的间距也相同,看起来却有的挤、有的空。检查后发现,画布底部的透明区域不一样。浏览器计算的是图片矩形,眼睛看到的却是矩形里面的墨迹。

调整时保留完整图像,再根据每张图可见的下沿补偿间距,图和文字的距离才在视觉上接近。后面增加新插图,也要看它自己的形状,不能把上一张的数值直接用过来。

博客列表里,每条记录的高度也要跟着内容变化。标题有的一行能放下,有的会折成两行,日期就跟着标题往下排。固定的是标题与日期之间的距离,条目本身可以自然长高。

这些修改写进了共享样式和设计记录。后续页面可以沿用栏宽、字体角色和间距关系,有不同内容时再作局部调整。

项目图也要说出项目在做什么

版刻阶段曾用不同动作的比格犬区分项目。到了拓印这套图里,几个项目换成了各自的场景:BJD 是工匠、被支起的娃娃和小纸条;Stop That Shit 是守门人与卷轴;Agent Search 是岔路、行旅和远处的亭子;Slim 则是从匣子里连续展开的折叠书页。

讲到 Slim 具体怎样工作时,说明页又补了流程图。一次调用之后怎样交付紧凑视图、怎样保存原文快照、需要时怎样取回细节,这些关系要在图里画清楚。

Slim 说明页中的工作流程,文字节点以细线连接,在同一调用之后分成两条路径

Slim 的工作流程图:用 HTML 排文字,用内联 SVG 画连接线。

图里沿用页面的字体和墨色,上下用细线收边,节点之间留白。文字直接排在页面上,用位置和连接线表达关系。宽屏上可以并列展开,窄屏则重新安排分支,让文字保持可读的大小。

后来把这些基本组件用到 Search 和 STS 时,沿用了文字层级、线条和间距,再按各自的机制画流程。同一个项目可以配几种图:插画交代场景,关系图解释机制,真实截图展示界面和记录。

把确认的选择写进代码

这次重构一直有 AI 参与:生成图像候选、做可交互的试样、修改页面、检查不同尺寸,再把确认的规则写进代码。我逐页看结果,很多要求也是看到页面以后才说得清楚,比如喜欢哪个版式、个人资料留多少,或者文章顶部的章号还要不要。

这些要求是在不同页面里逐渐明确的。关于页没有遇到的长标题,博客列表会遇到;列表里没有的分支关系,说明页又会遇到。在几页里都适用的做法才放进共享组件,遇到新的内容再调整。

中间讨论过技术栈,最后仍然保留了 Next.js 静态导出和 MDX。这次主要改的是页面组织、内容、样式和组件,旧文章保留下来,放进新的纸本排版。

这一版在 2026 年 10 月 3 日上线。版刻插画、点阵试验和没有采用的鸟与边纹都留在设计记录里,回看时还能看到前后改了哪些东西。