
Rewards - 一个高度可定制的赞赏展示页 为您的 Hexo 博客打造专属的动态赞赏墙
Rewards - 一个高度可定制的赞赏展示页 为您的 Hexo 博客打造专属的动态赞赏墙
作为一名博主,我们收到的每一份赞赏都凝聚着读者的心意与支持。但手动更新静态的感谢名单不仅繁琐,也缺乏时效性。现在,有了一个更优雅、更自动化的解决方案——Rewards 项目,一个专为个人博客打造的动态赞赏墙。
这不仅仅是一个简单的展示页,利用 Cloudflare Pages 实现全球极速分发,并借助 KV 存储提供高效、低成本的数据读写。最重要的是,它实现了彻底的“配置即代码”,您可以通过简单的环境变量设置,轻松定制页面的每一个细节,而无需触碰一行代码。
本篇文章将作为一份详尽的指南,带您完成两项核心任务:
- 从零开始,在 Cloudflare 上成功部署您自己的 Rewards 赞赏页。
- 手把手教您如何将这个动态赞赏墙无缝集成到您的 Hexo Solitude 主题博客的“关于”页面中。
Rewards - 一个高度可定制的赞赏展示页
这是一个基于 Cloudflare Pages 和 KV 存储构建的、轻量级、高度可定制的赞赏记录展示页面。它允许您轻松地展示收到的赞赏,并通过环境变量进行全方位的个性化配置,无需修改任何代码。
在线体验
前端展示:https://rewards.zrfme.com
后端提交:https://rewards.zrfme.com/admin
界面预览
功能特性
- 🚀 Serverless 架构:完全托管在 Cloudflare 的全球网络上,无需自己的服务器。
- ⚡️ 极速访问:得益于 Cloudflare Pages 的静态站点优化和 CDN 加速。
- 📦 KV 数据存储:使用 Cloudflare KV 作为数据库,读写速度快,成本极低。
- 🎨 高度可定制:从背景图片、标题、二维码到分页数量、高亮金额,几乎所有内容都可以通过环境变量进行配置。
- 📱 响应式设计:在桌面和移动设备上都有良好的视觉效果。
- 🔒 安全后台:提供一个独立的
/admin
页面,通过密码保护来提交新的赞赏记录。 - 🌟 金额高亮:可以自定义金额阈值,为“大额”赞赏提供特殊颜色高亮。
- 📄 自动分页:当赞赏记录过多时,自动生成分页导航。
- 💨 平滑加载:优雅的加载动画和内容淡入效果,提升用户体验。
部署指南
第一步:获取代码
首先打开 https://github.com/shaoyouvip/Rewards 点击项目页面右上角 Starred(求个星星!!!) 然后点击 Fork 按钮,将此项目复制到您自己的 GitHub 仓库中。
第二步:创建 KV 命名空间
- 打开 https://dash.cloudflare.com/ 登录到您的 Cloudflare 账户。
- 在左侧菜单中,进入 存储和数据库 -> KV。
- 点击 创建命名空间,为您的命名空间取一个名字,例如
REWARDS_KV
,然后点击创建。
第三步:在 Cloudflare Pages 中创建项目
- 在 Cloudflare 仪表板中,进入 Workers 和 Pages -> Pages 选项卡。
- 点击 创建项目 -> Pages -> 导入现有 Git 存储库。
- 选择您刚刚 Fork 的 GitHub 仓库。
- 在“设置构建和部署”页面,填写以下信息:
- 构建命令 (Build command): (留空,不需要任何命令)
- 构建输出目录 (Build output directory):
public
- 点击“保存并部署”。
第四步:绑定 KV 和设置环境变量
- 等待第一次部署完成后,点击下方的继续按钮,进入您刚刚创建的 Pages 项目的控制台。
- 点击 设置 -> 绑定 -> KV 命名空间。
- 点击 添加绑定:
- 变量名称:
REWARDS_KV
- KV 命名空间:选择您在第二步中创建的
REWARDS_KV
。 - 点击 保存。
- 变量名称:
- 现在,进入 设置 -> 环境变量,在这里配置您的个性化信息。这是最关键的一步!
- 点击 添加变量,然后根据下面的“配置说明”添加您需要的变量。必须设置
FORM_SECRET
以及您自己的收款码链接!变量参考下方详细说明
- 点击 添加变量,然后根据下面的“配置说明”添加您需要的变量。必须设置
- 完成变量设置后,回到项目的部署页面,点击重新部署最新的版本。
恭喜! 您的专属赞赏页面现在已经部署完成了。
⚙️ 配置说明 (环境变量)
您可以通过在 Cloudflare Pages 项目的 设置 -> 环境变量 中添加以下变量来自定义您的页面。必须至少配置前三项。
变量名称 | 说明 | 默认值 |
---|---|---|
FORM_SECRET |
(必须) 访问 /admin 页面提交记录时所需的密码。 |
无 |
CONFIG_QR_WECHAT |
(必须) 您的微信收款二维码图片链接。 | 您的二维码链接 |
CONFIG_QR_ALIPAY |
(必须) 您的支付宝收款二维码图片链接。 | 您的二维码链接 |
CONFIG_PAGE_TITLE |
浏览器标签页上显示的标题。 | 周润发的赞赏页面 |
CONFIG_BANNER_TITLE |
页面顶部大标题下的副标题。 | 您的赞赏,是我的续命咖啡~ |
CONFIG_BACKGROUND_IMAGE_URL |
整个页面的背景图片链接。 | /img/bj.webp (项目内图片) |
CONFIG_FAVICON |
浏览器标签页上显示的图标链接。 | /img/icon.webp (项目内图片) |
CONFIG_INFO_TEXT |
页面底部信息框中的提示文字。 | 如需修改昵称信息... |
CONFIG_INFO_EMAIL |
页面底部信息框中显示的联系邮箱。 | zrf@zrf.me |
CONFIG_FOOTER_HTML |
最底部的版权信息,支持 HTML。 | 周润发: <a href="https://d.zrf.me/blog">博客</a> |
CONFIG_ROWS_PER_PAGE |
每页显示的赞赏记录数,默认为10量。 | 10 |
CONFIG_HIGHLIGHT_PRIMARY |
主要高亮(红色)的金额门槛。 | 100 |
CONFIG_HIGHLIGHT_SECONDARY |
次要高亮(黄色)的金额门槛。 | 20 |
✍️ 如何使用
部署完成后,您可以通过以下链接访问您的赞赏页:
- 主页:
https://你的项目地址
- 说明:这是公开的赞赏展示页面,所有人都可以访问查看。
- 后台:
https://你的项目地址/admin
- 说明:这是用于手动添加赞赏记录的后台页面,需要输入密码才能提交。
- JSON数据:
https://你的项目地址/api/rewards
- 说明:这是一个公开的 API 链接,它会以 JSON 格式返回所有赞赏数据。您可以将此链接用于其他项目或进行二次开发。
后台提交说明
访问 https://你的项目地址/admin
提交页面后,您需要填写以下信息:
- 赞赏者名字: (必需) 填写赞赏者的昵称。
- 金额: (必需) 填写收到的具体金额。
- 提交时间 (可选): 如果留空,系统会自动记录为当前时间。您也可以点击选择一个过去的时间点进行补录。
- 提交密码: (必需) 输入您在 Cloudflare 环境变量
FORM_SECRET
中设置的密码。
填写完毕后,点击“提交”按钮即可。
Solitude主题博客 接入赞赏页
本教程将指导您如何将 Rewards 赞赏页无缝集成到您的 Hexo Solitude 主题博客中,实现一个从 API 动态更新的赞赏墙。
- 提示: 这个方法理论上也适用于其他类似主题(如安知鱼),只需根据您的主题文件结构稍作调整即可。
文件修改概览
在开始之前,请熟悉我们即将修改的几个核心文件:
1 | . |
第一部分:优化文章底部的“赞赏名单”链接
此步骤旨在让您每篇文章底部的“赞赏作者”弹窗,可以正确链接到我们刚刚部署好的独立赞赏页面。
我们需要更改的地方有博客文章页面底部 赞赏作者 这个按钮的 赞赏名单 页面。
打开博客路径: _config.solitude.yml 搜索 打赏 或 Reward 关键词,找到如下配置把你的 赞赏名单 替换为你部署好的页面网址即可,如下图。
1 | # Reward |
第二部分:在“关于”页面创建动态赞赏列表
此步骤将在您的“关于”页面创建一个从 API 实时拉取数据的赞赏墙,并带有30分钟的浏览器缓存。
步骤 1:向 index.md
注入核心脚本
- 打开博客路径: source\about\index.md 复制下方代码进去,赞赏API改为你自己的, 格式: https://你的项目地址/api/rewards ,如下图。
1 | <script> |
步骤 2:修改 about.pug
布局
此步骤是为了让 index.md
中注入的脚本能够被正确渲染到页面上。
- 打开博客路径: themes\solitude\layout\includes\page\about.pug 在最下方添加一个
!= page.content
与上方include
保持一样的缩进,如下图。
1 | if site.data.about |
步骤 3:配置 about.yml 占位符
此步骤为赞赏卡片提供基础的静态内容和加载时的占位符,以优化用户体验。
- 打开博客路径:source_data\about.yml 拉到最下方找到 打赏列表 替换下方代码进去把原有的覆盖,如下图。
1 | # 打赏列表 |
完成以上所有步骤并重新部署您的 Hexo 博客后,您就拥有了一个功能强大、外观精美且完全自动化的赞赏系统!
特别鸣谢
- 技术帮助: 清羽飞扬
- 灵感启发: 张洪 (zhheo)
- AI 编程助理: Gemini
- 感谢您的赞赏