Skip to content

Commit a0c244e

Browse files
refactor: new README
1 parent 106f470 commit a0c244e

4 files changed

Lines changed: 420 additions & 545 deletions

File tree

CONTRIBUTING.md

Lines changed: 161 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -1,177 +1,161 @@
1-
# 贡献指南
2-
3-
感谢你对《现代嵌入式 C++ 教程》的关注!我们欢迎任何形式的贡献,包括但不限于:修正错别字、改进代码示例、完善现有内容、添加新章节等。
4-
5-
## 快速开始
6-
7-
1. Fork 本仓库
8-
2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`)
9-
3. 提交更改 (`git commit -m '添加某功能'`)
10-
4. 推送到分支 (`git push origin feature/amazing-feature`)
11-
5. 创建 Pull Request
12-
13-
## 文章规范
14-
15-
### 文章结构
16-
17-
每篇文章应遵循以下结构(详见 `.templates/article-template.md`):
18-
19-
```markdown
20-
---
21-
# [FRONTMATTER 元数据]
22-
---
23-
24-
# 标题
25-
26-
## 引言
27-
## 核心概念
28-
## 代码示例
29-
## 实战应用
30-
## 注意事项
31-
## 小结
32-
## 练习(可选)
33-
## 参考资源
34-
```
35-
36-
### Frontmatter 元数据
37-
38-
每篇文章必须包含以下元数据:
39-
40-
| 字段 | 必填 | 说明 |
41-
|------|------|------|
42-
| `title` || 文章标题 |
43-
| `description` || 一句话描述文章内容 |
44-
| `chapter` || 所属章节 (0-10) |
45-
| `order` || 在章节中的顺序 |
46-
| `tags` || 标签列表 |
47-
| `difficulty` || 难度:beginner/intermediate/advanced |
48-
| `reading_time_minutes` || 预计阅读时间(分钟) |
49-
| `prerequisites` || 前置知识 |
50-
| `related` || 相关文章 |
51-
| `cpp_standard` || 涉及的 C++ 标准 |
52-
53-
### 标签规范
54-
55-
使用以下标签分类:
56-
57-
**概念类**
58-
- `RAII``移动语义``零开销抽象``编译期计算``类型安全`
59-
60-
**语言特性**
61-
- `constexpr``lambda``CRTP``concepts``coroutine`
62-
63-
**模式**
64-
- `对象池``状态机``工厂模式``策略模式`
65-
66-
**容器**
67-
- `array``span``vector``map`
68-
69-
**智能指针**
70-
- `unique_ptr``shared_ptr``weak_ptr``intrusive_ptr`
71-
72-
### 写作风格
73-
74-
1. **语言**:使用清晰、简洁的中文
75-
2. **术语**:首次出现的技术术语应附英文原文
76-
3. **代码注释**:使用中文注释
77-
4. **标题层级**:不超过 4 级(`####`
78-
5. **篇幅**:每篇文章控制在 1500-3000 字
79-
80-
## 代码规范
81-
82-
### C++ 代码风格
83-
84-
1. 使用现代 C++ 风格(C++11 及以上)
85-
2. 优先使用 `auto`、范围 for 循环等现代特性
86-
3. 遵循嵌入式最佳实践:
87-
- 避免动态内存分配(除非明确说明)
88-
- 注意代码体积和性能影响
89-
- 标注适用的 C++ 标准
90-
91-
```cpp
92-
// 好的示例
93-
// Platform: STM32F4
94-
// Standard: C++17
95-
96-
#include <array>
97-
98-
void process_data(const std::array<uint32_t, 10>& data) {
99-
for (const auto& value : data) {
100-
// 处理数据
101-
}
102-
}
103-
```
104-
105-
### 代码格式
106-
107-
- 使用 4 空格缩进
108-
- 大括号另起一行(Allman 风格)
109-
- 函数名使用 snake_case
110-
- 类名使用 PascalCase
111-
112-
## 添加新文章
113-
114-
1. 复制 `.templates/article-template.md` 作为起点
115-
2. 填写完整的 frontmatter
116-
3. 更新对应章节的 `index.md`,添加新文章链接
117-
4. 确保代码示例可编译
118-
119-
## 文件命名
120-
121-
文章文件名应清晰描述内容:
122-
123-
```
124-
documents/core-embedded-cpp/chapter-06-ownership-raii/
125-
├── 1 RAII在外设管理的作用.md
126-
├── 2 unique_ptr.md
127-
└── 3 shared_ptr.md
128-
```
129-
130-
## 发布前检查清单
131-
132-
提交 PR 前,请确认:
133-
134-
- [ ] Frontmatter 元数据完整
135-
- [ ] 代码示例可编译
136-
- [ ] 无错别字
137-
- [ ] 内部链接有效
138-
- [ ] 标签使用规范
139-
- [ ] 遵循文章模板结构
140-
- [ ] 更新了章节索引(如适用)
141-
142-
## 本地预览
143-
144-
在提交前,建议本地预览文档:
145-
146-
```bash
147-
# 安装依赖
148-
pip install mkdocs-material mkdocs-awesome-pages-plugin mkdocs-git-revision-date-localized-plugin
149-
150-
# 启动本地服务器
151-
mkdocs serve
152-
153-
# 访问 http://127.0.0.1:8000
154-
```
155-
156-
## 代码审查流程
157-
158-
1. 所有 PR 需要至少一位维护者审核
159-
2. CI 检查必须通过(markdown lint、链接检查)
160-
3. 审核通过后,维护者将合并代码
161-
162-
## 行为准则
163-
164-
- 尊重所有贡献者
165-
- 建设性的反馈和讨论
166-
- 专注于对项目最有利的事情
167-
168-
## 获取帮助
169-
170-
如有问题,请:
171-
- 提交 Issue
172-
- 查看 [GitHub Discussions](https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP/discussions)
173-
- 发送邮件至:725610365@qq.com
174-
175-
---
176-
177-
再次感谢你的贡献!
1+
# 贡献指南
2+
3+
感谢你对现代 C++ 教程的关注!我们欢迎任何形式的贡献,包括但不限于:修正错别字、改进代码示例、完善现有内容、添加新章节等。
4+
5+
## 快速开始
6+
7+
1. Fork 本仓库
8+
2. 创建你的特性分支 (`git switch -c feature/amazing-feature`)
9+
3. 提交更改 (`git commit -m '添加某功能'`)
10+
4. 推送到分支 (`git push origin feature/amazing-feature`)
11+
5. 创建 Pull Request
12+
13+
## 文章规范
14+
15+
### 文章结构
16+
17+
每篇文章应遵循以下结构:
18+
19+
```markdown
20+
---
21+
# [FRONTMATTER 元数据]
22+
---
23+
24+
# 标题
25+
26+
## 引言 / 动机
27+
## 核心概念
28+
## 代码示例
29+
## 实战应用
30+
## 注意事项
31+
## 小结
32+
## 练习(可选)
33+
## 参考资源
34+
```
35+
36+
### Frontmatter 元数据
37+
38+
每篇文章必须包含以下元数据:
39+
40+
| 字段 | 必填 | 说明 |
41+
|------|------|------|
42+
| `title` || 文章标题 |
43+
| `description` || 一句话描述文章内容 |
44+
| `chapter` || 所属章节 |
45+
| `order` || 在章节中的顺序 |
46+
| `tags` || 标签列表 |
47+
| `difficulty` || 难度:beginner / intermediate / advanced |
48+
| `reading_time_minutes` || 预计阅读时间(分钟) |
49+
| `prerequisites` || 前置知识 |
50+
| `related` || 相关文章 |
51+
| `cpp_standard` || 涉及的 C++ 标准(如 [11, 14, 17, 20]|
52+
53+
### 目录组织
54+
55+
文章按卷-章组织,放入对应卷目录:
56+
57+
```
58+
documents/vol2-modern-features/ # 卷二目录
59+
├── index.md # 卷首页
60+
├── ch01-smart-pointers/ # 章节(可选子目录)
61+
│ ├── 01-raii-deep-dive.md
62+
│ ├── 02-unique-ptr.md
63+
│ └── 03-shared-ptr.md
64+
└── cpp17-string-view.md # 也可直接放在卷目录下
65+
```
66+
67+
### 写作风格
68+
69+
1. **语言**:使用清晰、简洁的中文
70+
2. **术语**:首次出现的技术术语应附英文原文
71+
3. **代码注释**:使用中文注释
72+
4. **标题层级**:不超过 4 级(`####`
73+
5. **篇幅**:每篇文章控制在 1500-3000 字
74+
75+
详细写作风格请参考 `.claude/writting_style.md`
76+
77+
## 代码规范
78+
79+
### C++ 代码风格
80+
81+
1. 使用现代 C++ 风格(C++11 及以上)
82+
2. 优先使用 `auto`、范围 for 循环等现代特性
83+
3. 标注适用的 C++ 标准
84+
4. 代码示例使用 CMake 构建,确保可独立编译
85+
86+
```cpp
87+
// Standard: C++17
88+
89+
#include <array>
90+
#include <span>
91+
92+
void process_data(std::span<const uint32_t> data) {
93+
for (const auto& value : data) {
94+
// 处理数据
95+
}
96+
}
97+
```
98+
99+
### 代码格式
100+
101+
- 使用 4 空格缩进
102+
- 大括号另起一行(Allman 风格)
103+
- 函数名使用 snake_case
104+
- 类名使用 PascalCase
105+
106+
## 添加新文章
107+
108+
1. 确定文章所属的卷和章节,放入对应目录
109+
2. 填写完整的 frontmatter
110+
3. 更新对应卷的 `index.md`,添加新文章链接
111+
4. 确保代码示例可编译
112+
5. 本地预览确认渲染正确
113+
114+
## 发布前检查清单
115+
116+
提交 PR 前,请确认:
117+
118+
- [ ] Frontmatter 元数据完整
119+
- [ ] 代码示例可编译
120+
- [ ] 无错别字
121+
- [ ] 内部链接有效
122+
- [ ] 标签使用规范
123+
- [ ] 遵循文章模板结构
124+
- [ ] 更新了卷首页索引(如适用)
125+
126+
## 本地预览
127+
128+
在提交前,建议本地预览文档:
129+
130+
```bash
131+
# 安装依赖
132+
pip install -r scripts/requirements.txt
133+
134+
# 启动本地服务器
135+
mkdocs serve
136+
137+
# 访问 http://127.0.0.1:8000
138+
```
139+
140+
## 代码审查流程
141+
142+
1. 所有 PR 需要至少一位维护者审核
143+
2. CI 检查必须通过(markdown lint、链接检查)
144+
3. 审核通过后,维护者将合并代码
145+
146+
## 行为准则
147+
148+
- 尊重所有贡献者
149+
- 建设性的反馈和讨论
150+
- 专注于对项目最有利的事情
151+
152+
## 获取帮助
153+
154+
如有问题,请:
155+
156+
- 提交 [GitHub Issue](https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP/issues)
157+
- 发送邮件至:725610365@qq.com
158+
159+
---
160+
161+
再次感谢你的贡献!

0 commit comments

Comments
 (0)