Standards
To ensure that the documentation for Home Assistant is consistent and easy to follow for both novice and expert users, we ask that you follow a very strict set of standards for developing the documentation.
Style guide
Documentation should follow the Microsoft Style Guide. For more details, refer to the section General style guide and the YAML style guide.
Integration and platform pages
- All examples should be formatted to be included in
configuration.yamlunless explicitly stated.- Use capital letters and
_to indicate that the value needs to be replaced. For example,api_key: YOUR_API_KEYorapi_key: REPLACE_ME.
- Use capital letters and
- Integration and platform names should be a link to their respective documentation pages.
YAML and templates
We have a separate styling guide for YAML and the use of Jinja2 templates inside that YAML.
Glossary & terminology tooltips
The documentation should be written in a way that is understandable for everyone. To help with that, we have a glossary of terms that are used across Home Assistant, including our documentation.
If you use a term that is not in the glossary, feel free to add; or improve the definition of an existing term.
Additionally, we have a terminology tooltip available, that can be added and works everywhere in the documentation. This tooltip will show a definition of the term when the user hovers over it with a link for more information. It provides instant context to terminology a user might not be familiar with.
The syntax for adding terminology tooltips is:
{% term <term> [<text>] %}
The term referenced must, of course, be listed in our glossary, which is the source for the tooltips.
For example, if you write a text about automations, you could add a tooltip like this:
This is an example text about {% term automations %}, which is used
to demonstrate the use of tooltips, in this case, for the term
"automations" earlier in this sentence.
The <text> is optional and can be useful if you want to add a terminology
tooltip to a piece of text that differs from the term itself. In the following
example the automation term tooltip is added to the "automate everything" text:
Awesome, because this allowed me to {% term automation "automate everything" %}
in my home! I love it!
Renaming pages
It can happen that an integration or platform is renamed, in this case the documentation needs to be updated as well. If you rename a page, add an entry to the _redirects file as shown below. Please consider to add details, like release number or old integration/platform name, to the page in a note.
---
...
/getting-started/scripts /docs/scripts
---
Adding a redirect also applies if you move content around in the documentation.