Skip to content

Commit b6869fc

Browse files
committed
spec/writing: add
1 parent b167831 commit b6869fc

File tree

4 files changed

+142
-0
lines changed

4 files changed

+142
-0
lines changed

README.md

+10
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@
77
3. `pip install -r requirements.txt`
88
4. `mkdocs serve`
99

10+
## 格式检查
11+
12+
### Autocorrect
13+
14+
<https://github.com/huacnlee/autocorrect/> 安装后,运行 `autocorrect --lint` 即可。`autocorrect --fix` 可以自动修复问题。
15+
16+
### Markdownlint-cli2
17+
18+
对应仓库为 <https://github.com/DavidAnson/markdownlint-cli2>。运行 `markdownlint-cli2 docs/**/*.md README.md` 即可。添加 `--fix` 可以自动修复问题。
19+
1020
## 许可
1121

1222
本文档以 Creative Commons BY-NC-SA 4.0 协议发布。详情请见 [LICENSE](LICENSE)

docs/index.md

+4
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ icon: material/heart
2222
除此之外,部分章节可能依赖于其他计算机科学的知识,例如数据库、计算机网络等。如果对前置要求不熟悉,建议先学习相关的知识。作为参考,[cs-self-learning](https://csdiy.wiki/) 提供了不错的自学教程目录。
2323

2424
本教程分为两大部分:**运维基础****开发速查手册**,分别介绍系统运维(ops)和简单的开发(dev)两个方面的内容。其他较为不常见,或不够成熟的内容,在**高级内容**部分介绍。
25+
26+
本教程使用 [CC BY-NC-SA 4.0 协议](https://creativecommons.org/licenses/by-nc-sa/4.0/)开放。请注意,与 Linux 101 相比,我们添加了**「禁止商用」**的条款。
27+
28+
我们非常欢迎读者通过 [GitHub 仓库(待公开)](https://github.com/ustclug/Linux201-docs) 提交 issue,或邮件致信![我们](https://lug.ustc.edu.cn/static/email.png){: .img-inline }。读者的建议对我们的改进非常重要。

docs/spec/writing.md

+127
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# 章节编写指导
2+
3+
本部分参考自 [Linux 101 章节编写指导](https://101.lug.ustc.edu.cn/Spec/writing/),有较大幅度的调整。以下将从两个方面:格式和内容,介绍如何编写章节。
4+
5+
## 格式要求 {#format}
6+
7+
### 环境配置 {#env-setup}
8+
9+
Linux 201 使用 mkdocs + mkdocs-material 作为文档框架与主题,并且使用 [autocorrect](https://github.com/huacnlee/autocorrect/) 进行中文格式检查,与 [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) 做 Markdown 格式检查。请阅读[仓库下的 README.md](https://github.com/ustclug/Linux201-docs/blob/master/README.md) 了解基本环境的配置。
10+
11+
### 章节编写状态 {#status}
12+
13+
对于未定稿的内容,根据状态不同,请在 h1 标题下方添加如下内容:
14+
15+
```markdown
16+
!!! warning "本文仍在编辑中"
17+
```
18+
19+
20+
21+
```markdown
22+
!!! warning "本文初稿已完成,但可能仍需大幅度修改"
23+
```
24+
25+
### 使用提示框(Admonition) {#admonition}
26+
27+
提示框是 mkdocs-material 的特色功能。格式类似于如下:
28+
29+
```markdown
30+
!!! warning "警告标题"
31+
32+
这是提示框的内容。
33+
34+
??? note "提示标题"
35+
36+
这是提示框的内容,`???` 表示默认折叠。
37+
```
38+
39+
效果如下:
40+
41+
!!! warning "警告标题"
42+
43+
这是提示框的内容。
44+
45+
??? note "提示标题"
46+
47+
这是提示框的内容,`???` 表示默认折叠。
48+
49+
我们使用的 mkdocs-material 提供的标准提示框有以下几种:
50+
51+
- note: 提示,表示重要的信息
52+
- warning: 警告,表示需要特别注意的信息
53+
- danger: 危险,表示如果忽视,可能导致严重后果的信息
54+
- tip: 小技巧
55+
- example: 示例
56+
- question: 需要读者思考的问题
57+
58+
此外,我们自定义了一些提示框类型:
59+
60+
- comment: 表示编者对内容的评论(类似于某些游戏的「Developer Commentary」),使用时请在标题处写上你的昵称,类似于这样:
61+
62+
```markdown
63+
!!! comment "@taoky: 吐槽"
64+
65+
比如说……
66+
```
67+
68+
效果:
69+
70+
!!! comment "@taoky: 吐槽"
71+
72+
比如说……
73+
74+
- lab: 教程不会详细说明,需要读者自己尝试的实验。
75+
76+
### 为标题和小标题添加 ID {#heading-ids}
77+
78+
由于文章篇目较长,使用时会经常遇到需要链接到文章某一段的情况。受限于 MkDocs 自动生成 Anchor ID 的功能(只支持英文字符),纯中文的标题会导致生成 `_1`, `_2` 这样的 ID。一方面这样的 ID 看起来不直观,另一方面每当标题发生增减时这些 ID 都会变,因此请为每个**除了 h1 以外的标题**手动添加一个有意义的 ID(最开始的标题 H1 除外),方法如下:
79+
80+
```markdown
81+
### 为标题和小标题添加 ID {#heading-ids}
82+
83+
注意 `{` 前面要有一个空格哦!
84+
```
85+
86+
建议 ID 只包含小写字母、数字和横线 `-`,必要时使用句点(不使用大写字母和其他标点符号)。
87+
88+
### 为图片添加配字 {#image-caption}
89+
90+
在图片下方写一行文字作为配字,并在这行字**紧接着的下一行**(不能有空行)写上 `{: .caption }`,这样配的这行字渲染成 HTML 时就加上了 `class="caption"`,显示为 0.94 倍的字体、灰色、贴近图片。
91+
92+
```markdown
93+
![image](url)
94+
95+
图 1. 这张图片的一行配字
96+
{: .caption }
97+
```
98+
99+
### 图片与附件文件 {#images-attachments}
100+
101+
图片与小的附件文件可以放置在 `docs/assets/` 目录下,编写 Markdown 时可以使用**相对路径**引用。
102+
103+
### man 手册引用 {#man}
104+
105+
`includes/man.md` 中包含了一些手册的在线阅读链接,类似如下:
106+
107+
```markdown
108+
[fstab.5]: https://man7.org/linux/man-pages/man5/fstab.5.html
109+
```
110+
111+
按照指定格式添加后,使用如下方式引用:
112+
113+
```markdown
114+
[fstab(5)][fstab.5] 提供了……
115+
```
116+
117+
## 内容要求 {#content}
118+
119+
### 编写原则 {#principle}
120+
121+
请阅读[首页](/),了解我们的四条编写原则。
122+
123+
### 请勿抄袭 {#no-plagiarism}
124+
125+
请勿抄袭他人的文章。如果有参考,请在文中明确写明。
126+
127+
特别地,也不要使用 GPT 大段大段生成内容,然后直接提交。这样的内容即使正确性无误,也包含大量的废话,并且存在潜在的版权风险。

mkdocs.yml

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ extra_css:
7373

7474
nav:
7575
- 欢迎: index.md
76+
- 章节编写指导: spec/writing.md
7677
- 运维基础:
7778
- ops/index.md
7879
- 检查单: ops/checklist.md

0 commit comments

Comments
 (0)