• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 开源社区文档写作规范
2
3## 文档交付清单(应用开发)
4
5- **JS API参考**:应用程序接口。
6
7  按照**d.ts**文件进行分类,**一个d.ts文件对应一个md文档,该文档包含当前版本需要交付的所有接口**,每一个接口都需要包括接口的功能描述、参数描述、返回值描述、示例代码等。
8
9- **开发指南**:**用于指导用户进行应用程序的设计和开发**,从应用程序开发角度介绍基于平台功能特性开发应用程序的过程。
10
11  按照**场景进行分类**,通过描述场景功能、使用限制、调用接口等,以步骤的形式循序渐进地指导开发人员完成基于平台/产品提供的开放API或 SDK进行二次开发,最终实现某个特性或功能。
12
13- **术语**:向开发者传递**完整、准确、唯一的**概念。
14
15  当出现一个新概念时,需要提供统一的术语依据,规范化概念和名词表达。例如,eTS。
16
17- **apidiff/changelog**:向开发者说明**版本变更**情况。
18
19  apidiff说明该版本所有接口的修改,包括新增、变更、废弃三种情况,若无修改则不用说明。
20
21  若该版本存在变更后无法适配的接口,需要在changelog中说明每一个接口需要做的适配操作。
22
23- **FAQ**( Frequently Asked Questions ):开发者常见异常及处理建议。
24
25- **Readme**:向开发者介绍OpenHarmony子系统/部件的需求背景。
26
27## 文档写作基本要求(适用于所有文档)
28
29- **完整性**
30
31  文档无场景缺失、无操作断点,交付内容需和版本实际交付范围一致,不遗漏、不超前。
32
33- **正确性**
34
35  文档描述和实现**功能一致**,版本信息、参数、返回值描述无误,**用户可以通过文档进行实际操作**。
36
37- **规范性**
38
39  文档描述**符合资料规范**,无低错、前后矛盾、上下文不一致、有歧义、敏感词等问题。注意:文档描述遵循术语规范,非必要场景不体现厂家信息。
40
41- **易理解**
42
43  文档描述简洁、清晰,面向开发者,对开发者可感知和使用的能力进行描述。示例代码易理解,上下文完整(或提示)、参数明确、复杂逻辑有注释。
44
45- **合规性**
46
47  **无抄袭或合规风险**。包括但不限于:描述不可与友商高度一致,禁止使用友商特有的概念。
48
49## 明确文档结构(应用开发)
50
51应用开发文档链接: [https://](https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev)[gitee.com/openharmony/docs/tree/master/zh-cn/application-dev](https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev)
52
53开发指南按不同功能分文件夹,平铺在application-dev中,比如media存放媒体开发指南,usb存放usb服务的开发指南。API参考统一放到application/reference/apis文件夹中。
54
55![](figures/figure1.png)
56
57## 每一个文档包含的内容(JS API和开发指南)
58
591. 图片文件夹:放置文档中引用的图片,包含svg、png、gif等。
602. 系统资源文件夹:放置文档中引用的系统图标,无需关注。
613. Readme:目录每一个新增的md文档,都需要写在Readme中。
624. 文档:重点关注文档命名,详见后续描述。
63
64![](figures/figure2.png)
65
66## JS API内容写作
67
68### 新建文档 or 在原有的文档里继续添加?
69
70该模块(以一个d.ts为单位)之前是否有文档?——是,在原有的文档里继续添加新增接口。否,新建一个markdown(md)文件。
71
72![](figures/figure3.png)
73
741. **文件命名**:一个d.ts文件对应一个js api接口文档,文件名称:**js-apis-模块名.md**。示例:
75
76   媒体@ohos.multimedia.audio,文件命名为:js-apis-audio.md77
78   电话@ohos.telephony.sms,文件命名为:js-apis-sms.md79
802. **文档标题:**使用**中文短语**概括本模块功能。但如果部分概念使用英文更便于开发者理解,不必强求,比方说,Ability、SIM卡等概念可以直接使用。
81
82   如果在原有文档添加接口,需要检查新增了接口后,标题还能不能概括所有内容。比如说,media在API 6叫音频播放,但API 7新增了“音频录制”、“视频解码”的能力后,名字就要修改了。
83
843. **内容写作**较多,在后续指导中详细描述。
85
864. **上传路径**:docs/zh-cn/application-dev/reference/apis,图片放到对应的figures文件夹中。
87
885. **修改对应的Readme**,即docs/zh-cn/application-dev/reference/apis/Readme-CN.md。如果文档标题没有修改,无需修改Readme。
89
90**Tips:docs仓的PR合入后,将自动触发翻译issue。**
91
92### 内容写作
93
94JS API 文档模板路径:[https://](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/template/js-template.md)[gitee.com/openharmony/docs/blob/master/zh-cn/contribute/template/js-template.md](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/template/js-template.md)
95
96**每一个文档必须包含的内容:**
97
98- **文档标题**
99
100  - **起始版本说明(必选)**:本模块首批接口的起始版本,以说明的形式进行插入。
101
102    ![](figures/figure4.png)
103
104  - **模块说明(必选)**:对该模块提供的功能、使用场景和使用建议进行简要描述。
105
106    例如,轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。
107
108  - **导入模块/使用说明(必选)**:根据实际情况填写导入模块,如果没有导入模块,将“导入模块”修改为“使用说明”。
109
110       导入模块,采用**代码段**的样式,给出import语句。
111
112       使用说明,说明使用接口的先决条件,例如:在使用AbilityContext的功能前,需要通过getContext()先获取Context对象。
113
114  - **权限(必选)**:对该模块接口的使用权限做以说明。
115
116    例如,需要权限:ohos.permission.XXX(如不涉及可删除,如果是系统权限要说明)
117
118  - **功能描述(必选)**:对该模块涉及到的属性、接口等做以说明,在功能描述中进行详细解释。
119
120- **功能描述(与d.ts文件保持一致)**:
121
122  - **属性字段(namespace下的,可选)**:定义了对象的特征。 以表格形式呈现,包括属性名称、属性类型、可读、可写、属性说明。
123
124  - **方法(namespace下的,必选)**:关联到对象的函数。以section形式呈现,包括方法名称、调用形式、功能说明、参数、返回值、示例代码。
125
126  - **枚举(可选)**:一组值组成的类型。 以表格形式呈现,包括枚举名称、枚举值、说明。
127
128  - **类/interface(可选)**:一般包含自有属性和方法。以section形式呈现,包括类名/interface名、描述、自有属性等。
129
130  - **自定义类型( 可选)**:以k-v键值对表示的interface,描述和方法的参数一致。以表格形式呈现,包括参数名、类型、是否必填、说明。
131
132  - **属性字段( class/interface里的,可选)**
133
134  - **方法( class/interface里的)**
135
136**标题层级**:
137
138![](figures/figure5.png)
139
140**版本标记**:
141
1421. 如果新版本增加了一个类,则该类、类的方法、类的属性均需打上版本标记。以全球化intl的文档为例说明。
143
144   intl的起始版本是API 7,在API 8新增了类**Collator、constructor方法等**,**于是给类Collator及其所有的方法打上8+的上标**,标记方式为直接在新增内容后面标记8+。
145
146   ![](figures/figure7.png)
147
1482. 对于新版本废弃的内容,不能直接在文档上删去,需在废弃内容后面加上标标注deprecated,并使用“>”引用语法建议使用的替代方式,加上对应的链接。示例如下:
149
150   abandonmentMethod(deprecated)
151
152   \> 从API version 7 开始废弃,建议使用newMethod替代。
153
154**写作示例**:
155
1561. 参数返回值说明、示例代码写作示例:
157
158![](figures/figure8.png) 2. 类、interface写作示例:
159
160![](figures/figure9.png)
161
162## JS 开发指南写作
163
164### 文档创建方式
165
166![](figures/figure10.png)
167
168**注意**:
169
1701. 文件夹命名:一个文件夹对应相关模块的开发指导。
1712. 上传路径:docs/zh-cn/application-dev/xxx文件夹,图片放到对应的figures文件夹中。
1723. 新增指南/添加文档,均需填写对应的Readme,即docs/zh-cn/application-dev/xxx文件夹/Readme-CN.md173
174### 内容写作
175
176开发指南模板链接:[guide-template.md](template/guide-template.md)
177
178**每一个文档必须包含的内容**:
179
180-  **概述/xxx开发概述(必选)**
181
182   -  **功能简介(必选)** :描述本指南提供了什么能力,指导开发者完成什么任务。
183
184   -  **基本概念(必选)** :描述开发任务相关的基本概念。
185
186   -  **运作机制(可选)** :描述开发任务实现功能的基本运作原理。
187
188   -  **约束与限制(必选)** :描述本开发任务过程中的约束条件,以及此操作约束带来相应的负面影响。
189
190-  **Xxx开发指导(必选)**
191
192   -  **场景介绍(必选)** :描述在什么情景下解决什么问题,最终达到什么样的效果。
193
194   -  **接口说明(必选)** :描述本开发指导相关的接口有哪些。
195
196   -  **开发步骤(必选)** :描述开发的整体过程,便于开发者快速完成开发
197
198   -  **调测验证(可选)** :开发完成后,如有独立的调测验证操作,需提供指导,以确认操作是否成功。
199
200   -  **开发实例/sample(必选)** :开发完成后,基于一个任务整体做代码段的描述。
201
202可选≠不写,可选=子系统可能没有这个情况。
203
204**写作示例:**
205
2061. 概述写作示例:
207
208   ![](figures/figure11.png)
209
2102. 开发指导步骤写作示例:
211
212   ![](figures/figure12.png)
213