下载按钮使用示例

462 字
2 分钟
下载按钮使用示例
下载按钮使用示例

本文演示 Firefly 的文章页下载按钮功能,支持两种调用方式,且每个下载项都可以单独设置访问密码。

方式一:frontmatter 声明#

在文章头部用 downloads 字段声明下载项,文章渲染后会在正文下方自动生成「资源下载」区块:

---
title: 我的文章
downloads:
- name: 示例压缩包
url: /downloads/demo.zip
size: 4.2 MB
password: your-password # 可选,独立于文章密码
hint: 提示信息 # 可选
icon: fa7-solid:file-zipper # 可选
---

支持字段:

字段必填说明
url是文件地址,支持站内绝对路径 /xxx、相对路径与 http(s) 外链
name否按钮文字,留空时使用 downloadConfig.defaultName
size否文件大小展示文本,如 4.2 MB
password否该下载项的独立密码,留空则不加密
hint否密码提示,在密码框中显示
icon否图标名,支持 Iconify 名或 zip / file / image / lock 关键字

方式二:正文指令#

在正文任意位置插入 ::download 指令即可:

::download{name="内联下载按钮" url="/downloads/demo.zip" desc="正文内插入的单个下载项" size="1.1 MB"}

带密码的写法:

::download{name="加密资源" url="/downloads/protected.zip" desc="需要密码才能下载" size="2.6 MB" code="x9y8" password="firefly2025" hint="演示密码:firefly2025"}

下面是一个实际渲染的按钮:

内联下载按钮示例
1.1 MB

加密说明#

  • 设置 password 后,构建期会将其转为 SHA-256 哈希,明文密码不会出现在任何输出文件中;
  • 点击按钮时弹出密码框,前端用 WebCrypto 计算同样的哈希并比对,校验通过才会触发下载;
  • 该密码与文章本身的 password 完全独立,互不影响;
  • 由于是纯静态站点,校验发生在浏览器端,因此它属于「访问门禁」而非强加密。如需真正的文件加密,可将文件预加密后放到 CDN,再把下载地址填入 url。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
下载按钮使用示例
https://www.3x3.top/posts/download-button-demo/
作者
羡鱼
发布于
2025-01-05
许可协议
CC BY-NC-SA 4.0
资源下载
Firefly 主题压缩包
完整主题源码,含全部组件与配置示例·4.2 MB
加密资源包(需密码)
需要密码加密演示包,输入密码后自动下载·12.8 MB

评论区

Profile Image of the Author
羡鱼
夫唯不争,故天下莫能与之争。
标签
文章目录