继续:对博客设计的再优化

发布在 Blog/zh1/11/2024, last edited on 1/1/1970.

上一篇文章(重新开始:新博客的设计)中,我提到了页面字体的重新选择,首页和文章页的的重新设计,颜色的优化,框架的更新和多语言内容存储和分离。经过大致三个月时间,我又对博客的设计进行了新的优化。这篇文章继续简单记录了一些思路。

多语言

上一篇文章中提到,我使用 URL 参数中的 lang 进行分离。首先,这不利于 SEO(尽管小破站也不太需要);其次,自己写的判断逻辑有点过于简单了,效果不太好。这次我换回了 @nuxtjs/i18n,只不过因为翻译文件少,全部放进了 i18n.config.ts,实现了页面上大部分文字/时间本地化。所有的中文界面的 URL 以 /zh/ 开始,更加清晰(总算不用惦记后面的 ?lang=zh

主题 & 语言切换

在之前,主题和语言的切换在不符合直觉的地步进行调整(而且没有任何样式,很是丑陋)。在最近,我将其放到了页面的导航栏中,算是优化了用户体验:)

image
image

更多文章

现在,除首页展示的 6 篇文章外,提供了「查看更多」的页面以查看所有的文章。基于 GitHub 的搜索 API,这功能其实是基于搜索页面,至少从链接就可以看的出来:

https://cky.im/zh/search?q=category:Blog/zh&search=false

(话说这样也挺好的,至少少写了很多代码

同时,此功能也适用于查看不同的分类下的文章。

页面 API 更换

除此之外,还有一些你几乎察觉不到的改变。

首先,我放弃了对于 api.github.com 的使用。不仅是它必须暴露出一个 Token(尽管可以无任何权限),而且它在部分地区的可达性也不好。新的 API 端点是 /api/,它不仅仅是一个反代,更对数据进行了一些简单的小处理(比如更换页面链接)

页面链接优化

在此之前,你可以注意到,页面 URL 使用的是无规律,又臭又长的 GitHub Discussion 的唯一 ID。首先,这不好记忆,而且每个 URL 之间很相似却又大不同,给人一种摸不着头脑的感觉。这次我用别名的方式解决了这个问题,配合上 API 的更换,目前所有 URL 已经基本变成与内容有关的有意义内容了。

使用 GitHub 的 Markdown 渲染

这次,我不再使用 Marked.js 自己渲染 Markdown,而是直接使用 API 返回的 bodyHTML。为了直接使用已经渲染好的代码高亮,我也将样式库由 Textretty.css 更换为了 github-markdown-css。在更换过程中,我对原先分离的 light.cssdark.css 进行了合并,使它适配了由 .dark 进行切换深色模式的方法。

骨架屏

随着 API 的更换,同时也将所有的 API 请求改为了异步,且不阻塞进度条的方式。为了占位减少页面抖动,现在我在文章列表,文章详情等地方加入了骨架屏。这也是一个小更改:)

统计

另外,现在博客已经全部停用之前短暂启用的 Google Analytics,更换为保护隐私的 Umami,目前还同时使用 Vercel Insights 对性能数据进行简单的分析(未来都将切换为正在开发中的 Sasanqua)。

暂时说到这。希望你喜欢这次对博客新的设计。