重做首页¶
原来的首页其实就一段自我介绍,加一句「点上面标签浏览文章」。自己看着还行,但别人点进来多半会愣一下,不知道该从哪看起。
我想让它像个正经门户:一眼看到你是谁、最近写了什么、还能往哪去。风格上参考了 wh1cy.github.io,那种淡淡的、留白很多的极简感。
最后的样子¶
首页从上到下五块:
- Hero:大标题、副标题、三行简介,外加一个随时间变化的问候;
- 最近更新:自动列出最近几篇文章;
- 关于我:一个「溪」字头像和几句介绍;
- 推荐文章:一篇主推,加几个链接;
- 继续浏览:博客、技术、教程、关于四个入口。
两个踩过的坑¶
坑一是链接。首页卡片我直接写了 <a href="BLOG/index.md">,结果点进去全是 404。查了半天才明白:MkDocs 只会重写 Markdown 语法的链接,比如 [文字](xx.md),原始 HTML 里的 href 它不管。 改成输出后的目录地址(BLOG/)就好了。
坑二更隐蔽。首页要全宽显示、把侧栏藏起来,我是靠给 <body> 加一个 is-homepage 类、再用 CSS 控制的。判断首页的逻辑我一开始写的是「当前高亮的标签 href 是 ./」——听起来没问题,可分区首页(/ABOUT/、/WEBSITE/)的高亮标签 href 也是 ./,于是这些页面的侧边栏全没了。
后来改成从顶栏 logo 解析出站点根地址,再跟当前路径比对,才算稳。
右侧的水¶
Hero 右边那点水波纹,我来回改了三版。
第一版只有一圈很淡的涟漪,几乎看不见;第二版加了个水滴,又做得太大太快,太抢戏;第三版才收敛下来:一颗半透明的小水珠慢慢落下,入水后一圈圈涟漪由内向外荡开,越远越细、越淡。
有个细节值得记一下:涟漪不能用 transform: scale() 放大,那样边框会跟着一起变粗。改成动画 width/height,外圈才能保持纤细。
| CSS | |
|---|---|
1 2 3 4 5 | |
顺手加的运行时长¶
后来又在 Hero 里塞了一行「本站已稳定运行 N 天 hh:mm:ss」,每秒跳一次,旁边一个会呼吸的小圆点。这东西纯靠浏览器算,不依赖任何后端,起始时间写在 data-launch 上,想改就改:
| HTML | |
|---|---|
1 | |
最近更新是怎么来的¶
这部分放到文章元数据那篇讲,简单说就是构建时用钩子扫一遍文章,按时间排好塞进来,我不用手动维护列表。