一个用于生成 LeetCode 个人卡片的工具。当前卡片为极简风格,包含用户名、站内排名、总解题数(圆环动画)与按难度划分的进度条(动画)。
- 极简信息:仅显示用户名、排名、总解题数和难度进度条
- 动画效果:使用 SMIL 与渐显动画,圆环与三条进度条会按比例动态绘制
- 纯 SVG 输出:生成的
stats/<username>.svg可直接在浏览器中打开 - 元数据输出:额外生成
stats/<username>.json,包含totalSolved等信息 - CI 友好:工作流仅在解题总数增加时才提交代码,避免因排名波动触发提交
npm install- 设置用户名(可选,默认
matthewhan)
export LEETCODE_USERNAME="your_username"- 生成卡片
# 默认主题(light)
npm run generate
# 指定主题(保留参数,当前样式以固定色为主)
npm run generate:light
npm run generate:dark
npm run generate:nord
# 或者直接用环境变量
THEME=dark npm run generate生成文件位于:
stats/<username>.svgstats/<username>.json
- 在其他 README 中引用(示例):
工作流:.github/workflows/generate-leetcode-card.yml
- 定时与手动触发
- 运行脚本生成
stats/<username>.svg与stats/<username>.json - 比较上一次提交的
stats/<username>.json中totalSolved - 仅当
totalSolved增加时才git add stats && commit && push - 需要在仓库 Secrets 配置
PAT
LEETCODE_USERNAME:LeetCode 用户名(默认matthewhan)THEME:light|dark|nord(保留参数;当前样式主色通过内联样式定义,若需自定义可直接编辑scripts/generate_svg.js中的<style>部分)
- 为什么看不到动画?
- 某些平台的 SVG 渲染可能不播放 SMIL 动画。建议在浏览器直接打开生成的 SVG 或使用 raw 链接查看。
MIT License