感谢你对 SnapImg 的关注!我们欢迎任何形式的贡献。
如果你发现了 bug,请创建一个 Issue,包含以下信息:
- 问题的简要描述
- 复现步骤
- 期望的行为
- 实际的行为
- 截图(如果适用)
- 环境信息(浏览器、操作系统等)
如果你有新功能的想法,请先创建一个 Issue 讨论:
- 描述你想要的功能
- 解释为什么这个功能有用
- 如果可能,提供实现思路
- Fork 这个仓库
- 创建你的功能分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建一个 Pull Request
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建
npm run build
# 代码检查
npm run lintcargo run --manifest-path server-rs/Cargo.toml
cargo test --manifest-path server-rs/Cargo.toml
cargo clippy --manifest-path server-rs/Cargo.toml --all-targets -- -D warnings- 使用 TypeScript
- 遵循 ESLint 配置
- 组件使用函数式组件 + Hooks
- 使用 Tailwind CSS 进行样式设计
- 遵循
rustfmt与严格 Clippy - 公共行为必须有测试,错误不得泄露敏感信息
- 压缩路径必须提供逐像素或系数级无损证据
提交信息请遵循以下格式:
<type>: <description>
[optional body]
类型(type):
feat: 新功能fix: 修复 bugdocs: 文档更新style: 代码格式调整refactor: 代码重构test: 测试相关chore: 构建/工具相关
示例:
feat: 添加 AVIF 格式支持
fix: 修复深色模式下文字颜色问题
docs: 更新 README 安装说明
Thank you for your interest in SnapImg! We welcome all forms of contributions.
If you find a bug, please create an Issue with the following information:
- Brief description of the issue
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
- Environment info (browser, OS, etc.)
If you have an idea for a new feature, please create an Issue first:
- Describe the feature you want
- Explain why it would be useful
- Provide implementation ideas if possible
- Fork this repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Create a Pull Request
npm install
npm run devcargo run --manifest-path server-rs/Cargo.toml
cargo test --manifest-path server-rs/Cargo.toml
cargo clippy --manifest-path server-rs/Cargo.toml --all-targets -- -D warnings- Use TypeScript
- Follow ESLint configuration
- Use functional components with Hooks
- Use Tailwind CSS for styling
- Follow
rustfmtand strict Clippy - Test public behavior and do not expose sensitive error details
- Provide pixel- or coefficient-level evidence for lossless codec paths
<type>: <description>
[optional body]
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Code formattingrefactor: Code refactoringtest: Testingchore: Build/tooling
Examples:
feat: add AVIF format support
fix: fix text color in dark mode
docs: update README installation guide