home-assistant.github.io/source/developers/documentation/standards.markdown
Dale Higgs ba6e507456 [WIP] Standards/Style Guide for Documentation of Home Assistant (#3461)
* Initial list of ideas for documentation standards

* Add more points

* Rename files

* Create new section for Documentation and split content

* Fixes (Links, content and alike)
2017-10-09 20:49:00 +02:00

2.5 KiB

layout title description date sidebar comments sharing footer
page Documentation Standards Standards for the creation and maintenance of documentation for Home Assistant. 2017-09-16 03:51 true false true true

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.

{% linkable_title General Documentation %}

  • The language of the documentation should be American-English.
  • Don't put two spaces after a period and avoid the "Oxford comma".
  • Be objective and not gender favoring, polarizing, race related or religion inconsiderate.
  • The case of brand names, services, protocols, components, and platforms must match its respective counterpart. E.g. "Z-Wave" not "Zwave", "Z-wave", "Z Wave" or "ZWave". Also, "Input Select" not "input select" or "Input select".
  • All headings should use the {% raw %}{% linkable_title %}{% endraw %} tag.

{% linkable_title Component and Platform Pages %}

  • The Configuration Variables section must use the {% raw %}{% configuration %}{% endraw %} tag.
  • Configuration variables must document the requirement status.
  • Configuration variables must document the default value, if any.
  • Configuration variables must document the accepted value types.
    • Use [string, int] for configuration variables that accept multiple types.
  • Use YAML sequence syntax in the sample code if it is supported.
  • All examples should be formatted to be included in configuration.yaml unless explicitly stated.
  • Component and platform names should be a link to their respective documentation pages.

{% linkable_title Templates %}

  • All examples containing Jinja2 templates should be wrapped outside of the code markdown with the {% raw %}{% raw %}{% endraw %} tag.
  • Do not use states.switch.source.state in templates. Instead use states() and is_state().
  • Use double quotes (") for:
    • friendly_name
    • Single-line templates:
      • value_template
      • level_template
      • icon_template
      • Children of data_template
  • Use single quotes (') for:
    • Strings inside of templates:
      • States
      • Entity IDs
    • unit_of_measurement
  • No whitespace around pipe character (|) for Jinja2 filters.
  • Single whitespace after Jinja2 opening delimiters ({% raw %}{{{% endraw %}).
  • Single whitespace before Jinja2 closing delimiters ({% raw %}}}{% endraw %}).
  • Do not quote values for:
    • device_class
    • platform
    • condition
    • service