小记
今天回来没什么事,在地铁上一直在想,到底什么样才算一名真正的程序员。我算吗,在我看来我并不算,或者说还有很长一段路要走。带着这一份复杂的心情,打开电脑,看着我刚弄好的博客网站,想着还能加点什么。于是去看了看别人的博客网站,翻来翻去,着实不知道从哪里下手。正准备去 google 一下博客网站基础建设之类的词条,忽然想起网站上正缺一个像这样的搜索栏。可是…我的小网站又能搜些什么呢。博客内容少的可怜,就连按钮也少的可怜,可是以后呢,万一以后多起来了呢,以后的事谁说的准呢…
搜索栏
我对着文件目录正看反看,到底该怎么加呢,难不成要自己写样式和搜索交互逻辑。正头疼之际,问了问AI,AI查询目录之后告诉我,在 /next/_config.yml中已经写好了两种搜索逻辑。一种是 Local Search,另一种是 Algolia Search。我翻看了下文档,发现实现起来相当简单。
Local Search
本地搜索这种方式实现的逻辑是,Hexo 会在你运行 Hexo g 生成静态资源时,基于你当前目录的内容生成一个 search.xml 文件。然后当你在网页搜索关键词的时候会自动从这个资源文件里面检索。因为所有资源都是静态资源,所以检索速度特别快,但是当网站博客内容特别多的时候,网页加载速度会明显变慢。
首先是安装这个插件,安装完成之后,在 _config.yml 里添加配置。npm install hexo-generator-searchdb --save /这是安装资源
1 | { |
Algolia Search
这种配置我实际使用之后发现非常鸡肋,你搜索之后结果什么时候出来完全取决于你的网速。但好处是,所有搜索资源文件保存在云端不占用网页资源,就算博客再多也不会影响网页的加载速度。但是我仍然不推荐这个,因为真的很慢…。但是我既然配置过了,还是记录一下。
首先你要去他的官网去注册一个账号,得到你的各种 API KEY 配置。由于博主真的很讨厌它,所以注册细节我就不赘述了。下一步是安装插件,安装完成之后还要和本地配置一样去 _config.yml 里添加配置。npm install hexo-algolia --save
1 | { |
配置好你的这些七七八八的key之后呢,你就会发现一个问题。那就是你的key完全是暴露在空气中的,任何人都能在你的仓库里看到你的key。由于博主也是网站小白从来没有遇到过这样的问题,所以也是搜索了许久,找到一个叫 .env 文件的解决办法。这是一个存放环境变量的文本文件,而环境变量都是全局参数。接着你把 .env文件在 .gitignore 里应用一下,之后你把代码推上去之后,你的key文件就是隐藏的。后续只需要写一段js代码让 Hexo 启动的时候把 Key 帮你填上就行了。
1 | { |
这一段代码是为了能让 Hexo 启动的时候自动把 _config.yml里的 Key 配置给填上。
只能说整个过程真是漫长而又折磨😩,所以听我一句劝,就用本地吧。
时间也不早了,最后,感谢你能耐心看完。或许这些老到掉牙的知识并不会为你带来乐趣,但是我还是希望,你在看完之后能留下些许印象,多年以后能记起你在一个很平常的晚上,看到了一篇非常无聊但有浓厚的生活气息的博客。这样就够了。
希望你今天的生活变得更美好了一点,希望你能每天都开心!下次见!
评论