Skip to content

Commit 3becdf8

Browse files
alexander-trifonovAlexander1 Trifonovandrew-zaytsev
authored
docs contribution guides (openvinotoolkit#1535)
* docs contribution guides * Fixed link to documentation_guidelines.md Co-authored-by: Alexander1 Trifonov <alexander1.trifonov@intel.com> Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
1 parent 52ad786 commit 3becdf8

File tree

3 files changed

+278
-11
lines changed

3 files changed

+278
-11
lines changed

CONTRIBUTING_DOCS.md

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Contribute to Documentation
2+
3+
If you want to contribute to a project documentation and make it better, your help is very welcome.
4+
This guide puts together the guidelines to help you figure out how you can offer your feedback and contribute to the documentation.
5+
6+
## Contribute in Multiple ways
7+
8+
There are multiple ways to help improve our documentation:
9+
* [Log an issue](https://jira.devtools.intel.com/projects/CVS/issues): Enter an issue for the OpenVINO™ documentation component for minor issues such as typos.
10+
* Make a suggestion: Send your documentation suggestion to the mailing list.
11+
* Contribute via GitHub: Submit pull requests in the [GitHub](https://github.com/openvinotoolkit/openvino/tree/master/docs) documentation repository.
12+
13+
## Contribute via GitHub
14+
15+
Use the following steps to contribute in the OpenVINO™ Toolkit documentation
16+
17+
### Use Documentation Guidelines
18+
The documentation for our project is written using Markdown. Use our [guidelines](./docs/documentation_guidelines.md) and best practices to write consistent, readable documentation:
19+
20+
* **[Authoring Guidelines](./docs/documentation_guidelines.md#authoring-guidelines)**
21+
* **[Structure Guidelines](./docs/documentation_guidelines.md#structure-guidelines)**
22+
* **[Formatting Guidelines](./docs/documentation_guidelines.md#structure-guidelines)**
23+
* **[Graphics Guidelines](./docs/documentation_guidelines.md#graphics-guidelines)**
24+
25+
### Add New Document to the Documentation
26+
> **NOTE**: Please check if that information can be added to existing documents instead of creating a new one.
27+
28+
1. Fork the [OpenVINO™ Toolkit](https://github.com/openvinotoolkit/openvino) repository.
29+
2. Create a new branch.
30+
3. Create a new markdown file in an appropriate folder.
31+
> **REQUIRED**: The document title must contain a document label in a form: `{#openvino_docs_<name>}`. For example: `Deep Learning Network Intermediate Representation and Operation Sets in OpenVINO™ {#openvino_docs_MO_DG_IR_and_opsets}`.
32+
4. Add your file to the documentation structure. Open the documentation structure file [docs/doxygen/ie_docs.xml](./docs/doxygen/ie_docs.xml) and add your file path to the appropriate section.
33+
5. Commit changes to your branch.
34+
6. Create a pull request.
35+
7. Once the pull request is created, automatic checks are started. All checks must pass to continue.
36+
8. Discuss, review, and update your contributions.
37+
9. Get merged once the maintainer approves.
38+
39+
### Edit Existing Document
40+
1. Fork the [OpenVINO™ Toolkit](https://github.com/openvinotoolkit/openvino) repository.
41+
2. Create a new branch.
42+
3. Edit the documentation markdown file and commit changes to the branch.
43+
4. Create a pull request.
44+
5. Once the pull request is created, automatic checks are started. All checks must pass to continue.
45+
6. Discuss, review, and update your contributions.
46+
7. Get merged once the maintainer approves.
47+
48+
### Delete Document from the Documentation
49+
1. Fork the [OpenVINO™ Toolkit](https://github.com/openvinotoolkit/openvino) repository.
50+
2. Create a new branch.
51+
3. Remove the documentation file.
52+
4. Remove your file from the documentation structure. Open the documentation structure file [docs/doxygen/ie_docs.xml](./docs/doxygen/ie_docs.xml) and remove all occurences of your file path.
53+
5. Remove all references to that file from other documents or replace with links to alternatives topics (if any).
54+
6. Commit changes to your branch.
55+
7. Create a pull request.
56+
8. Once the pull request is created, automatic checks are started. All checks must pass to continue.
57+
9. Discuss, review, and update your contributions.
58+
10. Get merged once the maintainer approves.

README.md

+13-11
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@
22
[![Stable release](https://img.shields.io/badge/version-2020.4-green.svg)](https://github.com/openvinotoolkit/openvino/releases/tag/2020.4.0)
33
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
44

5-
This toolkit allows developers to deploy pre-trained deep learning models
6-
through a high-level C++ Inference Engine API integrated with application logic.
5+
This toolkit allows developers to deploy pre-trained deep learning models
6+
through a high-level C++ Inference Engine API integrated with application logic.
77

8-
This open source version includes two components: namely [Model Optimizer] and
9-
[Inference Engine], as well as CPU, GPU and heterogeneous plugins to accelerate
10-
deep learning inferencing on Intel® CPUs and Intel® Processor Graphics.
11-
It supports pre-trained models from the [Open Model Zoo], along with 100+ open
12-
source and public models in popular formats such as Caffe\*, TensorFlow\*,
13-
MXNet\* and ONNX\*.
8+
This open source version includes two components: namely [Model Optimizer] and
9+
[Inference Engine], as well as CPU, GPU and heterogeneous plugins to accelerate
10+
deep learning inferencing on Intel® CPUs and Intel® Processor Graphics.
11+
It supports pre-trained models from the [Open Model Zoo], along with 100+ open
12+
source and public models in popular formats such as Caffe\*, TensorFlow\*,
13+
MXNet\* and ONNX\*.
1414

1515
## Repository components:
1616
* [Inference Engine]
1717
* [Model Optimizer]
1818

1919
## License
2020
Deep Learning Deployment Toolkit is licensed under [Apache License Version 2.0](LICENSE).
21-
By contributing to the project, you agree to the license and copyright terms therein
21+
By contributing to the project, you agree to the license and copyright terms therein
2222
and release your contribution under these terms.
2323

2424
## Documentation
@@ -30,13 +30,15 @@ and release your contribution under these terms.
3030
* [Model Optimizer Developer Guide](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html)
3131

3232
## How to Contribute
33-
See [CONTRIBUTING](./CONTRIBUTING.md) for details. Thank you!
33+
See [CONTRIBUTING](./CONTRIBUTING.md) for contribution to the code.
34+
See [CONTRIBUTING_DOCS](./CONTRIBUTING_DOCS.md) for contribution to the documentation.
35+
Thank you!
3436

3537
## Support
3638
Please report questions, issues and suggestions using:
3739

3840
* The `openvino` [tag on StackOverflow]\*
39-
* [GitHub* Issues](https://github.com/openvinotoolkit/openvino/issues)
41+
* [GitHub* Issues](https://github.com/openvinotoolkit/openvino/issues)
4042
* [Forum](https://software.intel.com/en-us/forums/computer-vision)
4143

4244
---

docs/documentation_guidelines.md

+207
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
# Documentation Guidelines
2+
3+
## Authoring Guidelines
4+
5+
We want our documentation to be easy to read and understand. This section describes guidelines for writing documentation that is clear, concise, confident, and courteous.
6+
7+
For details on organizing content and how we use Markdown, refer to [Structure and Formatting](#structure-and-formatting-guidelines).
8+
9+
### Use Simple English
10+
11+
* **Be brief.** Use short sentences and paragraphs. Stick to the principle of one main idea per sentence, plus one additional point if needed. Each paragraph should address one main idea. Remember the basic structure of a paragraph: Introduction, body, and conclusion.
12+
* **Use simple words.** Use simple words to increase reader comprehension and reduce ambiguity. Follow our tips for making good word choices:
13+
* **Avoid jargon:** Write for your audience, using everyday language where possible, and technical terms where appropriate. Avoid clichés, idioms, and metaphors.
14+
* **Be consistent:** Use one term for each concept or action and use it consistently.
15+
* **Avoid “fancy” words and phrases:** If there is a simpler word or phrase, use it.
16+
17+
### Make Content Scannable
18+
19+
Organize your content to make it scannable for the reader, which helps them find what they need quickly, and to understand the information more efficiently.
20+
21+
* **Put the most important content first.** Make sure your introduction clearly communicates what the reader can find on the page. Present the point of the document first, and organize supporting information towards the end of the page.
22+
* **Write scannable headings.** Expect readers of documentation to skim and scan the content, and to leave if they don’t find what they need quickly. Good headings add organization to your content and help the reader to find and understand content more effectively. Follow our guidelines for writing effective Headings.
23+
* **Write great link text.** Great link text tells the reader what they can expect when they click on a link. It also helps make the page more scannable. Follow our guidelines for writing Link text.
24+
25+
### Use Strong Verbs
26+
27+
* **Passive verbs make writing stuffy and formal**. Use strong verbs to get to the point and avoid unnecessary words and phrases.
28+
* **Commands**, also called imperatives, are the fastest and most direct way of giving someone instructions.
29+
* **Use simple present tense** instead of future tense for most text. Search for the words “will” or “shall” to find future tense instances. Future tense is acceptable for conditional statements, such as in a caution or a warning.
30+
31+
### Parallelism
32+
33+
Parallelism refers to the practice of using similar patterns of grammar, and sometimes length, to coordinate words, phrases, and clauses.
34+
Use parallel construction in lists. The table below shows some unparallel structures and how they can be made parallel with a little rewording.
35+
36+
| Parallel (do) | Unparallel (don’t) |
37+
|-------------------------|---------------------------|
38+
| 1. Mount the panel. | 1. Mount the panel. |
39+
| 2. Install the battery. | 2. Battery installation. |
40+
| 3. Wire the keypad. | 3. Wiring the keypad. |
41+
42+
## Structure Guidelines
43+
44+
Content should be organized to support scanning. Consistent organization, formatting, and writing style helps readers quickly find what they need and to understand the content more effectively. This section describes our organization.
45+
46+
### Website Structure
47+
The documentation website is organized this way:
48+
49+
1. **Getting Started**: installation guides, prerequisites, how to set working environment
50+
2. **How To-s**: videos and guides, for some reason not included in **Guides** section
51+
3. **Guides**: developer guides for all OpenVINO Toolkit components
52+
4. **Resources**: samples, demos, pre-trained models and tools (Accuracy Checker, Post-Training Optimization etc)
53+
5. **Performance Information**: benchmark tests information, ways to improve Performance
54+
6. **API References**: in-built wiki with class structures
55+
56+
### Page Structures
57+
Each page in the documentation should follow the basic format of:
58+
59+
* **Overview**: 1-2 sentences describing what this page shows and why it matters
60+
* **Prerequisites**: Describe any pre-work necessary to the content (if appropriate)
61+
* **Content**
62+
* **Next steps**: List links to next steps (if appropriate)
63+
* **Related topics**: List links to related content (if appropriate)
64+
65+
## Formatting Guidelines
66+
We apply the formatting using Markdown.
67+
68+
### Inline Text Formatting
69+
Use our quick reference for the most commonly used inline text elements:
70+
71+
| Element | Markdown Examples | Notes |
72+
|--------------- |---------------------| -------- |
73+
| Notes | `> **NOTE**: text` | The space between `>` and `**NOTE**` is required |
74+
| Code elements (variables, methods, classes) | ``` `text` ``` | |
75+
| Code snippets | ` ```cpp`<br>text<br>` ``` ` | |
76+
| Console commands, output| ` ```sh`<br>text<br>` ``` ` | |
77+
| Product name | OpenVINO™,<br>Intel® Distribution of OpenVINO™ toolkit | |
78+
79+
### Headings
80+
Use headings to section and organize your content for better readability and clarity.
81+
82+
* **Use strong verbs.** Strong, active verbs get to the point. Avoid **-ing** verbs, such as Running, Testing, etc.
83+
* **Be concise and descriptive.** Use only the words necessary to describe the section.
84+
* **Use sentence case.** Capitalize first letter every word except articles, prepositions: **Build Inference Engine on Linux**
85+
* **Avoid punctuation.** Unless your heading is a question, don’t use sentence punctuation in headings.
86+
* **Use parallel structure.** Headings at the same level should use the same grammatical pattern. This provides structure to the document and helps users find information more easily. See [Parallelism](#parallelism).
87+
88+
Use following rules to write headings in your documentation:
89+
* All files must have a top level heading, which is the title for the page.
90+
```
91+
# First Level Heading
92+
```
93+
* Up to three additional levels of headings are allowed under the title heading.
94+
```
95+
## Second Level Heading
96+
### Third Level Heading
97+
#### Fourth Level Heading
98+
```
99+
* Each heading should be followed by at least one paragraph of content. Avoid two or more consecutive headings.
100+
* To add a link to a heading in the current page, do the following:
101+
* Add the `<a>` HTML tag and set a unique name to your heading with `name` argument:
102+
```XML
103+
## <a name="set-the-environment-variables"></a> Set the Environment Variables
104+
```
105+
* Place the link to the heading using the set name:
106+
```XML
107+
Refer <a href="#set-the-environment-variables">here</a>
108+
```
109+
110+
### Code Snippets and Examples
111+
You can create fenced code snippets by placing triple backticks ` ``` ` before and after the code block and add an optional language identifier to enable syntax highlighting in your fenced code block. For example, to syntax highlight C++ code:
112+
```
113+
```cpp
114+
#include <inference_engine.hpp>
115+
void main(int argc, char *argv[])
116+
{
117+
InferenceEngine::Core ie;
118+
}
119+
```
120+
121+
```cpp
122+
#include <inference_engine.hpp>
123+
void main(int argc, char *argv[])
124+
{
125+
InferenceEngine::Core ie;
126+
}
127+
```
128+
129+
For full list with supported languages refer [here](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml).
130+
131+
### Lists and Instructions
132+
This section provides information about formatting numbered and bulleted lists.
133+
134+
#### Numbered Lists
135+
Use a numbered list when the order or priority of the items is important, such as step-by-step instructions:
136+
```
137+
1. **Initialize core** to..
138+
2. **Prepare input** for..
139+
3. ...
140+
```
141+
Numbered lists are most frequently used for procedures. Use numbered lists to show sequence for the items. Follow our guidelines for numbered lists:
142+
* Make few first words describe whole step and bold it:
143+
6) **Prepare input**. You can use one of the following options to prepare input
144+
* Introduce a numbered list with a sentence. End the setup text with a colon. Example:
145+
"To configure the unit, perform the following steps:"
146+
* Each item in the list should be [parallel](#parallelism).
147+
* Treat numbered list items as full sentences with correct ending punctuation.
148+
* You may interrupt numbered lists with other content, if relevant, e.g. explanatory text, commands, or code.
149+
150+
#### Bulleted lists
151+
Use a bulleted list when the order of the items is not important:
152+
```
153+
* Option X
154+
* Option Y
155+
* Option Z
156+
```
157+
* Introduce a bulleted list with a sentence. End the setup text with a colon. Example:
158+
“To repair the unit, you will need the following items:”
159+
* Make few first words describe whole step and bold it:
160+
* **Prepare input**. You can use one of the following options to prepare input
161+
* Each item in the list should be parallel.
162+
* Avoid interrupting bulleted lists with other paragraph styles.
163+
* Second-level bullets are acceptable; avoid third-level bullets.
164+
165+
For both list types, keep all items in the list parallel. See [Parallelism](#parallelism):
166+
167+
### Links
168+
All links in content should follow these guidelines:
169+
170+
* **Avoid generic text:** Don’t use generic, uninformative link text such as “click here” or “read more”.
171+
* **Write descriptive link text:** Link text should describe where the link goes, without having to read the surrounding text.
172+
* **Use unique link text:** Each link text on a page should be unique. If users see the same link text twice on a page, they’ll assume it goes to the same place.
173+
* **Start link text with keywords:** Frontload the link text with the most important words to help users scan the text.
174+
175+
Use following examples to write links in your documentation:
176+
* To add a cross-reference to another documentation page, use file path from [DoxygenLayout.xml](./openvino-documentation/blob/master/docs/doxygen/DoxygenLayout.xml) (don't use direct links to docs.openvinotoolkit.org):
177+
```
178+
[OpenVINO Installation on Linux](./docs/install_guides/installing-openvino-linux.md)
179+
```
180+
Currently links to headings in other markdown files are not supported. To refer to a specific section, you may use the following example:
181+
```
182+
"Use **Set Environment Variables** section in the [OpenVINO Installation on Linux](./docs/install_guides/installing-openvino-linux.md) document.
183+
```
184+
* To add URL link to any software, link to the latest version, for example:
185+
```
186+
For more details, see [CMake page](https://cmake.org/cmake/help/latest/manual/cmake.1.html#manual:cmake(1))
187+
```
188+
189+
## Graphics Guidelines
190+
Use images or figures to convey information that may be difficult to explain using words alone. Well-planned graphics reduce the amount of text required to explain a topic or example.
191+
192+
Follow these guidelines when using graphics in support of your documentation:
193+
194+
* Keep it simple. Use images that serve a specific purpose in your document, and contain only the information the reader needs.
195+
* Avoid graphics that will need frequent updating. Don’t include information in a graphic that might change with each release, such as product versions.
196+
* Use either PNG or JPEG bitmap files for screenshots and SVG files for vector graphics.
197+
* Place the image immediately after the text it helps clarify, or as close as possible.
198+
* Use the Markdown directives to insert images and figures into the document. Include both alt text, and the title.
199+
* Include at least one direct reference to an image from the main text, using the figure number.
200+
201+
Images should follow these naming and location conventions:
202+
203+
* Save the image files in a figures folder at the same level as the file that will reference the image.
204+
* Name image files according to the following rules:
205+
* Use only lower case letters.
206+
* Separate multiple words in filenames using dashes.
207+
* Name images using the filename of the file they appear on and add a number to indicate their place in the file. For example, the third figure added to the `welcome.md` file must be named `welcome-3.png`.

0 commit comments

Comments
 (0)