惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
WordPress大学
WordPress大学
C
Check Point Blog
GbyAI
GbyAI
U
Unit 42
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
I
InfoQ
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog
Vercel News
Vercel News
博客园 - 【当耐特】
美团技术团队
小众软件
小众软件
S
SegmentFault 最新的问题
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Cloudflare Blog
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog

洛屿的小站

脉冲线性加减速曲线的DDA实现 STM32F407 IAR环境下uC/OS-III移植完整指南 STM32 UCOS3+HAL库集成中的FPU HardFault问题 一种简单的卡尔曼滤波器设计 Cadence - 应律而动,落指成音 Zephyr - 聆风之息,为你而奏 不改一行插件代码,实现消息优先级与阻断 洛玖定时任务系统 在 butterfly 主题中添加首页点集动画(基于p2line项目) 你好,2026 stm32f4xx-ads1256驱动 stm32f4xx-ad9854并行驱动 主动式网站状态监测实现及其应用 右键菜单加入用Trae打开文件和文件夹 三角洲行动ID映射表 洛玖SDK说明 为网页文章开头添加原文连接 Proteus中555定时器仿真问题 装饰器 洛玖开发日记 STS3032舵机获取力矩输出 kotlin网页前后端那些事 mspm0g3507-ad9850 奇怪的bug Paddle模型转PaddleLite 人工智能考核 构建一个yolov3网络 yolo和paddle模型常见输出参数 PaddleDetection 随便写的一些东西
Hexo-Butterfly主题在主页添加GitHub贡献日历
洛屿 · 2025-03-28 · via 洛屿的小站

本文介绍如何在博客添加GitHub贡献日历,效果如下:


需要用到的插件及API :

注:该插件来自博主 百里飞洋 基于原开源插件 hexo-github-calendar 、API python_github_calendar_api 改造

前端Hexo插件:https://github.com/Barry-Flynn/hexo-github-calendar

后端API部署:https://github.com/Barry-Flynn/python_github_calendar_api

作者: 百里飞洋 Barry-Flynn
链接: https://blog.meta-code.top/2022/03/15/2022-41/
来源: 百里飞洋


安装依赖

1
npm i @barry-flynn/hexo-github-calendar --save

或者 使用 cnpm ,速度更快

1
cnpm i @barry-flynn/hexo-github-calendar --save

添加配置

在 Hexo 项目根目录_config.yml 文件最后面添加如下配置

注意:在 Hexo 的配置文件中添加,而不是主题的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# hexo-github-canlendar
# 贡献度热力图插件 https://github.com/Barry-Flynn/hexo-github-calendar
githubcalendar:
enable: true # 是否启用本插件
enable_page: / # 要生效的页面,如 / 首页,/about/ 介绍页等
user: luoy-oss # GitHub 用户名
layout:
type: id
name: recent-posts
index: 0
githubcalendar_html: '<div class="recent-post-item" style="width:100%;height:auto;padding:10px;"><div id="github_loading" style="width:10%;height:100%;margin:0 auto;display: block"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50" xml:space="preserve"><path fill="#d0d0d0" d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z" transform="rotate(275.098 25 25)"><animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="0.6s" repeatCount="indefinite"></animateTransform></path></svg></div><div id="github_container"></div></div>'
pc_minheight: 280px
mobile_minheight: 0px
# 贡献统计的梯度色卡值,可自行调整
color: "['#ebedf0', '#fdcdec', '#fc9bd9', '#fa6ac5', '#f838b2', '#f5089f', '#c4067e', '#92055e', '#540336', '#48022f', '#30021f']"
api: https://github-calendar.drluo.top/api
# 推荐填写你自建的API接口,公用api随时可能会失效
api: https://github-calendar.drluo.top/api
# 推荐下载后使用本地文件
calendar_js: /js/hexo_githubcalendar.js # 本地文件,请下载到主题文件夹的source目录下
plus_style: ""

下载 hexo_githubcalendar.js 到你的主题文件夹的 source目录,如 themes\butterfly\source\js

然后执行hexo三连

1
hexo clean && hexo g && hexo s

完成部署

不绑定自己的域名

可以直接不进行api配置,这时会使用默认的api

1
2
githubcalendar:
# api: 注释掉api部分

绑定自己的域名

如果追求稳定性,可以选择绑定自己的域名:

1. 自建API接口

由于公共API随时可能失效,所以推荐自建API接口,使用Vercel部署。

先将 python_github_calendar_api By Barry-Flynn Fork 到自己的Github

fork

登录 Vercel 后,点击Add New.. => Project

vercel

选择导入的项目,当然如果仓库不是很多的话可以直接看到最近创建的仓库,点击 import导入

choose

然后点击Deploy 进行部署

deploy

直接点击 Add Domain

domain

添加你想要的域名,例如此处我要添加的域名为 github-calendar-api.drluo.top

add-domain

添加后出现提示,要求添加一条CNAME记录,指向cname.vercel-dns.com

cname1

按照提示添加一条CNAME记录:

cname3

为了提升访问速度也可以使用加速节点 vercel.cdn.yt-blog.top 或者 vercel.cdn.cyfan.top

cname3

关于加速节点的介绍可参考文章 推一下 Vercel 加速节点

添加解析记录后页面会自动刷新,等待片刻校验即可通过

verify

检验通过后可直接点击域名进行预览(提示404错误页面,可以忽略,我们实际访问的路径其实是 /api?user=xxxxx):

github-calendar.drluo.top1

如果刷新多次访问均提示无法访问可尝试更换其他域名

github-calendar.drluo.top2

如果依然提示 INTERNAL_SERVER_ERROR 500错误,错误码 FUNCTION_INVOCATION_FAILED则说明当前

Node的版本不支持。

将默认Node版本从20.x 改为 18.x:

node20xto18x

保存后 打开 Deployments 页面 选择 Redeploy 进行重新部署

redeploy

重新部署成功后再次刷新刚才的页面(注意添加user参数,例如:github-calendar.drluo.top/api/?user=luoy-oss

访问后可以显示数据即代表部署完成:

finish

然后修改配置文件就可以使用你自己的API了

1
2
githubcalendar:
api: https://github-calendar.drluo.top/api

最后

有什么不懂的,欢迎加群询问哦!

洛の小窝

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 洛屿的小站

打赏

  • wechat

    wechat

  • alipay

    alipay