You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							247 lines
						
					
					
						
							7.4 KiB
						
					
					
				
			
		
		
	
	
							247 lines
						
					
					
						
							7.4 KiB
						
					
					
				| # Fastify Style Guide
 | |
| 
 | |
| ## Welcome
 | |
| 
 | |
| Welcome to *Fastify Style Guide*. This guide is here to provide you with a
 | |
| conventional writing style for users writing developer documentation on our Open
 | |
| Source framework. Each topic is precise and well explained to help you write
 | |
| documentation users can easily understand and implement.
 | |
| 
 | |
| ## Who is this guide for?
 | |
| 
 | |
| This guide is for anyone who loves to build with Fastify or wants to contribute
 | |
| to our documentation. You do not need to be an expert in writing technical
 | |
| documentation. This guide is here to help you.
 | |
| 
 | |
| Visit the [contribute](https://www.fastify.io/contribute) page on our website or
 | |
| read the
 | |
| [CONTRIBUTING.md](https://github.com/fastify/fastify/blob/main/CONTRIBUTING.md)
 | |
| file on GitHub to join our Open Source folks.
 | |
| 
 | |
| ## Before you write
 | |
| 
 | |
| You need to know the following:
 | |
| 
 | |
| * JavaScript
 | |
| * Node.js
 | |
| * Git
 | |
| * GitHub
 | |
| * Markdown
 | |
| * HTTP
 | |
| * NPM
 | |
| 
 | |
| ### Consider your Audience
 | |
| 
 | |
| Before you start writing, think about your audience. In this case, your audience
 | |
| should already know HTTP, JavaScript, NPM, and Node.js. It is necessary to keep
 | |
| your readers in mind because they are the ones consuming your content. You want
 | |
| to give as much useful information as possible. Consider the vital things they
 | |
| need to know and how they can understand them. Use words and references that
 | |
| readers can relate to easily. Ask for feedback from the community, it can help
 | |
| you write better documentation that focuses on the user and what you want to
 | |
| achieve.
 | |
| 
 | |
| ### Get straight to the point
 | |
| 
 | |
| Give your readers a clear and precise action to take. Start with what is most
 | |
| important. This way, you can help them find what they need faster. Mostly,
 | |
| readers tend to read the first content on a page, and many will not scroll
 | |
| further.
 | |
| 
 | |
| **Example**
 | |
| 
 | |
| Less like this: Colons are very important to register a parametric path. It lets
 | |
| the framework know there is a new parameter created. You can place the colon
 | |
| before the parameter name so the parametric path can be created.
 | |
| 
 | |
| More Like this: To register a parametric path, put a colon before the parameter
 | |
| name. Using a colon lets the framework know it is a parametric path and not a
 | |
| static path.
 | |
| 
 | |
| ### Avoid adding video or image content
 | |
| 
 | |
| 
 | |
| Do not add videos or screenshots in the documentation. It is easier to keep
 | |
| under version control. Videos and images will eventually end up becoming
 | |
| outdated as new updates keep developing. Instead, make a referral link or a
 | |
| YouTube video. You can add links by using `[Title](www.websitename.com)` in the
 | |
| markdown.
 | |
| 
 | |
| **Example**
 | |
| 
 | |
| ```
 | |
| To learn more about hooks, see [Fastify hooks](https://www.fastify.io/docs/latest/Reference/Hooks/).
 | |
| ```
 | |
| 
 | |
| Result:
 | |
| >To learn more about hooks, see [Fastify
 | |
| >hooks](https://www.fastify.io/docs/latest/Reference/Hooks/).
 | |
| 
 | |
| 
 | |
| 
 | |
| ### Avoid plagiarism
 | |
| 
 | |
| Make sure you avoid copying other people's work. Keep it as original as
 | |
| possible. You can learn from what they have done and reference where it is from
 | |
| if you used a particular quote from their work.
 | |
| 
 | |
| 
 | |
| ## Word Choice
 | |
| 
 | |
| There are a few things you need to use and avoid when writing your documentation
 | |
| to improve readability for readers and make documentation neat, direct, and
 | |
| clean.
 | |
| 
 | |
| 
 | |
| ### When to use the second person "you" as the pronoun
 | |
| 
 | |
| When writing articles or guides, your content should communicate directly to
 | |
| readers in the second person ("you") addressed form. It is easier to give them
 | |
| direct instruction on what to do on a particular topic. To see an example, visit
 | |
| the [Plugins Guide](./Plugins-Guide.md).
 | |
| 
 | |
| **Example**
 | |
| 
 | |
| Less like this: we can use the following plugins.
 | |
| 
 | |
| More like this: You can use the following plugins.
 | |
| 
 | |
| > According to [Wikipedia](#), ***You*** is usually a second person pronoun.
 | |
| > Also, used to refer to an indeterminate person, as a more common alternative
 | |
| > to a very formal indefinite pronoun.
 | |
| 
 | |
| ## When to avoid the second person "you" as the pronoun
 | |
| 
 | |
| One of the main rules of formal writing such as reference documentation, or API
 | |
| documentation, is to avoid the second person ("you") or directly addressing the
 | |
| reader.
 | |
| 
 | |
| **Example**
 | |
| 
 | |
| Less like this: You can use the following recommendation as an example.
 | |
| 
 | |
| More like this: As an example, the following recommendations should be
 | |
| referenced.
 | |
| 
 | |
| To view a live example, refer to the [Decorators](../Reference/Decorators.md)
 | |
| reference document.
 | |
| 
 | |
| 
 | |
| ### Avoid using contractions
 | |
| 
 | |
| Contractions are the shortened version of written and spoken forms of a word,
 | |
| i.e. using "don't" instead of "do not". Avoid contractions to provide a more
 | |
| formal tone.
 | |
| 
 | |
| ### Avoid using condescending terms
 | |
| 
 | |
| Condescending terms are words that include:
 | |
| 
 | |
| * Just
 | |
| * Easy
 | |
| * Simply
 | |
| * Basically
 | |
| * Obviously
 | |
| 
 | |
| The reader may not find it easy to use Fastify's framework and plugins; avoid
 | |
| words that make it sound simple, easy, offensive, or insensitive. Not everyone
 | |
| who reads the documentation has the same level of understanding.
 | |
| 
 | |
| 
 | |
| ### Starting with a verb
 | |
| 
 | |
| Mostly start your description with a verb, which makes it simple and precise for
 | |
| the reader to follow. Prefer using present tense because it is easier to read
 | |
| and understand than the past or future tense.
 | |
| 
 | |
| **Example**
 | |
| 
 | |
|  Less like this: There is a need for Node.js to be installed before you can be
 | |
|  able to use Fastify.
 | |
| 
 | |
|  More like this: Install Node.js to make use of Fastify.
 | |
| 
 | |
| ### Grammatical moods
 | |
| 
 | |
| Grammatical moods are a great way to express your writing. Avoid sounding too
 | |
| bossy while making a direct statement. Know when to switch between indicative,
 | |
| imperative, and subjunctive moods.
 | |
| 
 | |
| 
 | |
| **Indicative** - Use when making a factual statement or question.
 | |
| 
 | |
| Example: Since there is no testing framework available, "Fastify recommends ways
 | |
| to write tests".
 | |
| 
 | |
| **Imperative** - Use when giving instructions, actions, commands, or when you
 | |
| write your headings.
 | |
| 
 | |
| Example: Install dependencies before starting development.
 | |
| 
 | |
| 
 | |
| **Subjunctive** -  Use when making suggestions, hypotheses, or non-factual
 | |
| statements.
 | |
| 
 | |
| Example: Reading the documentation on our website is recommended to get
 | |
| comprehensive knowledge of the framework.
 | |
| 
 | |
| ### Use **active** voice instead of **passive**
 | |
| 
 | |
| Using active voice is a more compact and direct way of conveying your
 | |
| documentation.
 | |
| 
 | |
| **Example**
 | |
| 
 | |
| 
 | |
| Passive: The node dependencies and packages are installed by npm.
 | |
| 
 | |
| Active:  npm installs packages and node dependencies.
 | |
| 
 | |
| ## Writing Style
 | |
| 
 | |
| ### Documentation titles
 | |
| 
 | |
| When creating a new guide, API, or reference in the `/docs/` directory, use
 | |
| short titles that best describe the topic of your documentation. Name your files
 | |
| in kebab-cases and avoid Raw or camelCase. To learn more about kebab-case you
 | |
| can visit this medium article on [Case
 | |
| Styles](https://medium.com/better-programming/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841).
 | |
| 
 | |
| **Examples**:
 | |
| 
 | |
| >`hook-and-plugins.md`,
 | |
| 
 | |
|  `adding-test-plugins.md`,
 | |
| 
 | |
|  `removing-requests.md`.
 | |
| 
 | |
| ### Hyperlinks
 | |
| 
 | |
| Hyperlinks should have a clear title of what it references. Here is how your
 | |
| hyperlink should look:
 | |
| 
 | |
| ```MD
 | |
| <!-- More like this -->
 | |
| 
 | |
| // Add clear & brief description
 | |
| [Fastify Plugins] (https://www.fastify.io/docs/latest/Plugins/)
 | |
| 
 | |
| <!--Less like this -->
 | |
| 
 | |
| // incomplete description
 | |
| [Fastify] (https://www.fastify.io/docs/latest/Plugins/)
 | |
| 
 | |
| // Adding title in link brackets
 | |
| [](https://www.fastify.io/docs/latest/Plugins/ "fastify plugin")
 | |
| 
 | |
| // Empty title
 | |
| [](https://www.fastify.io/docs/latest/Plugins/)
 | |
| 
 | |
| // Adding links localhost URLs instead of using code strings (``)
 | |
| [http://localhost:3000/](http://localhost:3000/)
 | |
| 
 | |
| ```
 | |
| 
 | |
| Include in your documentation as many essential references as possible, but
 | |
| avoid having numerous links when writing for beginners to avoid distractions.
 |