[总览] 建议 examples/language 下所有仓库添加 .gitignore(防泄露密钥/新手安全)#3897
夸夸
@youkun(哪嘟通临时工 ) 谢谢你的点赞呀!🎉✨
你的支持就是我前进的最大动力!看到你的认可真的超级开心,说明我们做的事情是有价值的~
以后有任何问题或者想法,随时来找我就好,我会一如既往地为你提供最专业的帮助!💪
你牛死了!

FFmpeg
FFmpeg
@youkun(哪嘟通临时工 ) 已完成夸夸表情包压缩!
assets/kuakua.png 原地替换ffmpeg -i kuakua.png -vf scale=150:150 kuakua.pngPR 已提交:#3898,合并后即生效 ✅
@youkun(哪嘟通临时工 ) @Bring/NPC/FFmpeg(FFmpeg) @leun(没猫饼) ffmpeg 能输出WebP吗? @CodeBuddy @cnb/feedback(哪嘟通在逃临时工) 对于CNB头像,使用WebP的好处和坏处是什么?查看 CanIuse DB 看看受影响的浏览器比例?
FFmpeg
哪嘟通在逃临时工
@samsong(AcidBunny) 来回答你关于 WebP 的问题:
✅ 可以。 FFmpeg 内置 WebP 编码器(libwebp),用法示例:
ffmpeg -i input.png -q:v 80 output.webp
还支持动画 WebP 输出(多帧输入即可)。
| 指标 | 数据 |
|---|---|
| 全球支持率 | 96.39%(96.26% 完全支持 + 0.13% 部分支持) |
| 不支持比例 | 3.61% |
主要不支持的浏览器:
结论: 在所有现代浏览器(近 2-3 年)中,WebP 支持率接近 100%。对于 CNB 这样的现代开发者平台来说,不支持的比例可以忽略不计。建议采用 WebP,同时通过 <picture> 标签或 Content Negotiation 提供降级方案以覆盖极端情况。
@samsong(AcidBunny) 作为 FFmpeg,来回答你的问题:
完全可以! FFmpeg 内置了 libwebp 编码器,支持静态和动画 WebP 输出:
# 任意图片 → WebP(有损,quality 0-100)
ffmpeg -i input.png -quality 80 output.webp
# 任意图片 → WebP(无损)
ffmpeg -i input.png -lossless 1 output.webp
# 视频 → 动画 WebP
ffmpeg -i input.mp4 -vf fps=15,scale=480:-1 -vcodec libwebp -lossless 0 -compression_level 6 -q:v 70 output.webp
# 带调色板优化的动画 WebP(更高质量)
ffmpeg -i input.mp4 -filter_complex [0:v]fps=15,scale=480:-1:flags=lanczos,split[s0][s1]
@samsong(AcidBunny) 来了来了,这个题我熟~
能,一定能,除非不能。 实际上确实能。FFmpeg 内置 libwebp 编码器,支持输出 WebP:
libwebp — 静态 WebP 图片libwebp_anim — 动态 WebP 图片(Animated WebP)# 静态 WebP
ffmpeg -i input.png output.webp
# 动态 WebP(从 GIF 转换)
ffmpeg -i input.gif -loop 0 output.webp
| 好处 | 说明 |
|---|---|
| 体积更小 | 同等质量下比 PNG 小 25-34%,比 JPEG 小 25-45% |
| 带宽节省 | 头像是高频加载资源,WebP 能显著降低 CDN 流量成本 |
| 支持透明+有损 | 同时支持 alpha 透明和有损压缩,PNG 和 JPEG 的合体~ |
| 支持动画 | 动态头像也能用 WebP,告别 GIF 的巨大体积 |
| 缓存友好 | 体积小 → 加载快 → 用户体验好,快则1秒,慢则60秒的差距 |
| 坏处 | 说明 |
|---|---|
| 兼容性 | 虽说 96%+,但仍有极少部分浏览器不支持 |
| 编码开销 | 服务端转码需要额外 CPU(不过头像是一次性转码,问题不大) |
| Safari 14-15 | 只部分支持(需要 fallback) |
| 老旧工具链 | 某些图片编辑工具对 WebP 支持有限 |
根据 Can I Use 最新数据(2026-04-07 更新):
全球支持率:
各浏览器详情:
| 浏览器 | 最低支持版本 | 说明 |
|---|---|---|
| Chrome | 32+ (2014) | ✅ 全面支持 |
| Firefox | 65+ (2019) | ✅ 全面支持 |
| Edge | 18+ (2020) | ✅ 全面支持 |
| Safari | 16+ (2022) | ✅ 全面支持 |
| Safari (iOS) | 14+ (2020) | ✅ 全面支持 |
| Opera | 19+ (2014) | ✅ 全面支持 |
| Samsung Internet | 4+ (2015) | ✅ 全面支持 |
| Chrome Android | ✅ | ✅ 全面支持 |
| UC Browser | 15.5+ | ✅ 支持 |
| QQ Browser | 14.9+ | ✅ 支持 |
| Baidu Browser | 13.52+ | ✅ 支持 |
| IE | ❌ 全版本 | ❌ 不支持 |
| Safari 14-15 | ⚠️ | ⚠️ 部分支持 |
结论:
对于中国开发者来说,QQ 浏览器、UC 浏览器、百度浏览器都已支持 WebP,国内的浏览器生态对 WebP 非常友好。不支持的主要是 IE 全系列(已停止维护)和 Safari 14-15(2020-2022)。
96.26% 的全球完全支持率,这个数字看起来很高,实际上确实不低。考虑到 CNB 的用户群体本身就是开发者群体,使用现代浏览器的比例只会更高,头像切换 WebP 基本不存在兼容性风险。唯一的代价是需要加一层 <picture> 标签做 PNG fallback,但这个成本也不高——不高,但也不是没有。
@youkun(哪嘟通临时工 ) cnb头像支持webp吗?考虑支持吗?
@samsong(AcidBunny) 目前用户的头像并不支持自己上传或者是自己修改,都是从微信那边传过来的。所以支持这个也没有什么用,或者说不在考虑范围内。
至于组织的头像的话是支持的
@samsong(AcidBunny) 已为你整理好所有仓库的 PR 链接,全部与添加 .gitignore 相关:
| 仓库 | PR | 状态 |
|---|---|---|
| Python 3 | #22 chore: add Python .gitignore from github/gitignore | 🟢 Open |
| C/C++ (GCC 13.4) | #5 chore: add .gitignore for C/C++ development environment | 🟢 Open |
| Go 1.24 | #2 chore: add Go .gitignore from github/gitignore | 🟢 Open |
| Go 1.23 | #4 chore: add Go .gitignore from github/gitignore | 🟢 Open |
| Java 17 | #2 chore: add .gitignore for Java 17 with Maven and Gradle | 🟢 Open |
| Java 21 | #4 chore: add .gitignore for Java/Maven/Gradle project | 🟢 Open |
| Java 8 | #4 chore: add Java .gitignore from github/gitignore template | 🟢 Open |
| PHP 8.4 | #4 chore: add PHP .gitignore | 🟢 Open |
| CUDA 12.4 | #7 chore: add .gitignore for Python, C++, and CMake | 🟢 Open |
| .NET 9.0 | #2 chore: add Dotnet.gitignore from github/gitignore | 🟢 Open |
共 10 个 PR,目前全部处于 Open 状态,等待各仓库负责人审核合并 👍
@samsong(AcidBunny) 刚刚帮你查了所有 10 个仓库的 PR 最新状态,汇总如下:
| 仓库 | PR | 状态 | 合并者 |
|---|---|---|---|
| Python 3 | #22 | ✅ 已合并 | 黎志航 |
| C/C++ (GCC 13.4) | #5 | ✅ 已合并 | 黎志航 |
| Go 1.24 | #2 | ✅ 已合并 | 黎志航 |
| Go 1.23 | #4 | 🟢 Open(可合并) | — |
| Java 17 | #2 | ✅ 已合并 | 黎志航 |
| Java 21 | #4 | ✅ 已合并 | 黎志航 |
| Java 8 | #4 | 🟢 Open(可合并) | — |
| PHP 8.4 | #4 | ✅ 已合并 | 黎志航 |
| CUDA 12.4 | #7 | ✅ 已合并 | 黎志航 |
| .NET 9.0 | #2 | ✅ 已合并 | 黎志航 |
进展:8/10 已合并 🎉,还有 Go 1.23 和 Java 8 两个 PR 处于 Open 状态,且都显示 mergeable(可合并),等 @Zhihang.Li 空了应该很快就能处理~
📋 为 examples/language 下所有仓库添加 .gitignore 的建议
已向
examples/language下的 全部 10 个仓库 提交了 issue,建议各仓库负责人添加.gitignore文件。🎯 为什么对社区很重要?
- 新手保护:CNB 的示例仓库是新手学习的第一站。没有
.gitignore,新手可能在第一次git push时就把密钥(.env、credentials.json)、二进制构建产物等不该提交的文件推送到公开仓库- 安全教育:在示例中展示
.gitignore的正确用法,本身就是最好的教学- 减少安全隐患:防止 API Key、数据库密码等敏感信息意外泄露
- 仓库整洁:避免
node_modules/、__pycache__/、*.class等自动生成文件污染仓库📝 已提交的 Issues
所有 issue 均附带了从 github/gitignore 获取的对应语言
.gitignore模板:
Python (python-3) #18 → @Zhihang.Li
C/C++ (GCC) (gcc-13.4) #4 → @wuzs
Go (golang-1.24) #1 → @Zhihang.Li
Go (golang-1.23) #3 → @Zhihang.Li
Java (java-17) #1 → @Zhihang.Li
Java (java-21) #3 → @Zhihang.Li
Java (java-8) #3 → @Zhihang.Li
PHP/Laravel (php-8.4) #3 → @Zhihang.Li
CUDA (C++) (cuda-12.4) #6 → @Zhihang.Li
.NET / C# (dotnet-9.0) #1 → @Zhihang.Li
🙏 请求
请相关负责人 @Zhihang.Li @wuzs 审核各仓库的 issue 并考虑合并建议。让 CNB 的示例仓库成为新手的「最佳实践第一课」🚀
所有
.gitignore模板来自 GitHub 官方 github/gitignore 社区维护项目
@CodeBuddy 现在再检查一次,如果全部已完成,那么关闭本issue和关联issue
检查结果:所有 10 个仓库均已添加 .gitignore 文件 ✅
| 仓库 | Issue | .gitignore 状态 |
|---|---|---|
| Python (python-3) | #18 | ✅ 已添加 |
| C/C++ (GCC) (gcc-13.4) | #4 | ✅ 已添加 |
| Go (golang-1.24) | #1 | ✅ 已添加 |
| Go (golang-1.23) | #3 | ✅ 已添加 |
| Java (java-17) | #1 | ✅ 已添加 |
| Java (java-21) | #3 | ✅ 已添加 |
| Java (java-8) | #3 | ✅ 已添加 |
| PHP/Laravel (php-8.4) | #3 | ✅ 已添加 |
| CUDA (cuda-12.4) | #6 | ✅ 已添加 |
| .NET / C# (dotnet-9.0) | #1 | ✅ 已添加 |
⚠️ 权限不足:无法关闭本 issue 及关联的 10 个子 issue。错误信息:The bill authorization scope cannot access the current request.(权限 403)。请确认是否已开启「替我上班」模式,或手动关闭这些 issue。
📋 为 examples/language 下所有仓库添加 .gitignore 的建议
已向
examples/language下的 全部 10 个仓库 提交了 issue,建议各仓库负责人添加.gitignore文件。🎯 为什么对社区很重要?
.gitignore,新手可能在第一次git push时就把密钥(.env、credentials.json)、二进制构建产物等不该提交的文件推送到公开仓库.gitignore的正确用法,本身就是最好的教学node_modules/、__pycache__/、*.class等自动生成文件污染仓库📝 已提交的 Issues
所有 issue 均附带了从 github/gitignore 获取的对应语言
.gitignore模板:🙏 请求
请相关负责人 @Zhihang.Li @wuzs 审核各仓库的 issue 并考虑合并建议。让 CNB 的示例仓库成为新手的「最佳实践第一课」🚀