更新日志
- 更新精灵图生成器,修改缺省的本地文件库的位置,修复
db.json异常膨胀的 BUG
- 窄屏不再添加 css 动画
- 精灵图支持拆分
- 改进精灵图生成器
- 发布初代版本
该教程不适合小白食用,需要有一定的基本功!
教程中没有支持配置项,如果你希望支持配置项的话可以自行修改。
魔改
首先需要修改 pug,修改\layout\includes\page\flink.pug为:
1 | |
然后添加样式,修改\source\css\_page\flink.styl为:
1 | |
编写 YML
然后我们还需要编写友链的 YML 文件,格式要求如下:
1 | |
生成精灵图
接下来我们需要生成一个精灵图,有两种选择:
- 手动拼接
- 使用工具自动生成
前者的话找一个图片编辑软件自己一个一个按顺序拼接起来就可以了,每个头像必须为正方形且大小相同、纵向排列。
我写了一个自动化生成的工具,可以供小伙伴们使用:
该软件使用 Kotlin 编写,运行环境的最低要求为 JRE8,使用时通过命令启动即可:
1 | |
目前支持的参数有:
| 参数名 | 值类型 | 解释(缺省值) |
|---|---|---|
yml | String | 友链文件的路径(./source/_data/link.yml) |
output | String | 输出文件的路径,不带拓展名(./sprites/avatar) |
size | Int | 单个头像的大小(120) |
retry | Int | 网络拉取重试次数(2) |
limit | Int | 每张精灵图的头像数量限制,填 <= 0 的数表明无限制(0) |
format | String | 输出的图像格式,支持 jpg 和 png(jpg) |
local | String | 本地图像库地址(./.sprite_data/) |
timeout | Int | 网络拉取超时时间,单位 ms(10000) |
该工具支持解析友链 YML 的信息,然后拼接出图片,只支持导出 jpg 格式。
YML 的格式要求如下:
1 | |
工具支持解析ImageIO.read支持的所有图像格式,同时附加webp格式支持,基本覆盖常用格式,解析图像时使用图像的二进制数据判断图像格式。
本地图像库用于自动替换友链的头像,比如有如下 yaml:
1 | |
工具会在本地图像库中检查目录中是否存在名为kmar.*的文件,如果有的话会直接使用本地图像库中的图片,不会发起网络请求。
在本地库中查找时,会使用link的域名(不带二级域名和顶级域名)作为文件名称,比如:
https://kmar.top/- kmarhttps://www.kmar.top/- kmarhttps://abc.github.io/- github
如果本地图像库中存在多个文件名一致但拓展名不一致的文件,会选择最后一个。
工具在拉取文件时的请求头设置如下:
1 | |
当拉取文件遇到 403 错误时,会尝试将referer设置为空,然后重新进行拉取(如果没有超出重试次数限制的话)。
创作不易,扫描下方打赏二维码支持一下吧ヾ(≧▽≦*)o
























