mirror of
https://github.com/home-assistant/developers.home-assistant.git
synced 2025-07-09 10:26:30 +00:00
Add quality scale (#92)
* Add quality scale * Rephrase intro * Address comments * Add translations for sensors only * Typo * Few more styling tweaks * Update integration_quality_scale_index.md * Typo
This commit is contained in:
parent
96017841e6
commit
e4ab6fdc82
49
docs/integration_quality_scale_index.md
Normal file
49
docs/integration_quality_scale_index.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
title: "Integration Quality Scale"
|
||||||
|
sidebar_label: "Introduction"
|
||||||
|
---
|
||||||
|
|
||||||
|
The Integration Quality Scale scores each integration based on the code quality and user experience. Each level of the quality scale consists of a list of requirements. If an integration matches all requirements, it's considered to have reached that level.
|
||||||
|
|
||||||
|
> Suggestions for changes can be done by creating an issue in the [architecture repo](https://github.com/home-assistant/architecture/issues/).
|
||||||
|
|
||||||
|
# No score
|
||||||
|
|
||||||
|
This integration passes the bare minimum requirements to become part of the index.
|
||||||
|
|
||||||
|
- Satisfy all requirements for [creating components](creating_component_code_review.md) and [creating platforms](creating_platform_code_review.md).
|
||||||
|
- Configurable via `configuration.yaml`
|
||||||
|
|
||||||
|
# Silver 🥈
|
||||||
|
|
||||||
|
This integration is able to cope when things go wrong. It will not print any exceptions nor will it fill the log with retry attempts.
|
||||||
|
|
||||||
|
- Set an appropriate `SCAN_INTERVAL` (if a polling integration)
|
||||||
|
- Raise `PlatformNotReady` if unable to connect during platform setup (if appropriate)
|
||||||
|
- Handles expiration of auth credentials. Refresh if possible or print correct error and fail setup. If based on a config entry, should trigger a new config entry flow to re-authorize.
|
||||||
|
- Handles internet unavailable. Log a warning once when unavailable, log once when reconnected.
|
||||||
|
- Handles device/service unavailable. Log a warning once when unavailable, log once when reconnected.
|
||||||
|
- Set `available` property to `False` if appropriate ([docs](entity_index.md#generic-properties))
|
||||||
|
- Entities have unique ID (if available) ([docs](entity_registry_index.md#unique-id-requirements))
|
||||||
|
|
||||||
|
# Gold 🥇
|
||||||
|
|
||||||
|
This is a solid integration that is able to survive poor conditions and can be configured via the user interface.
|
||||||
|
|
||||||
|
- Configurable via config entries.
|
||||||
|
- Don't allow configuring already configured device/service (example: no 2 entries for same hub)
|
||||||
|
- Tests for the config flow
|
||||||
|
- Discoverable (if available)
|
||||||
|
- Entities have device info (if available) ([docs](device_registry_index.md#defining-devices))
|
||||||
|
- States are translated in the frontend (sensors only, [docs](internationalization_index.md))
|
||||||
|
- Tests for reading data from/controlling the integration ([docs](development_testing.md))
|
||||||
|
- Has a code owner
|
||||||
|
|
||||||
|
# Platinum 🏆
|
||||||
|
|
||||||
|
Best of the best. The integration is completely async, meaning it's super fast. Integrations that reach platinum level will require approval by the code owner for each PR.
|
||||||
|
|
||||||
|
- Set appropriate `PARALLEL_UPDATES` constant
|
||||||
|
- Support config entry unloading (called when config entry is removed)
|
||||||
|
- Integration + dependency are async
|
||||||
|
- Uses aiohttp and allows passing in websession (if making HTTP requests)
|
@ -4,132 +4,831 @@
|
|||||||
"next": "Next",
|
"next": "Next",
|
||||||
"previous": "Previous",
|
"previous": "Previous",
|
||||||
"tagline": "All you need to start developing for Home Assistant",
|
"tagline": "All you need to start developing for Home Assistant",
|
||||||
"architecture_components": "Components Architecture",
|
"docs": {
|
||||||
"Components": "Components",
|
"architecture_components": {
|
||||||
"architecture_entities": "Entity Architecture",
|
"title": "Components Architecture",
|
||||||
"Entity": "Entity",
|
"sidebar_label": "Components"
|
||||||
"architecture_hassio": "Hass.io Architecture",
|
},
|
||||||
"Hass.io": "Hass.io",
|
"architecture_entities": {
|
||||||
"architecture_index": "Architecture",
|
"title": "Entity Architecture",
|
||||||
"Introduction": "Introduction",
|
"sidebar_label": "Entity"
|
||||||
"asyncio_101": "Asyncio 101",
|
},
|
||||||
"asyncio_categorizing_functions": "Categorizing Functions",
|
"architecture_hassio": {
|
||||||
"asyncio_index": "Asynchronous Programming",
|
"title": "Hass.io Architecture",
|
||||||
"asyncio_working_with_async": "Working with Async",
|
"sidebar_label": "Hass.io"
|
||||||
"auth_api": "Authentication API",
|
},
|
||||||
"API": "API",
|
"architecture_index": {
|
||||||
"auth_auth_module": "Multi-factor Authentication Modules",
|
"title": "Architecture",
|
||||||
"auth_auth_provider": "Authentication Providers",
|
"sidebar_label": "Introduction"
|
||||||
"auth_index": "Authentication",
|
},
|
||||||
"config_entries_config_flow_handler": "Config Flow Handlers",
|
"asyncio_101": {
|
||||||
"config_entries_index": "Config Entries",
|
"title": "Asyncio 101"
|
||||||
"configuration_yaml_index": "Configuration.yaml",
|
},
|
||||||
"creating_component_code_review": "Checklist for creating a component",
|
"asyncio_categorizing_functions": {
|
||||||
"creating_component_deps_and_reqs": "Requirements & Dependencies",
|
"title": "Categorizing Functions"
|
||||||
"creating_component_discovery": "Component Discovery",
|
},
|
||||||
"creating_component_events": "Handling events",
|
"asyncio_index": {
|
||||||
"creating_component_generic_discovery": "Generic Platform Discovery",
|
"title": "Asynchronous Programming",
|
||||||
"creating_component_index": "Creating components",
|
"sidebar_label": "Introduction"
|
||||||
"creating_component_loading": "Loading your components",
|
},
|
||||||
"creating_component_states": "Handling states",
|
"asyncio_working_with_async": {
|
||||||
"creating_platform_code_review": "Checklist for creating a platform",
|
"title": "Working with Async"
|
||||||
"creating_platform_example_light": "Example light platform",
|
},
|
||||||
"creating_platform_example_sensor": "Example sensor platform",
|
"auth_api": {
|
||||||
"creating_platform_index": "Adding support for a new platform",
|
"title": "Authentication API",
|
||||||
"data_entry_flow_index": "Data Entry Flow",
|
"sidebar_label": "API"
|
||||||
"dev_101_config": "Using Config",
|
},
|
||||||
"dev_101_events": "Using Events",
|
"auth_auth_module": {
|
||||||
"dev_101_hass": "Hass object",
|
"title": "Multi-factor Authentication Modules"
|
||||||
"dev_101_index": "Development 101",
|
},
|
||||||
"dev_101_services": "Using Services",
|
"auth_auth_provider": {
|
||||||
"dev_101_states": "Using States",
|
"title": "Authentication Providers"
|
||||||
"development_catching_up": "Catching up with Reality",
|
},
|
||||||
"development_checklist": "Development Checklist",
|
"auth_index": {
|
||||||
"development_environment": "Set up Development Environment",
|
"title": "Authentication",
|
||||||
"development_guidelines": "Style guidelines",
|
"sidebar_label": "Introduction"
|
||||||
"development_index": "Starting with Development",
|
},
|
||||||
"development_submitting": "Submit your work",
|
"config_entries_config_flow_handler": {
|
||||||
"development_testing": "Testing your code",
|
"title": "Config Flow Handlers"
|
||||||
"development_typing": "Adding type hints to your code",
|
},
|
||||||
"development_validation": "Validate the input",
|
"config_entries_index": {
|
||||||
"device_registry_index": "Device Registry",
|
"title": "Config Entries",
|
||||||
"documentation_create_page": "Create a new page",
|
"sidebar_label": "Introduction"
|
||||||
"documentation_index": "Documentation",
|
},
|
||||||
"documentation_standards": "Standards",
|
"configuration_yaml_index": {
|
||||||
"entity_alarm_control_panel": "Alarm Control Panel Entity",
|
"title": "Configuration.yaml",
|
||||||
"Alarm Control Panel": "Alarm Control Panel",
|
"sidebar_label": "Introduction"
|
||||||
"entity_binary_sensor": "Binary Sensor Entity",
|
},
|
||||||
"Binary Sensor": "Binary Sensor",
|
"creating_component_code_review": {
|
||||||
"entity_climate": "Climate Entity",
|
"title": "Checklist for creating a component"
|
||||||
"Climate": "Climate",
|
},
|
||||||
"entity_cover": "Cover Entity",
|
"creating_component_deps_and_reqs": {
|
||||||
"Cover": "Cover",
|
"title": "Requirements & Dependencies"
|
||||||
"entity_fan": "Fan Entity",
|
},
|
||||||
"Fan": "Fan",
|
"creating_component_discovery": {
|
||||||
"entity_index": "Entity",
|
"title": "Component Discovery"
|
||||||
"entity_light": "Light Entity",
|
},
|
||||||
"Light": "Light",
|
"creating_component_events": {
|
||||||
"entity_lock": "Lock Entity",
|
"title": "Handling events"
|
||||||
"Lock": "Lock",
|
},
|
||||||
"entity_media_player": "Media Player Entity",
|
"creating_component_generic_discovery": {
|
||||||
"Media Player": "Media Player",
|
"title": "Generic Platform Discovery"
|
||||||
"entity_registry_index": "Entity Registry",
|
},
|
||||||
"entity_remote": "Remote Entity",
|
"creating_component_index": {
|
||||||
"Remote": "Remote",
|
"title": "Creating components",
|
||||||
"entity_sensor": "Sensor Entity",
|
"sidebar_label": "Introduction"
|
||||||
"Sensor": "Sensor",
|
},
|
||||||
"entity_switch": "Switch Entity",
|
"creating_component_loading": {
|
||||||
"Switch": "Switch",
|
"title": "Loading your components"
|
||||||
"entity_vacuum": "Vacuum Entity",
|
},
|
||||||
"Vacuum": "Vacuum",
|
"creating_component_states": {
|
||||||
"entity_weather": "Weather Entity",
|
"title": "Handling states"
|
||||||
"Weather": "Weather",
|
},
|
||||||
"external_api_rest": "REST API",
|
"creating_platform_code_review": {
|
||||||
"external_api_server_sent_events": "Server-sent events",
|
"title": "Checklist for creating a platform"
|
||||||
"external_api_websocket": "WebSocket API",
|
},
|
||||||
"frontend_add_card": "Adding state card",
|
"creating_platform_example_light": {
|
||||||
"frontend_add_more_info": "Adding more info dialogs",
|
"title": "Example light platform"
|
||||||
"frontend_add_websocket_api": "Extending the WebSocket API",
|
},
|
||||||
"frontend_architecture": "Home Assistant Frontend Architecture",
|
"creating_platform_example_sensor": {
|
||||||
|
"title": "Example sensor platform"
|
||||||
|
},
|
||||||
|
"creating_platform_index": {
|
||||||
|
"title": "Adding support for a new platform",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"data_entry_flow_index": {
|
||||||
|
"title": "Data Entry Flow",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"dev_101_config": {
|
||||||
|
"title": "Using Config"
|
||||||
|
},
|
||||||
|
"dev_101_events": {
|
||||||
|
"title": "Using Events"
|
||||||
|
},
|
||||||
|
"dev_101_hass": {
|
||||||
|
"title": "Hass object"
|
||||||
|
},
|
||||||
|
"dev_101_index": {
|
||||||
|
"title": "Development 101",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"dev_101_services": {
|
||||||
|
"title": "Using Services"
|
||||||
|
},
|
||||||
|
"dev_101_states": {
|
||||||
|
"title": "Using States"
|
||||||
|
},
|
||||||
|
"development_catching_up": {
|
||||||
|
"title": "Catching up with Reality"
|
||||||
|
},
|
||||||
|
"development_checklist": {
|
||||||
|
"title": "Development Checklist"
|
||||||
|
},
|
||||||
|
"development_environment": {
|
||||||
|
"title": "Set up Development Environment"
|
||||||
|
},
|
||||||
|
"development_guidelines": {
|
||||||
|
"title": "Style guidelines"
|
||||||
|
},
|
||||||
|
"development_index": {
|
||||||
|
"title": "Starting with Development",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"development_submitting": {
|
||||||
|
"title": "Submit your work"
|
||||||
|
},
|
||||||
|
"development_testing": {
|
||||||
|
"title": "Testing your code"
|
||||||
|
},
|
||||||
|
"development_typing": {
|
||||||
|
"title": "Adding type hints to your code"
|
||||||
|
},
|
||||||
|
"development_validation": {
|
||||||
|
"title": "Validate the input"
|
||||||
|
},
|
||||||
|
"device_registry_index": {
|
||||||
|
"title": "Device Registry",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"documentation_create_page": {
|
||||||
|
"title": "Create a new page"
|
||||||
|
},
|
||||||
|
"documentation_index": {
|
||||||
|
"title": "Documentation"
|
||||||
|
},
|
||||||
|
"documentation_standards": {
|
||||||
|
"title": "Standards"
|
||||||
|
},
|
||||||
|
"entity_alarm_control_panel": {
|
||||||
|
"title": "Alarm Control Panel Entity",
|
||||||
|
"sidebar_label": "Alarm Control Panel"
|
||||||
|
},
|
||||||
|
"entity_binary_sensor": {
|
||||||
|
"title": "Binary Sensor Entity",
|
||||||
|
"sidebar_label": "Binary Sensor"
|
||||||
|
},
|
||||||
|
"entity_climate": {
|
||||||
|
"title": "Climate Entity",
|
||||||
|
"sidebar_label": "Climate"
|
||||||
|
},
|
||||||
|
"entity_cover": {
|
||||||
|
"title": "Cover Entity",
|
||||||
|
"sidebar_label": "Cover"
|
||||||
|
},
|
||||||
|
"entity_fan": {
|
||||||
|
"title": "Fan Entity",
|
||||||
|
"sidebar_label": "Fan"
|
||||||
|
},
|
||||||
|
"entity_index": {
|
||||||
|
"title": "Entity",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"entity_light": {
|
||||||
|
"title": "Light Entity",
|
||||||
|
"sidebar_label": "Light"
|
||||||
|
},
|
||||||
|
"entity_lock": {
|
||||||
|
"title": "Lock Entity",
|
||||||
|
"sidebar_label": "Lock"
|
||||||
|
},
|
||||||
|
"entity_media_player": {
|
||||||
|
"title": "Media Player Entity",
|
||||||
|
"sidebar_label": "Media Player"
|
||||||
|
},
|
||||||
|
"entity_registry_index": {
|
||||||
|
"title": "Entity Registry",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"entity_remote": {
|
||||||
|
"title": "Remote Entity",
|
||||||
|
"sidebar_label": "Remote"
|
||||||
|
},
|
||||||
|
"entity_sensor": {
|
||||||
|
"title": "Sensor Entity",
|
||||||
|
"sidebar_label": "Sensor"
|
||||||
|
},
|
||||||
|
"entity_switch": {
|
||||||
|
"title": "Switch Entity",
|
||||||
|
"sidebar_label": "Switch"
|
||||||
|
},
|
||||||
|
"entity_vacuum": {
|
||||||
|
"title": "Vacuum Entity",
|
||||||
|
"sidebar_label": "Vacuum"
|
||||||
|
},
|
||||||
|
"entity_weather": {
|
||||||
|
"title": "Weather Entity",
|
||||||
|
"sidebar_label": "Weather"
|
||||||
|
},
|
||||||
|
"external_api_rest": {
|
||||||
|
"title": "REST API"
|
||||||
|
},
|
||||||
|
"external_api_server_sent_events": {
|
||||||
|
"title": "Server-sent events"
|
||||||
|
},
|
||||||
|
"external_api_websocket": {
|
||||||
|
"title": "WebSocket API"
|
||||||
|
},
|
||||||
|
"frontend_add_card": {
|
||||||
|
"title": "Adding state card"
|
||||||
|
},
|
||||||
|
"frontend_add_more_info": {
|
||||||
|
"title": "Adding more info dialogs"
|
||||||
|
},
|
||||||
|
"frontend_add_websocket_api": {
|
||||||
|
"title": "Extending the WebSocket API"
|
||||||
|
},
|
||||||
|
"frontend_architecture": {
|
||||||
|
"title": "Home Assistant Frontend Architecture",
|
||||||
|
"sidebar_label": "Architecture"
|
||||||
|
},
|
||||||
|
"frontend_creating_custom_panels": {
|
||||||
|
"title": "Creating custom panels"
|
||||||
|
},
|
||||||
|
"frontend_creating_custom_ui": {
|
||||||
|
"title": "Creating custom UI"
|
||||||
|
},
|
||||||
|
"frontend_data": {
|
||||||
|
"title": "Frontend data",
|
||||||
|
"sidebar_label": "Data"
|
||||||
|
},
|
||||||
|
"frontend_development": {
|
||||||
|
"title": "Frontend development",
|
||||||
|
"sidebar_label": "Development"
|
||||||
|
},
|
||||||
|
"frontend_external_auth": {
|
||||||
|
"title": "External Authentication"
|
||||||
|
},
|
||||||
|
"frontend_index": {
|
||||||
|
"title": "Home Assistant Frontend",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"hassio_addon_communication": {
|
||||||
|
"title": "Add-On Communication"
|
||||||
|
},
|
||||||
|
"hassio_addon_config": {
|
||||||
|
"title": "Add-On Configuration"
|
||||||
|
},
|
||||||
|
"hassio_addon_index": {
|
||||||
|
"title": "Developing an add-on",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"hassio_addon_presentation": {
|
||||||
|
"title": "Presenting your add-on"
|
||||||
|
},
|
||||||
|
"hassio_addon_publishing": {
|
||||||
|
"title": "Publishing your add-on"
|
||||||
|
},
|
||||||
|
"hassio_addon_repository": {
|
||||||
|
"title": "Create an add-on repository"
|
||||||
|
},
|
||||||
|
"hassio_addon_security": {
|
||||||
|
"title": "Add-on security"
|
||||||
|
},
|
||||||
|
"hassio_addon_testing": {
|
||||||
|
"title": "Local add-on testing"
|
||||||
|
},
|
||||||
|
"hassio_addon_tutorial": {
|
||||||
|
"title": "Tutorial: Making your first add-on"
|
||||||
|
},
|
||||||
|
"hassio_debugging": {
|
||||||
|
"title": "Debugging Hass.io"
|
||||||
|
},
|
||||||
|
"hassio_hass": {
|
||||||
|
"title": "Hass.io <> Home Assistant integration development",
|
||||||
|
"sidebar_label": "HASS Integration development"
|
||||||
|
},
|
||||||
|
"integration_quality_scale_index": {
|
||||||
|
"title": "Integration Quality Scale",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"intent_builtin": {
|
||||||
|
"title": "Built-in intents"
|
||||||
|
},
|
||||||
|
"intent_conversation": {
|
||||||
|
"title": "Registering sentences"
|
||||||
|
},
|
||||||
|
"intent_firing": {
|
||||||
|
"title": "Firing intents"
|
||||||
|
},
|
||||||
|
"intent_handling": {
|
||||||
|
"title": "Handling intents"
|
||||||
|
},
|
||||||
|
"intent_index": {
|
||||||
|
"title": "Intents",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"internationalization_backend_localization": {
|
||||||
|
"title": "Backend Localization"
|
||||||
|
},
|
||||||
|
"internationalization_custom_component_localization": {
|
||||||
|
"title": "Custom Component Localization"
|
||||||
|
},
|
||||||
|
"internationalization_index": {
|
||||||
|
"title": "Internationalization"
|
||||||
|
},
|
||||||
|
"internationalization_translation": {
|
||||||
|
"title": "Translation"
|
||||||
|
},
|
||||||
|
"lovelace_custom_card": {
|
||||||
|
"title": "Lovelace: Custom Cards"
|
||||||
|
},
|
||||||
|
"lovelace_index": {
|
||||||
|
"title": "Lovelace UI",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"maintenance": {
|
||||||
|
"title": "Maintenance"
|
||||||
|
},
|
||||||
|
"misc": {
|
||||||
|
"title": "Miscellaneous"
|
||||||
|
},
|
||||||
|
"releasing": {
|
||||||
|
"title": "Releasing"
|
||||||
|
},
|
||||||
|
"version-0.72-architecture_components": {
|
||||||
|
"title": "Components Architecture",
|
||||||
|
"sidebar_label": "Components"
|
||||||
|
},
|
||||||
|
"version-0.72-architecture_entities": {
|
||||||
|
"title": "Entity Architecture",
|
||||||
|
"sidebar_label": "Entity"
|
||||||
|
},
|
||||||
|
"version-0.72-architecture_hassio": {
|
||||||
|
"title": "Hass.io Architecture",
|
||||||
|
"sidebar_label": "Hass.io"
|
||||||
|
},
|
||||||
|
"version-0.72-architecture_index": {
|
||||||
|
"title": "Architecture",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-asyncio_101": {
|
||||||
|
"title": "Asyncio 101"
|
||||||
|
},
|
||||||
|
"version-0.72-asyncio_categorizing_functions": {
|
||||||
|
"title": "Categorizing Functions"
|
||||||
|
},
|
||||||
|
"version-0.72-asyncio_index": {
|
||||||
|
"title": "Asynchronous Programming",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-asyncio_working_with_async": {
|
||||||
|
"title": "Working with Async"
|
||||||
|
},
|
||||||
|
"version-0.72-auth_api": {
|
||||||
|
"title": "Authentication API",
|
||||||
|
"sidebar_label": "API"
|
||||||
|
},
|
||||||
|
"version-0.72-auth_auth_provider": {
|
||||||
|
"title": "Authentication Providers"
|
||||||
|
},
|
||||||
|
"version-0.72-auth_index": {
|
||||||
|
"title": "Authentication",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-config_entries_config_flow_handler": {
|
||||||
|
"title": "Config Flow Handlers"
|
||||||
|
},
|
||||||
|
"version-0.72-config_entries_index": {
|
||||||
|
"title": "Config Entries",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-configuration_yaml_index": {
|
||||||
|
"title": "Configuration.yaml",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_code_review": {
|
||||||
|
"title": "Checklist for creating a component"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_deps_and_reqs": {
|
||||||
|
"title": "Requirements & Dependencies"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_discovery": {
|
||||||
|
"title": "Component Discovery"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_events": {
|
||||||
|
"title": "Handling events"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_generic_discovery": {
|
||||||
|
"title": "Generic Platform Discovery"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_index": {
|
||||||
|
"title": "Creating components",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_loading": {
|
||||||
|
"title": "Loading your components"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_component_states": {
|
||||||
|
"title": "Handling states"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_platform_code_review": {
|
||||||
|
"title": "Checklist for creating a platform"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_platform_example_light": {
|
||||||
|
"title": "Example light platform"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_platform_example_sensor": {
|
||||||
|
"title": "Example sensor platform"
|
||||||
|
},
|
||||||
|
"version-0.72-creating_platform_index": {
|
||||||
|
"title": "Adding support for a new platform",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-data_entry_flow_index": {
|
||||||
|
"title": "Data Entry Flow",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-dev_101_config": {
|
||||||
|
"title": "Using Config"
|
||||||
|
},
|
||||||
|
"version-0.72-dev_101_events": {
|
||||||
|
"title": "Using Events"
|
||||||
|
},
|
||||||
|
"version-0.72-dev_101_hass": {
|
||||||
|
"title": "Hass object"
|
||||||
|
},
|
||||||
|
"version-0.72-dev_101_index": {
|
||||||
|
"title": "Development 101",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-dev_101_services": {
|
||||||
|
"title": "Using Services"
|
||||||
|
},
|
||||||
|
"version-0.72-dev_101_states": {
|
||||||
|
"title": "Using States"
|
||||||
|
},
|
||||||
|
"version-0.72-development_catching_up": {
|
||||||
|
"title": "Catching up with Reality"
|
||||||
|
},
|
||||||
|
"version-0.72-development_checklist": {
|
||||||
|
"title": "Development Checklist"
|
||||||
|
},
|
||||||
|
"version-0.72-development_environment": {
|
||||||
|
"title": "Set up Development Environment"
|
||||||
|
},
|
||||||
|
"version-0.72-development_guidelines": {
|
||||||
|
"title": "Style guidelines"
|
||||||
|
},
|
||||||
|
"version-0.72-development_index": {
|
||||||
|
"title": "Starting with Development",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-development_submitting": {
|
||||||
|
"title": "Submit your work"
|
||||||
|
},
|
||||||
|
"version-0.72-development_testing": {
|
||||||
|
"title": "Testing your code"
|
||||||
|
},
|
||||||
|
"version-0.72-development_typing": {
|
||||||
|
"title": "Adding type hints to your code"
|
||||||
|
},
|
||||||
|
"version-0.72-development_validation": {
|
||||||
|
"title": "Validate the input"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_alarm_control_panel": {
|
||||||
|
"title": "Alarm Control Panel Entity",
|
||||||
|
"sidebar_label": "Alarm Control Panel"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_binary_sensor": {
|
||||||
|
"title": "Binary Sensor Entity",
|
||||||
|
"sidebar_label": "Binary Sensor"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_climate": {
|
||||||
|
"title": "Climate Entity",
|
||||||
|
"sidebar_label": "Climate"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_cover": {
|
||||||
|
"title": "Cover Entity",
|
||||||
|
"sidebar_label": "Cover"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_fan": {
|
||||||
|
"title": "Fan Entity",
|
||||||
|
"sidebar_label": "Fan"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_index": {
|
||||||
|
"title": "Entity",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_light": {
|
||||||
|
"title": "Light Entity",
|
||||||
|
"sidebar_label": "Light"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_lock": {
|
||||||
|
"title": "Lock Entity",
|
||||||
|
"sidebar_label": "Lock"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_media_player": {
|
||||||
|
"title": "Media Player Entity",
|
||||||
|
"sidebar_label": "Media Player"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_registry_index": {
|
||||||
|
"title": "Entity Registry",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_remote": {
|
||||||
|
"title": "Remote Entity",
|
||||||
|
"sidebar_label": "Remote"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_sensor": {
|
||||||
|
"title": "Sensor Entity",
|
||||||
|
"sidebar_label": "Sensor"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_switch": {
|
||||||
|
"title": "Switch Entity",
|
||||||
|
"sidebar_label": "Switch"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_vacuum": {
|
||||||
|
"title": "Vacuum Entity",
|
||||||
|
"sidebar_label": "Vacuum"
|
||||||
|
},
|
||||||
|
"version-0.72-entity_weather": {
|
||||||
|
"title": "Weather Entity",
|
||||||
|
"sidebar_label": "Weather"
|
||||||
|
},
|
||||||
|
"version-0.72-external_api_rest_python": {
|
||||||
|
"title": "REST API - Python bindings"
|
||||||
|
},
|
||||||
|
"version-0.72-external_api_rest": {
|
||||||
|
"title": "REST API"
|
||||||
|
},
|
||||||
|
"version-0.72-external_api_server_sent_events": {
|
||||||
|
"title": "Server-sent events"
|
||||||
|
},
|
||||||
|
"version-0.72-external_api_websocket": {
|
||||||
|
"title": "WebSocket API"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_add_card": {
|
||||||
|
"title": "Adding state card"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_add_more_info": {
|
||||||
|
"title": "Adding more info dialogs"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_add_websocket_api": {
|
||||||
|
"title": "Extending the WebSocket API"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_architecture": {
|
||||||
|
"title": "Home Assistant Frontend Architecture",
|
||||||
|
"sidebar_label": "Architecture"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_creating_custom_panels": {
|
||||||
|
"title": "Creating custom panels"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_creating_custom_ui": {
|
||||||
|
"title": "Creating custom UI"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_development": {
|
||||||
|
"title": "Frontend development",
|
||||||
|
"sidebar_label": "Development"
|
||||||
|
},
|
||||||
|
"version-0.72-frontend_index": {
|
||||||
|
"title": "Home Assistant Frontend",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_communication": {
|
||||||
|
"title": "Add-On Communication"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_config": {
|
||||||
|
"title": "Add-On Configuration"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_index": {
|
||||||
|
"title": "Developing an add-on",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_presentation": {
|
||||||
|
"title": "Presenting your add-on"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_publishing": {
|
||||||
|
"title": "Publishing your add-on"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_repository": {
|
||||||
|
"title": "Create an add-on repository"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_testing": {
|
||||||
|
"title": "Local add-on testing"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_addon_tutorial": {
|
||||||
|
"title": "Tutorial: Making your first add-on"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_debugging": {
|
||||||
|
"title": "Debugging Hass.io"
|
||||||
|
},
|
||||||
|
"version-0.72-hassio_hass": {
|
||||||
|
"title": "Hass.io <> Home Assistant integration development",
|
||||||
|
"sidebar_label": "HASS Integration development"
|
||||||
|
},
|
||||||
|
"version-0.72-intent_builtin": {
|
||||||
|
"title": "Built-in intents"
|
||||||
|
},
|
||||||
|
"version-0.72-intent_conversation": {
|
||||||
|
"title": "Registering sentences"
|
||||||
|
},
|
||||||
|
"version-0.72-intent_firing": {
|
||||||
|
"title": "Firing intents"
|
||||||
|
},
|
||||||
|
"version-0.72-intent_handling": {
|
||||||
|
"title": "Handling intents"
|
||||||
|
},
|
||||||
|
"version-0.72-intent_index": {
|
||||||
|
"title": "Intents",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-internationalization_backend_localization": {
|
||||||
|
"title": "Backend Localization"
|
||||||
|
},
|
||||||
|
"version-0.72-internationalization_custom_component_localization": {
|
||||||
|
"title": "Custom Component Localization"
|
||||||
|
},
|
||||||
|
"version-0.72-internationalization_index": {
|
||||||
|
"title": "Internationalization"
|
||||||
|
},
|
||||||
|
"version-0.72-internationalization_translation": {
|
||||||
|
"title": "Translation"
|
||||||
|
},
|
||||||
|
"version-0.72-lovelace_card_types": {
|
||||||
|
"title": "Type Of Cards",
|
||||||
|
"sidebar_label": "Cards"
|
||||||
|
},
|
||||||
|
"version-0.72-lovelace_custom_card": {
|
||||||
|
"title": "Custom Cards"
|
||||||
|
},
|
||||||
|
"version-0.72-lovelace_index": {
|
||||||
|
"title": "Lovelace UI",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.72-maintenance": {
|
||||||
|
"title": "Maintenance"
|
||||||
|
},
|
||||||
|
"version-0.72-misc": {
|
||||||
|
"title": "Miscellaneous"
|
||||||
|
},
|
||||||
|
"version-0.72-releasing": {
|
||||||
|
"title": "Releasing"
|
||||||
|
},
|
||||||
|
"version-0.73.0-auth_api": {
|
||||||
|
"title": "Authentication API",
|
||||||
|
"sidebar_label": "API"
|
||||||
|
},
|
||||||
|
"version-0.73.0-development_guidelines": {
|
||||||
|
"title": "Style guidelines"
|
||||||
|
},
|
||||||
|
"version-0.73.0-documentation_create_page": {
|
||||||
|
"title": "Create a new page"
|
||||||
|
},
|
||||||
|
"version-0.73.0-documentation_index": {
|
||||||
|
"title": "Documentation"
|
||||||
|
},
|
||||||
|
"version-0.73.0-documentation_standards": {
|
||||||
|
"title": "Standards"
|
||||||
|
},
|
||||||
|
"version-0.73.0-frontend_development": {
|
||||||
|
"title": "Frontend development",
|
||||||
|
"sidebar_label": "Development"
|
||||||
|
},
|
||||||
|
"version-0.73.0-hassio_addon_config": {
|
||||||
|
"title": "Add-On Configuration"
|
||||||
|
},
|
||||||
|
"version-0.73.0-lovelace_custom_card": {
|
||||||
|
"title": "Custom Cards"
|
||||||
|
},
|
||||||
|
"version-0.73.0-lovelace_index": {
|
||||||
|
"title": "Lovelace UI",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.74.0-asyncio_working_with_async": {
|
||||||
|
"title": "Working with Async"
|
||||||
|
},
|
||||||
|
"version-0.74.0-auth_api": {
|
||||||
|
"title": "Authentication API",
|
||||||
|
"sidebar_label": "API"
|
||||||
|
},
|
||||||
|
"version-0.74.0-entity_media_player": {
|
||||||
|
"title": "Media Player Entity",
|
||||||
|
"sidebar_label": "Media Player"
|
||||||
|
},
|
||||||
|
"version-0.74.0-entity_vacuum": {
|
||||||
|
"title": "Vacuum Entity",
|
||||||
|
"sidebar_label": "Vacuum"
|
||||||
|
},
|
||||||
|
"version-0.74.0-hassio_addon_tutorial": {
|
||||||
|
"title": "Tutorial: Making your first add-on"
|
||||||
|
},
|
||||||
|
"version-0.74.0-internationalization_index": {
|
||||||
|
"title": "Internationalization"
|
||||||
|
},
|
||||||
|
"version-0.74.0-lovelace_custom_card": {
|
||||||
|
"title": "Lovelace: Custom Cards"
|
||||||
|
},
|
||||||
|
"version-0.76.0-auth_api": {
|
||||||
|
"title": "Authentication API",
|
||||||
|
"sidebar_label": "API"
|
||||||
|
},
|
||||||
|
"version-0.76.0-auth_auth_provider": {
|
||||||
|
"title": "Authentication Providers"
|
||||||
|
},
|
||||||
|
"version-0.76.0-development_environment": {
|
||||||
|
"title": "Set up Development Environment"
|
||||||
|
},
|
||||||
|
"version-0.76.0-documentation_create_page": {
|
||||||
|
"title": "Create a new page"
|
||||||
|
},
|
||||||
|
"version-0.76.0-documentation_standards": {
|
||||||
|
"title": "Standards"
|
||||||
|
},
|
||||||
|
"version-0.76.0-frontend_creating_custom_panels": {
|
||||||
|
"title": "Creating custom panels"
|
||||||
|
},
|
||||||
|
"version-0.76.0-frontend_data": {
|
||||||
|
"title": "Frontend data",
|
||||||
|
"sidebar_label": "Data"
|
||||||
|
},
|
||||||
|
"version-0.76.0-hassio_addon_config": {
|
||||||
|
"title": "Add-On Configuration"
|
||||||
|
},
|
||||||
|
"version-0.76.0-hassio_debugging": {
|
||||||
|
"title": "Debugging Hass.io"
|
||||||
|
},
|
||||||
|
"version-0.77.0-auth_api": {
|
||||||
|
"title": "Authentication API",
|
||||||
|
"sidebar_label": "API"
|
||||||
|
},
|
||||||
|
"version-0.77.0-auth_auth_module": {
|
||||||
|
"title": "Multi-factor Authentication Modules"
|
||||||
|
},
|
||||||
|
"version-0.77.0-auth_auth_provider": {
|
||||||
|
"title": "Authentication Providers"
|
||||||
|
},
|
||||||
|
"version-0.77.0-auth_index": {
|
||||||
|
"title": "Authentication",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.77.0-config_entries_config_flow_handler": {
|
||||||
|
"title": "Config Flow Handlers"
|
||||||
|
},
|
||||||
|
"version-0.77.0-data_entry_flow_index": {
|
||||||
|
"title": "Data Entry Flow",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.77.0-frontend_data": {
|
||||||
|
"title": "Frontend data",
|
||||||
|
"sidebar_label": "Data"
|
||||||
|
},
|
||||||
|
"version-0.78.0-asyncio_working_with_async": {
|
||||||
|
"title": "Working with Async"
|
||||||
|
},
|
||||||
|
"version-0.78.0-auth_api": {
|
||||||
|
"title": "Authentication API",
|
||||||
|
"sidebar_label": "API"
|
||||||
|
},
|
||||||
|
"version-0.78.0-auth_auth_module": {
|
||||||
|
"title": "Multi-factor Authentication Modules"
|
||||||
|
},
|
||||||
|
"version-0.78.0-auth_index": {
|
||||||
|
"title": "Authentication",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.78.0-creating_component_code_review": {
|
||||||
|
"title": "Checklist for creating a component"
|
||||||
|
},
|
||||||
|
"version-0.78.0-development_guidelines": {
|
||||||
|
"title": "Style guidelines"
|
||||||
|
},
|
||||||
|
"version-0.78.0-device_registry_index": {
|
||||||
|
"title": "Device Registry",
|
||||||
|
"sidebar_label": "Introduction"
|
||||||
|
},
|
||||||
|
"version-0.78.0-documentation_standards": {
|
||||||
|
"title": "Standards"
|
||||||
|
},
|
||||||
|
"version-0.78.0-external_api_websocket": {
|
||||||
|
"title": "WebSocket API"
|
||||||
|
},
|
||||||
|
"version-0.78.0-frontend_add_more_info": {
|
||||||
|
"title": "Adding more info dialogs"
|
||||||
|
},
|
||||||
|
"version-0.78.0-frontend_external_auth": {
|
||||||
|
"title": "External Authentication"
|
||||||
|
},
|
||||||
|
"version-0.78.0-hassio_addon_communication": {
|
||||||
|
"title": "Add-On Communication"
|
||||||
|
},
|
||||||
|
"version-0.78.0-hassio_addon_config": {
|
||||||
|
"title": "Add-On Configuration"
|
||||||
|
},
|
||||||
|
"version-0.78.0-hassio_addon_security": {
|
||||||
|
"title": "Add-on security"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"links": {
|
||||||
"Architecture": "Architecture",
|
"Architecture": "Architecture",
|
||||||
"frontend_creating_custom_panels": "Creating custom panels",
|
|
||||||
"frontend_creating_custom_ui": "Creating custom UI",
|
|
||||||
"frontend_data": "Frontend data",
|
|
||||||
"Data": "Data",
|
|
||||||
"frontend_development": "Frontend development",
|
|
||||||
"Development": "Development",
|
|
||||||
"frontend_external_auth": "External Authentication",
|
|
||||||
"frontend_index": "Home Assistant Frontend",
|
|
||||||
"hassio_addon_communication": "Add-On Communication",
|
|
||||||
"hassio_addon_config": "Add-On Configuration",
|
|
||||||
"hassio_addon_index": "Developing an add-on",
|
|
||||||
"hassio_addon_presentation": "Presenting your add-on",
|
|
||||||
"hassio_addon_publishing": "Publishing your add-on",
|
|
||||||
"hassio_addon_repository": "Create an add-on repository",
|
|
||||||
"hassio_addon_security": "Add-on security",
|
|
||||||
"hassio_addon_testing": "Local add-on testing",
|
|
||||||
"hassio_addon_tutorial": "Tutorial: Making your first add-on",
|
|
||||||
"hassio_debugging": "Debugging Hass.io",
|
|
||||||
"hassio_hass": "Hass.io <> Home Assistant integration development",
|
|
||||||
"HASS Integration development": "HASS Integration development",
|
|
||||||
"intent_builtin": "Built-in intents",
|
|
||||||
"intent_conversation": "Registering sentences",
|
|
||||||
"intent_firing": "Firing intents",
|
|
||||||
"intent_handling": "Handling intents",
|
|
||||||
"intent_index": "Intents",
|
|
||||||
"internationalization_backend_localization": "Backend Localization",
|
|
||||||
"internationalization_custom_component_localization": "Custom Component Localization",
|
|
||||||
"internationalization_index": "Internationalization",
|
|
||||||
"internationalization_translation": "Translation",
|
|
||||||
"lovelace_custom_card": "Lovelace: Custom Cards",
|
|
||||||
"lovelace_index": "Lovelace UI",
|
|
||||||
"maintenance": "Maintenance",
|
|
||||||
"misc": "Miscellaneous",
|
|
||||||
"releasing": "Releasing",
|
|
||||||
"Frontend": "Frontend",
|
"Frontend": "Frontend",
|
||||||
"Backend": "Backend",
|
"Backend": "Backend",
|
||||||
"Misc": "Misc",
|
"Misc": "Misc",
|
||||||
"Blog": "Blog",
|
"Blog": "Blog"
|
||||||
|
},
|
||||||
|
"categories": {
|
||||||
|
"Architecture": "Architecture",
|
||||||
"Entities": "Entities",
|
"Entities": "Entities",
|
||||||
"Authentication": "Authentication",
|
"Authentication": "Authentication",
|
||||||
"Configuration.yaml": "Configuration.yaml",
|
"Configuration.yaml": "Configuration.yaml",
|
||||||
@ -137,20 +836,25 @@
|
|||||||
"Data Entry Flow": "Data Entry Flow",
|
"Data Entry Flow": "Data Entry Flow",
|
||||||
"Entity Registry": "Entity Registry",
|
"Entity Registry": "Entity Registry",
|
||||||
"Device Registry": "Device Registry",
|
"Device Registry": "Device Registry",
|
||||||
|
"Frontend": "Frontend",
|
||||||
"Extending the frontend": "Extending the frontend",
|
"Extending the frontend": "Extending the frontend",
|
||||||
"Custom UI": "Custom UI",
|
"Custom UI": "Custom UI",
|
||||||
"Developing a feature": "Developing a feature",
|
"Developing a feature": "Developing a feature",
|
||||||
"Development 101": "Development 101",
|
"Development 101": "Development 101",
|
||||||
|
"Integration Quality Scale": "Integration Quality Scale",
|
||||||
"Creating Platforms": "Creating Platforms",
|
"Creating Platforms": "Creating Platforms",
|
||||||
"Creating Components": "Creating Components",
|
"Creating Components": "Creating Components",
|
||||||
|
"Introduction": "Introduction",
|
||||||
"External API": "External API",
|
"External API": "External API",
|
||||||
"Internationalization": "Internationalization",
|
"Internationalization": "Internationalization",
|
||||||
"Documentation": "Documentation",
|
"Documentation": "Documentation",
|
||||||
"Intents": "Intents",
|
"Intents": "Intents",
|
||||||
"asyncio": "asyncio",
|
"asyncio": "asyncio",
|
||||||
|
"Hass.io": "Hass.io",
|
||||||
"Hass.io Add-Ons": "Hass.io Add-Ons",
|
"Hass.io Add-Ons": "Hass.io Add-Ons",
|
||||||
"Maintainer docs": "Maintainer docs",
|
"Maintainer docs": "Maintainer docs",
|
||||||
"Lovelace UI": "Lovelace UI"
|
"Lovelace UI": "Lovelace UI"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"pages-strings": {
|
"pages-strings": {
|
||||||
"Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)|no description given": "Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)",
|
"Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)|no description given": "Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)",
|
||||||
|
@ -68,7 +68,7 @@ class Versions extends React.Component {
|
|||||||
{versions.map(
|
{versions.map(
|
||||||
version =>
|
version =>
|
||||||
version !== latestVersion && (
|
version !== latestVersion && (
|
||||||
<tr>
|
<tr key={version}>
|
||||||
<th>{version}</th>
|
<th>{version}</th>
|
||||||
<td>
|
<td>
|
||||||
<a href={versionUrl(this.props.language, version)}>Documentation</a>
|
<a href={versionUrl(this.props.language, version)}>Documentation</a>
|
||||||
|
@ -84,6 +84,9 @@
|
|||||||
"dev_101_services",
|
"dev_101_services",
|
||||||
"dev_101_config"
|
"dev_101_config"
|
||||||
],
|
],
|
||||||
|
"Integration Quality Scale": [
|
||||||
|
"integration_quality_scale_index"
|
||||||
|
],
|
||||||
"Creating Platforms": [
|
"Creating Platforms": [
|
||||||
"creating_platform_index",
|
"creating_platform_index",
|
||||||
"creating_platform_code_review",
|
"creating_platform_code_review",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user