首页欢迎来访者教程
mohのAI正在绞尽脑汁想思路ING···
mohのAI摘要
mohのAI-Lite
想让你的博客首页更加个性化,为访客提供更友好的体验吗?本教程将教你如何在 Hexo Butterfly 主题中实现一个智能的访客欢迎卡片,可以根据访问者的地理位置、距离、时间等信息,显示独特的欢迎问候。
一、创建欢迎卡片结构
1.1、在主题目录下创建卡片模板文件
1 | [BlogRoot]\themes\butterfly\layout\includes\widget\card_welcome.pug |
写入以下内容
1 | .card-widget.card-welcome |
1.2、插入到侧边栏
结构实现了,下面将该结构插入到对应的位置,可以在当前目录下的index.pug找到对应结构,如下:
文件路径
1 | [BlogRoot]\themes\butterfly\layout\includes\widget\index.pug |
在代码中插入以下带
➕号的那行代码,注意缩进问题1 | #aside-content.aside-content |
二、添加样式美化
2.1、创建样式文件
创建欢迎卡片的样式文件:
1 | [BlogRoot]\themes\butterfly\source\css\_layout\card-welcome.styl |
添加以下样式代码:
1 | #aside-content |
三、JavaScript逻辑实现
3.1 创建JavaScript文件
在静态资源目录创建JS文件:
1 | [BlogRoot]/source/js/card-welcome.js |
3.2 选择定位方案
碎碎念: 由于我觉得调用免费的获取ip地址的api经纬度不是很精确,因此我调用了付费的api 当前我也会提供免费的付费的js代码
方案一: 免费版(推荐新手尝试)
使用免费的IP-API服务,无需注册,但有速率限制。
1 | // 显示欢迎信息 |
方案二 付费版(高精度定位)
我这里采用的是小小api,因为调用的api没有限制,但是有次数限制,所以请自行注册账号,并申请key 官网链接如下: https://api.nsuuu.com/
1 | const longitude = 118.0894; |
4.2 需要在配置文件里面引入这个自定义的js
五、进阶配置 (付费版专用)
如果直接写key写到js里面,会造成严重的token值泄露,因此我将token写到自定义配置文件里面,js读取配置文件这样子就不会造成token值泄露
5.1、 配置环境变量
创建环境变量文件保护API密钥:
1 | [blogRoot]/.env |
添加你的API密钥
1 | IP_LOCATION_API_KEY=你的密钥 |
5.2、加载环境变量脚本
创建Hexo脚本加载环境变量:
1 | [blogRoot]/scripts/load-env.js |
写入以下内容
1 | const fs = require('fs'); |
5.3、传递API密钥到前端
修改主题的配置文件:[blogRoot]themes/butterfly/layout/_partial/config.pug
代码添加即➕号,内容注意格式缩进
1 | let highlightProvider = config.syntax_highlighter || (config.highlight.enable ? 'highlight.js' : config.prismjs.enable ? 'prismjs' : null) |
5.4、在需要的js中引入即可格式如下
1 | const IP_LOCATION_API_KEY = GLOBAL_CONFIG.ipLocationApiKey || ''; |
参考文章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 moh`blog!
评论

.png)



.png)