|
14 | 14 |
|
15 | 15 | **Zig 语言圣经** 是一份开源的 Zig 语言综合教程,旨在为中文 Zig 爱好者提供一份高质量的学习资源,内容涵盖从基础语法到高级特性的方方面面。 |
16 | 16 |
|
| 17 | +## 📖 在线阅读 |
| 18 | + |
| 19 | +- **官方网站**: [https://course.ziglang.cc/](https://course.ziglang.cc/) |
| 20 | +- **GitHub Pages**: [https://zigcc.github.io/zig-course/](https://zigcc.github.io/zig-course/) |
| 21 | + |
17 | 22 | ## ✨ 内容特色 |
18 | 23 |
|
19 | 24 | 本教程覆盖了 Zig 学习和实践中的多个重要领域: |
20 | 25 |
|
21 | | -- **环境配置**: 指导如何安装和配置 Zig 开发环境。 |
22 | | -- **基础入门**: 包括变量、类型、流程控制、错误处理等基础知识。 |
23 | | -- **高级主题**: 深入探讨 `comptime`、异步、内存管理、C 语言交互等高级特性。 |
24 | | -- **工程实践**: 涵盖构建系统、包管理、单元测试和代码风格指南。 |
25 | | -- **版本示例**: 提供与 Zig 不同版本相对应的代码示例。 |
| 26 | +- **环境配置**: 指导如何安装和配置 Zig 开发环境,支持多种编辑器配置 |
| 27 | +- **基础入门**: 包括变量、类型、流程控制、错误处理等基础知识 |
| 28 | +- **高级主题**: 深入探讨 `comptime`、异步、内存管理、C 语言交互等高级特性 |
| 29 | +- **工程实践**: 涵盖构建系统、包管理、单元测试和代码风格指南 |
| 30 | +- **版本兼容**: 提供与 Zig 0.11-0.15 版本相对应的代码示例 |
| 31 | +- **实战案例**: 包含 TCP 服务器等实际项目示例 |
| 32 | + |
| 33 | +## 📁 项目结构 |
| 34 | + |
| 35 | +``` |
| 36 | +zig-course/ |
| 37 | +├── .github/ # GitHub Actions 工作流 |
| 38 | +│ ├── workflows/ # CI/CD 配置 |
| 39 | +│ └── dependabot.yml # 依赖更新配置 |
| 40 | +├── build/ # 不同 Zig 版本的构建脚本 |
| 41 | +│ ├── 0.11.zig # Zig 0.11 构建配置 |
| 42 | +│ ├── 0.12.zig # Zig 0.12 构建配置 |
| 43 | +│ └── ... # 其他版本 |
| 44 | +├── course/ # 教程主要内容 |
| 45 | +│ ├── .vitepress/ # VitePress 配置 |
| 46 | +│ │ ├── config.mts # 站点配置 |
| 47 | +│ │ ├── theme/ # 主题定制 |
| 48 | +│ │ └── ... |
| 49 | +│ ├── basic/ # 基础教程 |
| 50 | +│ │ ├── basic_type/ # 基本类型 |
| 51 | +│ │ ├── advanced_type/ # 高级类型 |
| 52 | +│ │ ├── process_control/ # 流程控制 |
| 53 | +│ │ └── ... |
| 54 | +│ ├── advanced/ # 高级教程 |
| 55 | +│ │ ├── comptime.md # 编译期计算 |
| 56 | +│ │ ├── async.md # 异步编程 |
| 57 | +│ │ ├── memory_manage.md # 内存管理 |
| 58 | +│ │ └── ... |
| 59 | +│ ├── engineering/ # 工程实践 |
| 60 | +│ │ ├── build-system.md # 构建系统 |
| 61 | +│ │ ├── package_management.md # 包管理 |
| 62 | +│ │ └── ... |
| 63 | +│ ├── environment/ # 环境配置 |
| 64 | +│ ├── examples/ # 示例项目 |
| 65 | +│ ├── code/ # 代码示例(按版本分类) |
| 66 | +│ │ ├── 11/ # Zig 0.11 示例 |
| 67 | +│ │ ├── 12/ # Zig 0.12 示例 |
| 68 | +│ │ └── ... |
| 69 | +│ ├── picture/ # 图片资源 |
| 70 | +│ ├── public/ # 静态资源 |
| 71 | +│ └── update/ # 版本更新说明 |
| 72 | +├── draw/ # 绘图源文件 |
| 73 | +├── build.zig # 主构建文件 |
| 74 | +├── package.json # Node.js 依赖配置 |
| 75 | +├── CONTRIBUTING.md # 贡献指南 |
| 76 | +├── CODE_OF_CONDUCT.md # 行为准则 |
| 77 | +└── README.md # 项目说明 |
| 78 | +``` |
| 79 | + |
| 80 | +## 🚀 本地开发 |
| 81 | + |
| 82 | +### 环境要求 |
| 83 | + |
| 84 | +- **Node.js**: 推荐使用 [Bun](https://bun.sh/) 作为包管理器 |
| 85 | +- **Zig**: 支持 0.11-0.15 版本 |
| 86 | +- **autocorrect**: 用于中英文排版优化(可选) |
| 87 | + |
| 88 | +### 快速开始 |
| 89 | + |
| 90 | +```sh |
| 91 | +# 克隆仓库 |
| 92 | +git clone https://github.com/zigcc/zig-course.git |
| 93 | +cd zig-course |
| 94 | + |
| 95 | +# 安装依赖 |
| 96 | +bun install |
| 97 | + |
| 98 | +# 启动开发服务器 |
| 99 | +bun dev |
26 | 100 |
|
27 | | -## 🚀 如何阅读 |
| 101 | +# 在浏览器中访问 http://localhost:5173 |
| 102 | +``` |
28 | 103 |
|
29 | | -本项目使用 VitePress 构建。您可以直接在本地启动开发服务器以阅读最新内容: |
| 104 | +### 可用命令 |
30 | 105 |
|
31 | 106 | ```sh |
32 | | -bun i # 安装依赖 |
33 | | -bun dev # 启动热更开发服务 |
| 107 | +bun dev # 启动开发服务器(热重载) |
| 108 | +bun build # 构建生产版本 |
| 109 | +bun preview # 预览构建结果 |
| 110 | +bun format # 格式化代码(prettier + zig fmt + autocorrect) |
| 111 | +bun check # 检查代码格式 |
| 112 | +bun export-pdf # 导出 PDF 版本 |
34 | 113 | ``` |
35 | 114 |
|
36 | 115 | ## 🤝 参与贡献 |
37 | 116 |
|
38 | | -欢迎各位志同道合的“道友”参与贡献本文档,并一起壮大 zig 中文社区! |
| 117 | +我们热烈欢迎各位"道友"参与贡献,一起壮大 Zig 中文社区! |
39 | 118 |
|
40 | | -贡献方法: |
| 119 | +### 贡献方式 |
41 | 120 |
|
42 | | -- Fork 本文档仓库 |
43 | | -- 创建一个新的分支,请勿直接使用主分支进行修改 |
44 | | -- 发起 Pull Request |
45 | | -- 等待 Review |
46 | | -- 合并到上游仓库,并由 GitHub Action 自动构建 |
| 121 | +1. **内容贡献** |
| 122 | + - 修正错误和改进现有内容 |
| 123 | + - 添加新的章节或示例 |
| 124 | + - 翻译和本地化改进 |
| 125 | + - 添加代码示例和实战案例 |
47 | 126 |
|
48 | | -**开发命令:** |
| 127 | +2. **技术贡献** |
| 128 | + - 改进网站功能和用户体验 |
| 129 | + - 优化构建流程和 CI/CD |
| 130 | + - 修复 bug 和性能问题 |
49 | 131 |
|
50 | | -```sh |
51 | | -bun i # 安装依赖 |
52 | | -bun dev # 启动热更开发服务 |
53 | | -bun format # 运行 prettier, zig fmt 和 autocorrect 格式化程序 |
54 | | -bun run build # 构建产物 |
55 | | -bun run preview # 运行预览 |
56 | | -``` |
| 132 | +3. **社区贡献** |
| 133 | + - 参与讨论和问题解答 |
| 134 | + - 推广和分享项目 |
| 135 | + - 提供反馈和建议 |
| 136 | + |
| 137 | +### 贡献流程 |
| 138 | + |
| 139 | +1. **Fork 仓库** |
| 140 | + |
| 141 | + ```sh |
| 142 | + # 在 GitHub 上 Fork 本仓库 |
| 143 | + git clone https://github.com/YOUR_USERNAME/zig-course.git |
| 144 | + cd zig-course |
| 145 | + ``` |
| 146 | + |
| 147 | +2. **创建功能分支** |
| 148 | + |
| 149 | + ```sh |
| 150 | + git checkout -b feature/your-feature-name |
| 151 | + # 或 |
| 152 | + git checkout -b fix/your-fix-name |
| 153 | + ``` |
| 154 | + |
| 155 | +3. **进行修改** |
| 156 | + - 遵循现有的代码风格和文档格式 |
| 157 | + - 确保所有代码示例都能正常运行 |
| 158 | + - 运行 `bun format` 格式化代码 |
| 159 | + |
| 160 | +4. **测试修改** |
| 161 | + |
| 162 | + ```sh |
| 163 | + bun dev # 本地测试 |
| 164 | + bun build # 确保构建成功 |
| 165 | + ``` |
| 166 | + |
| 167 | +5. **提交更改** |
| 168 | + |
| 169 | + ```sh |
| 170 | + git add . |
| 171 | + git commit -m "feat: 添加新功能描述" |
| 172 | + # 或 |
| 173 | + git commit -m "fix: 修复问题描述" |
| 174 | + ``` |
| 175 | + |
| 176 | +6. **推送并创建 PR** |
| 177 | + ```sh |
| 178 | + git push origin feature/your-feature-name |
| 179 | + # 在 GitHub 上创建 Pull Request |
| 180 | + ``` |
| 181 | + |
| 182 | +### 贡献规范 |
| 183 | + |
| 184 | +- **提交信息**: 使用 [约定式提交](https://www.conventionalcommits.org/zh-hans/) 格式 |
| 185 | +- **代码风格**: 运行 `bun format` 确保代码格式一致 |
| 186 | +- **文档规范**: |
| 187 | + - 中英文之间添加空格 |
| 188 | + - 使用中文标点符号 |
| 189 | + - 代码块指定语言类型 |
| 190 | +- **分支命名**: |
| 191 | + - 功能: `feature/功能描述` |
| 192 | + - 修复: `fix/问题描述` |
| 193 | + - 文档: `docs/文档更新` |
| 194 | + |
| 195 | +### 内容编写指南 |
| 196 | + |
| 197 | +1. **Markdown 格式** |
| 198 | + - 使用标准 Markdown 语法 |
| 199 | + - 代码块指定语言 `zig` |
| 200 | + - 适当使用表格和列表 |
| 201 | + |
| 202 | +2. **代码示例** |
| 203 | + - 确保代码能在对应 Zig 版本下运行 |
| 204 | + - 添加必要的注释说明 |
| 205 | + - 提供完整的可运行示例 |
| 206 | + |
| 207 | +3. **图片和资源** |
| 208 | + - 图片放在 `course/picture/` 目录下 |
| 209 | + - 使用相对路径引用 |
| 210 | + - 提供 alt 文本描述 |
| 211 | + |
| 212 | +### 版本兼容性 |
| 213 | + |
| 214 | +本项目支持多个 Zig 版本,在贡献代码时请注意: |
| 215 | + |
| 216 | +- 在 `course/code/` 目录下按版本分类存放示例代码 |
| 217 | +- 确保代码示例在对应版本下能正常编译运行 |
| 218 | +- 如有版本差异,请在文档中明确说明 |
| 219 | + |
| 220 | +## 📋 开发注意事项 |
| 221 | + |
| 222 | +- **包管理器**: 本项目使用 [Bun](https://bun.sh/),请勿提交其他包管理器的配置文件 |
| 223 | +- **依赖更新**: 更新依赖前请参考 [Bun Lockfile 文档](https://bun.sh/docs/install/lockfile) |
| 224 | +- **格式化**: 提交前务必运行 `bun format` 进行代码格式化 |
| 225 | +- **构建测试**: 确保 `bun build` 能成功构建 |
| 226 | + |
| 227 | +## 📄 许可证 |
| 228 | + |
| 229 | +本项目采用 [MIT 许可证](LICENSE),欢迎自由使用和分发。 |
| 230 | + |
| 231 | +## 🙏 致谢 |
| 232 | + |
| 233 | +感谢所有为本项目做出贡献的开发者和 Zig 中文社区的支持! |
| 234 | + |
| 235 | +## 📞 联系我们 |
57 | 236 |
|
58 | | -> [!NOTE] |
59 | | -> 请自行安装 `bun` (建议也安装 `autocorrect`,并且在提交前运行 `bun format`) |
| 237 | +- **GitHub Issues**: [提交问题和建议](https://github.com/zigcc/zig-course/issues) |
| 238 | +- **GitHub Discussions**: [参与社区讨论](https://github.com/zigcc/zig-course/discussions) |
60 | 239 |
|
61 | | -> [!NOTE] |
62 | | -> 本文档所使用的构建工具为 [bunjs](https://bun.sh/),在提交时请勿将其他 nodejs 的包管理工具的额外配置文件添加到仓库中。 |
| 240 | +--- |
63 | 241 |
|
64 | | -> 如需要更新依赖,请参照此处 [Lockfile](https://bun.sh/docs/install/lockfile) 先设置 git 使用 bun 来 diff 文件! |
| 242 | +如果这个项目对你有帮助,请给我们一个 ⭐️ Star! |
0 commit comments