这个时间我还不知道已经有许多成熟的 “静态站点天生器”,傻乎乎的选择一个比力熟悉的框架 vite 和一个可以分析 markdown 语法的工具 markdown-it就开干了。我个人是喜欢那种简约的主题,“麻雀虽小五脏俱全”,不须要多么花哨的功能,该有的功能都有就OK:大概规划紧张是 列表页,详情页,分类页和标签页;然后要支持品评、搜索、主题切换等。
由于是从零开始搭建,许多东西都要本身去写,很快我就碰到了一道拦阻 “SEO”,我利用的 vite 默认是通过 CSR 客户端渲染,这种模式构建出来的页面逻辑都放在了 script,以是渲染出来的是 “空缺的” html 页面,如许会导致爬虫无法爬取到我的文章内容,页面也不会被收录,别人也就无法通过搜索引擎搜索到我的文章,这就失去了我建站的意义。厥后翻阅文档发现 vite 支持设置 SSR 服务端渲染模式,但是设置起来比力复杂,就在我焦头烂额之际,忽然发现了新大陆!
Vitepress + 自界说主题
没错,就是 vitepress,它是一个专为构建高效、机动且具有极好开辟体验的文档站点而筹划的静态网站天生器。固然也可以用于构建博客体系,最紧张的是它是基于 vite 开辟的,以是我之前写的代码根本上可以照搬过来,而且它默认是利用 SSR 渲染模式,构建出的是一个完备的 html 文件,这就很完善的办理了我之前的困难。
在利用了一段时间后,我忽然又萌生了一个开源的想法,我想要让别人也用上我写的主题。我其时利用的时间还在 0.x 版本,处于早期开辟阶段,不是很成熟,市面上 vitepress theme 不是许多,以是这个想法愈增剧烈,于是我又花了一段时间把主题抽离出来,定名为 vitepress-theme-poseidon 并发布到 npm 上。
很快就遇上了一个难以办理的 Bug,以至于让我直接放弃了这个框架!题目就是一个很简朴的 Tab 切换,在本地运行毫无题目,摆设到远端之后就出现了无法切换的环境。推测是由于这部分不支持 SSR 组件的题目,利用 vitepress 保举的 <ClientOnly> 包裹的方式也无用,反面又举行了一些别的的实验也无果,无奈放弃!我把这些都归咎于 vitepress 还未正式发布,存在一些未知的 Bug。
但我心中做一款开源的博客主题的想法还未淹灭!
Hexo + 自界说主题