Switch experimental docs to mkdocs (#461)
* use mkdocs * Change site_dir * Fix post merge problems * Various fixes * dashboard_card -> dashboard * maybe later * more change * Clean * more fixes * no feedback fro blog * fix home * Formating * fix link * reorder * simplify index * fix icons * plugin naming * Add dynamic experimental feature block * Proper nerd mode * Update documentation docs * Fix external * no __pycache__ * Add fallback * Should be good now I think * blog updates * update URL * exclude from search
@ -1,8 +1,7 @@
|
||||
{
|
||||
"name": "hacs/doumentation",
|
||||
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:20",
|
||||
"image": "mcr.microsoft.com/devcontainers/python:3.12",
|
||||
"postCreateCommand": "scripts/setup",
|
||||
"forwardPorts": [3000],
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
@ -11,13 +10,12 @@
|
||||
},
|
||||
"settings": {
|
||||
"editor.formatOnPaste": false,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.formatOnType": true,
|
||||
"editor.formatOnSave": false,
|
||||
"editor.formatOnType": false,
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"files.trimTrailingWhitespace": true
|
||||
}
|
||||
},
|
||||
"remoteUser": "node"
|
||||
}
|
||||
}
|
||||
}
|
2
.github/dependabot.yml
vendored
@ -1,6 +1,6 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
- package-ecosystem: pip
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
|
12
.gitignore
vendored
@ -1,7 +1,11 @@
|
||||
node_modules
|
||||
.cache
|
||||
.docusaurus
|
||||
.yarn
|
||||
.yarn/install-state.gz
|
||||
build
|
||||
build/
|
||||
yarn-error.log
|
||||
documentation/repositories
|
||||
documentation/default_repositories.md
|
||||
.yarn/install-state.gz
|
||||
documentation/repositories
|
||||
node_modules
|
||||
yarn-error.log
|
||||
__pycache__
|
@ -1 +0,0 @@
|
||||
20
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"singleQuote": true,
|
||||
"semi": false,
|
||||
"trailingComma": "all",
|
||||
"tabWidth": 2,
|
||||
"printWidth": 100
|
||||
}
|
894
.yarn/releases/yarn-4.2.2.cjs
vendored
@ -1,3 +0,0 @@
|
||||
nodeLinker: node-modules
|
||||
|
||||
yarnPath: .yarn/releases/yarn-4.2.2.cjs
|
2
LICENSE
@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 - 2023 HACS
|
||||
Copyright (c) 2019 - 2024 HACS
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
This repository hosts the documentation that you can see on https://hacs.xyz
|
||||
|
||||
[For more details on how to contribute have a look here.](https://hacs.xyz/docs/developer/documentation)
|
||||
[For more details on how to contribute have a look here.](https://hacs.xyz/docs/contribute/documentation)
|
@ -1,25 +0,0 @@
|
||||
---
|
||||
id: getting_started
|
||||
title: Getting started
|
||||
description: "Getting started"
|
||||
sidebar_position: 0
|
||||
---
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## What can HACS do?
|
||||
|
||||
HACS is a manager for downloading and maintaining custom elements for Home Assistant.
|
||||
|
||||
It can help you download and update elements, and can also help you discover new and awesome stuff!
|
||||
|
||||
### What can it track/discover?
|
||||
|
||||
- Custom integrations (components/platforms/custom_component) for Home Assistant
|
||||
- Custom lovelace elements (cards/rows/mods)
|
||||
- AppDaemon apps for [AppDaemon](https://appdaemon.readthedocs.io/en/latest/)
|
||||
- NetDaemon apps ([deprecated](/docs/categories/netdaemon_apps#deprecation-notice)) for [NetDaemon](https://netdaemon.xyz/)
|
||||
- Themes for the [frontend integration](https://www.home-assistant.io/components/frontend/) in Home Assistant
|
||||
- "python_scripts" for the [`python_scripts` integration](https://www.home-assistant.io/components/python_script/) in Home Assistant
|
@ -1,26 +0,0 @@
|
||||
---
|
||||
id: appdaemon_apps
|
||||
title: AppDaemon Apps
|
||||
description: "Category: AppDaemon Apps"
|
||||
---
|
||||
|
||||
AppDaemon apps are apps for [AppDaemon](https://appdaemon.readthedocs.io/en/stable/).
|
||||
|
||||
:::caution
|
||||
Since not all users are running AppDaemon, AppDaemon is **not** enabled by default in HACS.
|
||||
|
||||
:::
|
||||
|
||||
## Enable AppDaemon apps in HACS
|
||||
|
||||
Add a checkmark to the left of "Enable AppDaemon apps discovery & tracking" in the UI configuration for HACS, then click Submit.
|
||||
|
||||

|
||||
|
||||
See the documentation for more information about [configuring HACS](configuration/basic.md).
|
||||
|
||||
## AppDaemon apps download location
|
||||
|
||||
:::info
|
||||
Any AppDaemon app downloaded with HACS is stored in `appdaemon/apps/` in your Home Assistant configuration directory.
|
||||
:::
|
@ -1,13 +0,0 @@
|
||||
---
|
||||
id: categories
|
||||
title: Category Overview
|
||||
description: "Categories available in HACS."
|
||||
sidebar_position: 0
|
||||
---
|
||||
|
||||
import DocCardList from '@theme/DocCardList'
|
||||
import { useCurrentSidebarCategory } from '@docusaurus/theme-common'
|
||||
|
||||
<i>{frontMatter.description}</i>
|
||||
<br/><br/>
|
||||
<DocCardList items={useCurrentSidebarCategory().items.filter(entry => entry.label !== frontMatter.title)} />
|
@ -1,24 +0,0 @@
|
||||
---
|
||||
id: integrations
|
||||
title: Integrations
|
||||
description: "Category: Integrations"
|
||||
sidebar_position: 0
|
||||
---
|
||||
|
||||
Integrations in HACS (or custom_components as they are often referred to) are community-built integrations.
|
||||
|
||||
## Special notes about Integrations
|
||||
|
||||
:::info
|
||||
When you download, update or remove an integration in HACS, you need to restart Home Assistant.
|
||||
:::
|
||||
|
||||
:::tip
|
||||
You _may_ need to clear your browser cache before you see it in the "+" list.
|
||||
|
||||
_Note that this **only** applies for the initial download of that Integration, if you update it, you still need to restart Home Assistant before it loads the new files._
|
||||
:::
|
||||
|
||||
## Integrations download location
|
||||
|
||||
Any Integration you download with HACS is stored in `custom_components/` in your Home Assistant configuration directory.
|
@ -1,36 +0,0 @@
|
||||
---
|
||||
id: netdaemon_apps
|
||||
title: NetDaemon Apps (deprecated)
|
||||
description: "Category: NetDaemon Apps (deprecated)"
|
||||
---
|
||||
|
||||
## Deprecation notice
|
||||
|
||||
:::caution
|
||||
NetDaemon apps are deprecated and will be removed in version 2.0.0 of HACS.
|
||||
|
||||
Note that apps that use current V3 version of the NetDaemon runtime is not supported at all.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
NetDaemon apps are apps for [NetDaemon](https://netdaemon.xyz/).
|
||||
|
||||
:::caution
|
||||
Since not all users are running NetDaemon, NetDaemon is **not** enabled by default in HACS.
|
||||
:::
|
||||
|
||||
## Enable NetDaemon apps in HACS
|
||||
|
||||
Add a checkmark to the left of "[DEPRECATED] Enable NetDaemon apps discovery & tracking" in the UI configuration for HACS, then click Submit.
|
||||
|
||||

|
||||
|
||||
See the documentation for more information about [configuring HACS](configuration/basic.md).
|
||||
|
||||
## NetDaemon apps download location
|
||||
|
||||
:::info
|
||||
Any NetDaemon app downloaded with HACS is stored in `netdaemon/apps/` in your Home Assistant configuration directory.
|
||||
:::
|
||||
|
@ -1,43 +0,0 @@
|
||||
---
|
||||
id: plugins
|
||||
title: Lovelace Plugins
|
||||
description: "Category: Lovelace Plugins"
|
||||
---
|
||||
|
||||
The [Lovelace UI](https://www.home-assistant.io/lovelace/) is a customizable interface. With additional community plugins you can extend the default experience.
|
||||
|
||||
|
||||
## Lovelace Plugin download location
|
||||
|
||||
:::info
|
||||
Any Lovelace Plugin you download with HACS is stored in `www/community/` in your Home Assistant configuration directory.
|
||||
:::
|
||||
|
||||
## Special notes about downloaded Lovelace Plugins
|
||||
|
||||
When a `.js` file is downloaded, a compressed `.gz` version of it will be created. This file (assuming it exists) will be served to the requester to save transfer size/time.
|
||||
|
||||
If you make local changes to a plugin in the `.js` file, delete the `.gz` variant to have HACS serve up that one.
|
||||
|
||||
At the bottom of every page for plugins it will state how you should add it to your Lovelace configuration.
|
||||
|
||||
|
||||
### Custom view (/hacsfiles)
|
||||
|
||||
HACS has a custom view/path/endpoint for serving up Lovelace elements (plugins) `/hacsfiles/`, this works mostly the same way as `/local` but has some extra features.
|
||||
|
||||
- The `/hacsfiles` endpoint does not cache anything; it will instruct your browser to fetch a new version on each load.
|
||||
- The `/hacsfiles` endpoint will try to serve a .gz variant of the element, this will make the element smaller and the transfer will be faster.
|
||||
|
||||
Examples:
|
||||
|
||||
Your plugin exists in `www/community/plugin/plugin.js` you can use both `/local/community/plugin/plugin.js` and `/hacsfiles/plugin/plugin.js` to reference it, but only the `hacsfiles` version will have the extra features that HACS offers.
|
||||
|
||||
`.gz` example: CCH (Compact Custom Header) is a fairly popular element for Lovelace. When you use `/local` you will transfer the `.js` file which is 101kB, but if you use HACS and reference the plugin with `/hacsfiles`, it will serve the 20kB `.gz` version automagically (sizes accurate for version 1.4.7 of CCH).
|
||||
|
||||
### Open source
|
||||
|
||||
:::tip
|
||||
Every plugin you have downloaded with HACS will have an "Open source" option on the hamburger menu.
|
||||
This is useful when troubleshooting; if you can see a code wall (the underlying `.js` file) everything is OK, but if you get a 404 try downloading it again.
|
||||
:::
|
@ -1,25 +0,0 @@
|
||||
---
|
||||
id: python_scripts
|
||||
title: Python Scripts
|
||||
description: "Category: Python Scripts"
|
||||
---
|
||||
|
||||
Python Scripts is a part of the Home Assistant [`python_script` integration.](https://www.home-assistant.io/integrations/python_script/)
|
||||
|
||||
:::info
|
||||
Python Scripts in HACS will automagically be enabled if you have it enabled in Home Assistant
|
||||
:::
|
||||
|
||||
## Enable Python Scripts in Home Assistant
|
||||
|
||||
Add this to your `configuration.yaml`
|
||||
|
||||
```yaml
|
||||
python_script:
|
||||
```
|
||||
|
||||
## Python Scripts download location
|
||||
|
||||
:::info
|
||||
Any Python Script downloaded with HACS is stored in `python_scripts/` in your Home Assistant configuration directory.
|
||||
:::
|
@ -1,26 +0,0 @@
|
||||
---
|
||||
id: themes
|
||||
title: Themes
|
||||
description: "Category: Themes"
|
||||
---
|
||||
|
||||
Themes is a part of the Home Assistant [`frontend` integration.](https://www.home-assistant.io/integrations/frontend/)
|
||||
|
||||
:::info
|
||||
Themes in HACS will automagically be enabled if you have it enabled in Home Assistant
|
||||
:::
|
||||
|
||||
## Enable themes in Home Assistant
|
||||
|
||||
Add this to your `configuration.yaml`
|
||||
|
||||
```yaml
|
||||
frontend:
|
||||
themes: !include_dir_merge_named themes
|
||||
```
|
||||
|
||||
## Themes download location
|
||||
|
||||
:::info
|
||||
Any theme downloaded with HACS is stored in `themes/` in your Home Assistant configuration directory.
|
||||
:::
|
@ -1,67 +0,0 @@
|
||||
---
|
||||
id: community_guides
|
||||
title: Community guides
|
||||
description: "Guides, Tutorials & Videos about HACS"
|
||||
---
|
||||
|
||||
_Here you can find community made guides, tutorials & videos about how to setup/use HACS._
|
||||
|
||||
:::warning
|
||||
**NB!: Most of what you find here is static, and may not be up to date.**
|
||||
:::
|
||||
|
||||
## Videos
|
||||
|
||||
### HACS Promo
|
||||
|
||||
_by [Ludeeus](https://github.com/ludeeus)_
|
||||
|
||||
<a href="https://www.youtube.com/watch?v=vq0qQtDAOW0 " target="_blank" title="HACS Promo">
|
||||
<img src="https://img.youtube.com/vi/vq0qQtDAOW0/0.jpg" />
|
||||
</a>
|
||||
|
||||
### Danish HACS Setup Guide
|
||||
|
||||
_by [Daniel Bahl](https://danielbahl.com)_
|
||||
|
||||
You can find the complete danish walkthrough guide at <a href="https://robotnet.dk/2020/hacs-home-assistant-community-store.html" target="_blank" title="HACS: Home Assistant Community Store in Danish">Robotnet.dk</a>
|
||||
|
||||
<a href="https://www.youtube.com/watch?v=1KQH7n7Stss" target="_blank" title="Setup HACS via Terminal - in Danish">
|
||||
<img src="https://img.youtube.com/vi/1KQH7n7Stss/0.jpg" />
|
||||
</a>
|
||||
|
||||
<a href="https://www.youtube.com/watch?v=v_S4MgJVqLE" target="_blank" title="Add HACS to Home Assistant - in Danish">
|
||||
<img src="https://img.youtube.com/vi/v_S4MgJVqLE/0.jpg" />
|
||||
</a>
|
||||
|
||||
### Setup Walkthrough
|
||||
|
||||
_by [DrZzs](https://www.youtube.com/channel/UC7G4tLa4Kt6A9e3hJ-HO8ng)_
|
||||
|
||||
<a href="https://www.youtube.com/watch?v=aJTTCAvzpIU " target="_blank" title="Setup Walkthrough">
|
||||
<img src="https://img.youtube.com/vi/aJTTCAvzpIU/0.jpg" />
|
||||
</a>
|
||||
|
||||
### Home Assistant Themes and Plugins with HACS!
|
||||
|
||||
_by [KPeyanski](https://www.youtube.com/channel/UCiyU6otsAn6v2NbbtM85npg)_
|
||||
|
||||
<a href="https://www.youtube.com/watch?v=4cOdgW23KCA" target="_blank" title="Home Assistant Themes and Plugins with HACS!">
|
||||
<img src="https://img.youtube.com/vi/4cOdgW23KCA/0.jpg" />
|
||||
</a>
|
||||
|
||||
### German HACS Setup incl. first integration
|
||||
|
||||
_by [Tristan](https://www.youtube.com/channel/UCe06G4hqXjUlYhB-rDmns4g)_
|
||||
|
||||
<a href="https://youtu.be/-wWi6m7g0m0 " target="_blank" title="Setup von Auto_Backup inkl. HACS">
|
||||
<img src="https://img.youtube.com/vi/-wWi6m7g0m0/0.jpg" />
|
||||
</a>
|
||||
|
||||
### How to Setup & use Home Assistant Community Store (HACS) | TUTORIAL
|
||||
|
||||
_by [KPeyanski](https://www.youtube.com/channel/UCiyU6otsAn6v2NbbtM85npg)_
|
||||
|
||||
<a href="https://youtu.be/QPXxMSV3BUY" target="_blank" title="How to setup & use Home Assistant Community Store (HACS) | TUTORIAL">
|
||||
<img src="https://img.youtube.com/vi/QPXxMSV3BUY/0.jpg" />
|
||||
</a>
|
@ -1,24 +0,0 @@
|
||||
---
|
||||
id: developer_documentation
|
||||
title: Developer Documentation
|
||||
description: 'Everything HACS for publishers.'
|
||||
sidebar_position: 0
|
||||
---
|
||||
|
||||
import DocCardList from '@theme/DocCardList'
|
||||
import { useCurrentSidebarCategory } from '@docusaurus/theme-common'
|
||||
|
||||
Hi there :wave:
|
||||
|
||||
This is the beginning of the developer documentation.
|
||||
|
||||
Use the sidebar to navigate this section.
|
||||
|
||||
- [If you are looking for how to use HACS have a look at the user documentation](/docs/user)
|
||||
- [If you are looking for how to publish something that can be tracked by HACS have a look at the publisher documentation](/docs/publisher)
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<DocCardList
|
||||
items={useCurrentSidebarCategory().items.filter((entry) => entry.label !== frontMatter.title)}
|
||||
/>
|
@ -1,33 +0,0 @@
|
||||
---
|
||||
id: update_entities
|
||||
title: Update entities
|
||||
description: 'Update entities'
|
||||
---
|
||||
|
||||
:::note
|
||||
This require [experimental features](/docs/configuration/options#options) enabled.
|
||||
:::
|
||||
|
||||
HACS provide [update entities](https://www.home-assistant.io/integrations/update/) for all tracked repositories.
|
||||
|
||||
## Install service
|
||||
|
||||
Like all other [update entities](https://www.home-assistant.io/integrations/update/), you can use the `update.install` service to handle updates.
|
||||
|
||||
The "Version" field supports the folowing:
|
||||
|
||||
- A GitHub tag (release)
|
||||
- A public branch of the repository (this does **not** include forks)
|
||||
- The full (not first 7) SHA of a commit
|
||||
|
||||
_In case there is a branch and tag that have identical names, the tag will be used._
|
||||
|
||||
:::warning
|
||||
|
||||
Setting the version in this service call is considered an advanced feature, and should **NOT** be used without instructions to use it from the author of the repository you are updating.
|
||||
|
||||
:::
|
||||
|
||||
If the repository does not support versions, or if the specified version is not compliant with HACS (or your Home Assistant version) it will fail with a message similar to this:
|
||||
|
||||

|
@ -1,10 +0,0 @@
|
||||
---
|
||||
id: addons
|
||||
title: Add-ons?
|
||||
description: 'NO, no, nope, this is not an add-on, and does not handle add-ons'
|
||||
---
|
||||
|
||||
- You cannot download HACS as an [add-on](https://www.home-assistant.io/docs/glossary/#add-on), HACS is an [integration](https://www.home-assistant.io/docs/glossary/#integration), and not an [add-on](https://www.home-assistant.io/docs/glossary/#add-on)
|
||||
- HACS does not handle [add-ons](https://www.home-assistant.io/docs/glossary/#add-on).
|
||||
|
||||
[Add-ons](https://www.home-assistant.io/docs/glossary/#add-on) and HACS has nothing to do with each other, they are completely different.
|
@ -1,12 +0,0 @@
|
||||
---
|
||||
id: github_account
|
||||
title: "Why do I need a GitHub account?"
|
||||
description: "Information about why a GitHub account is needed"
|
||||
---
|
||||
HACS uses the [GitHub API](https://docs.github.com/en/rest) to gather information about all [available](https://github.com/hacs/default) and downloaded repositories. [This API is rate limited](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting) to 60 requests every hour for unauthenticated requests, which is not enough. So HACS needs to make authenticated requests to that API.
|
||||
|
||||
A OAuth token with no scopes which grants read-only access to public information (including user profile info, repository info, and gists), will be used.
|
||||
|
||||
[You can read more about OAuth scopes here](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps).
|
||||
|
||||
For more information about what HACS updates/refreshes when have a look at [Data sources](/docs/faq/data_sources)
|
@ -1,13 +0,0 @@
|
||||
---
|
||||
id: faq_entry
|
||||
title: Frequently Asked Questions
|
||||
description: "Everything might not be frequently asked, but it's a good dumping ground for various information."
|
||||
sidebar_position: 0
|
||||
---
|
||||
|
||||
import DocCardList from '@theme/DocCardList'
|
||||
import { useCurrentSidebarCategory } from '@docusaurus/theme-common'
|
||||
|
||||
<i>{frontMatter.description}</i>
|
||||
<br/><br/>
|
||||
<DocCardList items={useCurrentSidebarCategory().items.filter(entry => entry.label !== frontMatter.title)} />
|
@ -1,28 +0,0 @@
|
||||
---
|
||||
id: status_not_loaded
|
||||
title: "Status: Not Loaded"
|
||||
description: "What to do if the status of a Lovelace element is not loaded"
|
||||
---
|
||||
|
||||

|
||||
|
||||
When you see this message you have one or more resources downloaded with HACS that are not properly loaded in Lovelace.
|
||||
|
||||
To find out what element it is, look for the repository with a "Not Loaded" header in the Frontend section of HACS.
|
||||
|
||||

|
||||
|
||||
This will trigger if you are not using the expected URL, or if it's not included in the first place.
|
||||
|
||||
## Lovelace in storage mode (UI)
|
||||
|
||||
Something strange has happened, click on the card for it to get to the repository page and then click the 3 dots in the top right corner and select "Redownload".
|
||||
|
||||
## Lovelace in storage mode (YAML)
|
||||
|
||||
Add the correct URL to the `resource` key under your `lovelace` configuration entry.
|
||||
To find the URL click on the card for it to get to the repository page and then click the 3 dots in the top right corner and select "Redownload".
|
||||
|
||||
:::tip
|
||||
[For information about the base of URL have a look here.](/docs/categories/plugins#special-notes-about-downloaded-lovelace-plugins)
|
||||
:::
|
@ -1,65 +0,0 @@
|
||||
---
|
||||
id: download
|
||||
title: Download
|
||||
description: "HACS download steps"
|
||||
---
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
You use the [HACS download script](https://github.com/hacs/get) to setup HACS.
|
||||
|
||||
:::info
|
||||
If you are not sure what type of Home Assistant you are using or how to find that, then you should probably not use HACS (or any other custom integration).
|
||||
:::
|
||||
|
||||
<Tabs label="test">
|
||||
<TabItem value="os" label="OS/Supervised" default>
|
||||
|
||||
1. Go to the Add-on store
|
||||
1. Install one of the SSH add-ons (you need to enable advanced mode in your user profile to see them)
|
||||
1. Configure the SSH add-on you chose by following the documentation for it
|
||||
1. Start the SSH add-on
|
||||
1. Connect to the SSH add-on
|
||||
1. Run the HACS download script
|
||||
1. After the script completes, restart Home Assistant
|
||||
```bash
|
||||
wget -O - https://get.hacs.xyz | bash -
|
||||
```
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="container" label="Container">
|
||||
|
||||
1. Open a terminal
|
||||
1. Go inside the container with `docker exec -it homeassistant bash` (or similar)
|
||||
1. Run the HACS download script
|
||||
1. After the script completes, restart the container
|
||||
```bash
|
||||
wget -O - https://get.hacs.xyz | bash -
|
||||
```
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="core" label="Core">
|
||||
|
||||
1. Open a terminal
|
||||
1. Change to the user that is running Home Assistant
|
||||
1. Run the HACS download script
|
||||
1. After the script completes, restart Core
|
||||
```bash
|
||||
wget -O - https://get.hacs.xyz | bash -
|
||||
```
|
||||
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### `CTRL+V` not working for you?
|
||||
- Try `CTRL+SHIFT+V` instead
|
||||
- Try `SHIFT+INS(insert)` instead
|
||||
- Try `Right-click` instead
|
@ -1,98 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
title: 'HACS',
|
||||
tagline: 'Home Assistant Community Store',
|
||||
url: 'https://hacs.xyz',
|
||||
baseUrl: '/',
|
||||
favicon: 'https://assets.hacs.xyz/logo.svg',
|
||||
organizationName: 'HACS',
|
||||
projectName: 'hacs',
|
||||
themeConfig: {
|
||||
colorMode: {
|
||||
defaultMode: 'dark',
|
||||
disableSwitch: false,
|
||||
respectPrefersColorScheme: true,
|
||||
},
|
||||
metadata: [
|
||||
{ name: 'twitter:site', content: '@HACSIntegration' }
|
||||
],
|
||||
prism: {
|
||||
darkTheme: require('prism-react-renderer').themes.github,
|
||||
},
|
||||
image: 'https://assets.hacs.xyz/banner.png',
|
||||
description: 'HACS gives you a powerful UI to handle downloads of all your custom needs.',
|
||||
navbar: {
|
||||
title: 'HACS',
|
||||
items: [
|
||||
{ to: 'docs/user', label: 'Use', position: 'left' },
|
||||
{ to: 'docs/publisher', label: 'Publish', position: 'left' },
|
||||
{ to: 'docs/faq/', label: 'FAQ', position: 'left' },
|
||||
{ to: 'help', label: 'Help', position: 'left' },
|
||||
{ to: 'docs/developer', label: 'Develop', position: 'right' },
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: "dark",
|
||||
links: [
|
||||
{
|
||||
title: 'Resources',
|
||||
items: [
|
||||
{
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/hacs',
|
||||
},
|
||||
{
|
||||
label: 'Discord',
|
||||
href: 'https://discord.gg/apgchf8',
|
||||
},
|
||||
{
|
||||
label: 'Code of Conduct',
|
||||
href: 'https://github.com/hacs/.github/blob/master/CODE_OF_CONDUCT.md',
|
||||
},
|
||||
{
|
||||
label: 'Contact (no support!)',
|
||||
href: 'mailto:hi@hacs.xyz',
|
||||
},
|
||||
],
|
||||
},
|
||||
{}, {}, {}, {}, {},
|
||||
],
|
||||
},
|
||||
},
|
||||
presets: [
|
||||
[
|
||||
'@docusaurus/preset-classic',
|
||||
{
|
||||
theme: {
|
||||
customCss: require.resolve('./src/css/custom.css'),
|
||||
},
|
||||
docs: {
|
||||
editUrl: 'https://github.com/hacs/documentation/edit/main/',
|
||||
path: './documentation',
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
showLastUpdateTime: false,
|
||||
},
|
||||
blog: {},
|
||||
pages: {},
|
||||
sitemap: {},
|
||||
},
|
||||
],
|
||||
],
|
||||
plugins: [
|
||||
[
|
||||
require.resolve("@easyops-cn/docusaurus-search-local"),
|
||||
{
|
||||
hashed: true,
|
||||
removeDefaultStopWordFilter: true,
|
||||
docsDir: "documentation",
|
||||
indexPages: true,
|
||||
},
|
||||
]
|
||||
],
|
||||
}
|
227
mkdocs.yml
Normal file
@ -0,0 +1,227 @@
|
||||
site_name: HACS
|
||||
site_description: HACS gives you a powerful UI to handle downloads of all your custom needs
|
||||
site_url: !ENV [CF_PAGES_URL, "https://hacs.xyz"]
|
||||
repo_url: https://github.com/hacs/integration
|
||||
repo_name: hacs/integration
|
||||
remote_branch: !ENV [CF_PAGES_BRANCH, "experimental"]
|
||||
docs_dir: source
|
||||
site_dir: build
|
||||
use_directory_urls: true
|
||||
strict: true
|
||||
validation:
|
||||
links:
|
||||
absolute_links: relative_to_docs
|
||||
anchors: warn
|
||||
unrecognized_links: warn
|
||||
not_found: warn
|
||||
nav:
|
||||
omitted_files: warn
|
||||
not_found: warn
|
||||
absolute_links: relative_to_docs
|
||||
theme:
|
||||
name: material
|
||||
language: en
|
||||
custom_dir: source/overrides
|
||||
logo: assets/images/hacs_logo.png
|
||||
favicon: assets/images/hacs_logo.png
|
||||
font:
|
||||
code: Roboto Mono
|
||||
text: Roboto
|
||||
features:
|
||||
- announce.dismiss
|
||||
- content.code.copy
|
||||
- content.footnote.tooltips
|
||||
- content.tooltips
|
||||
- navigation.footer
|
||||
- navigation.indexes
|
||||
- navigation.instant
|
||||
- navigation.instant.prefetch
|
||||
- navigation.instant.progress
|
||||
- navigation.path
|
||||
- navigation.tabs
|
||||
- navigation.tabs.sticky
|
||||
- navigation.top
|
||||
- navigation.tracking
|
||||
- search.highlight
|
||||
- search.share
|
||||
- search.suggest
|
||||
- toc.follow
|
||||
- toc.integrate
|
||||
palette:
|
||||
- media: "(prefers-color-scheme: light)"
|
||||
scheme: default
|
||||
primary: indigo
|
||||
toggle:
|
||||
icon: material/weather-night
|
||||
name: Switch to dark mode
|
||||
- media: "(prefers-color-scheme: dark)"
|
||||
scheme: slate
|
||||
primary: black
|
||||
toggle:
|
||||
icon: material/weather-sunny
|
||||
name: Switch to system preference
|
||||
font:
|
||||
text: Roboto
|
||||
code: Roboto Mono
|
||||
icon:
|
||||
annotation: material/information
|
||||
plugins:
|
||||
- blog
|
||||
- privacy
|
||||
- macros:
|
||||
on_undefined: strict
|
||||
- search:
|
||||
lang: en
|
||||
- social:
|
||||
cards: true
|
||||
cards_layout_options:
|
||||
background_color: "#41BDF5"
|
||||
- tags
|
||||
hooks:
|
||||
- source/hooks/external_links_md.py
|
||||
extra:
|
||||
links:
|
||||
- link: https://github.com/hacs/.github/blob/master/CODE_OF_CONDUCT.md
|
||||
title: Code of Conduct
|
||||
icon: fontawesome/solid/scale-balanced
|
||||
- link: mailto:hi@hacs.xyz
|
||||
title: Contact (no support!)
|
||||
icon: fontawesome/solid/at
|
||||
- title: GitHub
|
||||
icon: fontawesome/brands/github
|
||||
link: https://github.com/hacs
|
||||
right: true
|
||||
- title: Discord
|
||||
icon: fontawesome/brands/discord
|
||||
link: https://discord.gg/apgchf8
|
||||
right: true
|
||||
- link: https://squidfunk.github.io/mkdocs-material/
|
||||
title: Made with Material for MkDocs
|
||||
icon: logo
|
||||
|
||||
# Extensions
|
||||
markdown_extensions:
|
||||
- abbr
|
||||
- admonition
|
||||
- attr_list
|
||||
- def_list
|
||||
- footnotes
|
||||
- md_in_html
|
||||
- toc:
|
||||
permalink: true
|
||||
- pymdownx.arithmatex:
|
||||
generic: true
|
||||
- pymdownx.betterem:
|
||||
smart_enable: all
|
||||
- pymdownx.caret
|
||||
- pymdownx.details
|
||||
- pymdownx.emoji:
|
||||
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
||||
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
||||
- pymdownx.highlight:
|
||||
anchor_linenums: true
|
||||
line_spans: __span
|
||||
pygments_lang_class: true
|
||||
- pymdownx.inlinehilite
|
||||
- pymdownx.keys
|
||||
- pymdownx.magiclink:
|
||||
normalize_issue_symbols: true
|
||||
repo_url_shorthand: true
|
||||
user: squidfunk
|
||||
repo: mkdocs-material
|
||||
- pymdownx.mark
|
||||
- pymdownx.smartsymbols
|
||||
- pymdownx.snippets:
|
||||
auto_append:
|
||||
- source/includes/abbreviations.md
|
||||
- pymdownx.superfences:
|
||||
custom_fences:
|
||||
- name: mermaid
|
||||
class: mermaid
|
||||
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||
- pymdownx.tabbed:
|
||||
alternate_style: true
|
||||
combine_header_slug: true
|
||||
slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
kwds:
|
||||
case: lower
|
||||
- pymdownx.tasklist:
|
||||
custom_checkbox: true
|
||||
- pymdownx.tilde
|
||||
extra_css:
|
||||
- assets/stylesheets/extra.css
|
||||
|
||||
not_in_nav: |
|
||||
includes/*
|
||||
glossary.md
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Use:
|
||||
- docs/use/index.md
|
||||
- Download:
|
||||
- docs/use/download/prerequisites.md
|
||||
- docs/use/download/download.md
|
||||
- docs/use/download/remove.md
|
||||
- Configuration:
|
||||
- docs/use/configuration/basic.md
|
||||
- docs/use/configuration/options.md
|
||||
- Types:
|
||||
- docs/use/type/index.md
|
||||
- docs/use/type/appdaemon.md
|
||||
- docs/use/type/dashboard.md
|
||||
- docs/use/type/integration.md
|
||||
- docs/use/type/netdaemon.md
|
||||
- docs/use/type/python_script.md
|
||||
- docs/use/type/template.md
|
||||
- docs/use/type/theme.md
|
||||
- Entities:
|
||||
- docs/use/entities/update.md
|
||||
- docs/use/dashboard.md
|
||||
- docs/use/data.md
|
||||
- docs/use/diagnostics.md
|
||||
- docs/use/existing_elements.md
|
||||
- docs/use/logs.md
|
||||
- docs/use/my.md
|
||||
- docs/use/repository_dashboard.md
|
||||
- docs/use/updates.md
|
||||
- Publish:
|
||||
- docs/publish/index.md
|
||||
- docs/publish/start.md
|
||||
- docs/publish/include.md
|
||||
- docs/publish/action.md
|
||||
- docs/publish/appdaemon.md
|
||||
- docs/publish/integration.md
|
||||
- docs/publish/plugin.md
|
||||
- docs/publish/python_script.md
|
||||
- docs/publish/template.md
|
||||
- docs/publish/theme.md
|
||||
- docs/publish/remove.md
|
||||
- Contribute:
|
||||
- docs/contribute/index.md
|
||||
- docs/contribute/backend.md
|
||||
- docs/contribute/devcontainer.md
|
||||
- docs/contribute/documentation.md
|
||||
- docs/contribute/frontend.md
|
||||
- docs/contribute/translation.md
|
||||
- docs/contribute/maintainer.md
|
||||
- FAQ:
|
||||
- docs/faq/index.md
|
||||
- docs/faq/addons.md
|
||||
- docs/faq/beta.md
|
||||
- docs/faq/custom_repositories.md
|
||||
- docs/faq/data_sources.md
|
||||
- docs/faq/experimental_features.md
|
||||
- docs/faq/github_account.md
|
||||
- docs/faq/ha_update.md
|
||||
- docs/faq/hassio_only.md
|
||||
- docs/faq/highlights.md
|
||||
- docs/faq/limitations.md
|
||||
- docs/faq/other_git_providers.md
|
||||
- docs/faq/private_repositories.md
|
||||
- docs/faq/select_version.md
|
||||
- docs/faq/download.md
|
||||
- docs/faq/upgrade.md
|
||||
- Help:
|
||||
- docs/help/index.md
|
||||
- docs/help/issues.md
|
||||
|
35
package.json
@ -1,35 +0,0 @@
|
||||
{
|
||||
"name": "hacs",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "docusaurus start --host 0.0.0.0",
|
||||
"build": "docusaurus build",
|
||||
"serve": "docusaurus serve",
|
||||
"swizzle": "docusaurus swizzle"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "^3.3.2",
|
||||
"@docusaurus/preset-classic": "^3.3.2",
|
||||
"@docusaurus/utils": "^3.0.1",
|
||||
"@easyops-cn/docusaurus-search-local": "^0.40.1",
|
||||
"classnames": "^2.5.1",
|
||||
"node-forge": "^1.3.1",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-responsive-carousel": "^3.2.23"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"packageManager": "yarn@4.2.2"
|
||||
}
|
2
requirements.txt
Normal file
@ -0,0 +1,2 @@
|
||||
mkdocs-material[imaging]==9.5.23
|
||||
mkdocs-macros-plugin==1.0.5
|
@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
yarn run build
|
||||
mkdocs build
|
@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
yarn run start
|
||||
mkdocs serve
|
@ -1,3 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
yarn install
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libcairo2
|
||||
|
||||
python3 -m pip install -r requirements.txt
|
79
sidebars.js
@ -1,79 +0,0 @@
|
||||
module.exports = {
|
||||
"user": {
|
||||
"User documentation": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "user"
|
||||
},
|
||||
{
|
||||
"Download": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "setup"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Configuration": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "configuration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Categories": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "categories"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Usage": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "basic"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Entities": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "entities"
|
||||
}
|
||||
]
|
||||
},
|
||||
"community_guides"
|
||||
]
|
||||
},
|
||||
"publisher": {
|
||||
"Publisher documentation": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "publisher"
|
||||
},
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "publish"
|
||||
}
|
||||
]
|
||||
},
|
||||
"developer": {
|
||||
"Developer documentation": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "developer"
|
||||
}
|
||||
]
|
||||
},
|
||||
"faq": {
|
||||
"FAQ": [
|
||||
{
|
||||
"type": "autogenerated",
|
||||
"dirName": "faq"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
8
source/_redirects
Normal file
@ -0,0 +1,8 @@
|
||||
# External sites
|
||||
/discord https://discord.gg/apgchf8 301
|
||||
/github https://github.com/hacs 301
|
||||
/twitter https://twitter.com/HACSIntegration 301
|
||||
|
||||
/faq/what /docs/faq
|
||||
/faq/* /docs/faq/:splat
|
||||
/img/demo.gif /assets/images/legacy/demo.gif
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 165 KiB |
BIN
source/assets/images/hacs_banner.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
source/assets/images/hacs_logo.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 6.2 MiB After Width: | Height: | Size: 6.2 MiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 212 KiB |
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 603 KiB After Width: | Height: | Size: 603 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
87
source/assets/stylesheets/extra.css
Normal file
@ -0,0 +1,87 @@
|
||||
:root {
|
||||
--hacs-color-primary: #41BDF5;
|
||||
--md-admonition-icon--nerd-mode: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 10c-.24 0-.45.09-.59.25-.14.15-.2.37-.17.61l.5 2.99C2.82 14.5 3.4 15 4 15h3c.64 0 1.36-.56 1.5-1.18l1.06-3.19c.04-.13.01-.32-.06-.44-.11-.12-.28-.19-.5-.19H3m4 7H4C2.38 17 .96 15.74.76 14.14l-.5-2.99C.15 10.3.39 9.5.91 8.92 1.43 8.34 2.19 8 3 8h6c.83 0 1.58.35 2.06.96.11.15.21.31.29.49.43-.09.87-.09 1.29 0 .08-.18.18-.34.3-.49C13.41 8.35 14.16 8 15 8h6c.81 0 1.57.34 2.09.92.51.58.75 1.38.65 2.19l-.51 3.07C23.04 15.74 21.61 17 20 17h-3c-1.56 0-3.08-1.19-3.46-2.7l-.9-2.71c-.38-.28-.91-.28-1.29 0l-.92 2.78C10.07 15.82 8.56 17 7 17m8-7c-.22 0-.39.07-.5.19-.08.12-.1.31-.05.51l1.01 3.05c.18.69.9 1.25 1.54 1.25h3c.59 0 1.18-.5 1.25-1.11l.51-3.07c.03-.2-.03-.42-.17-.57A.769.769 0 0 0 21 10h-6Z"></path></svg>')
|
||||
}
|
||||
|
||||
[data-md-color-scheme=slate] {
|
||||
--md-accent-fg-color: var(--hacs-color-primary) !important;
|
||||
--md-typeset-a-color: var(--hacs-color-primary) !important;
|
||||
}
|
||||
|
||||
.feedback-actions {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
justify-content: space-between;
|
||||
text-align: center;
|
||||
max-width: 720px;
|
||||
}
|
||||
.feedback-actions a {
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.twemoji.right-icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
a.generated-grid-link {
|
||||
border: .05rem solid var(--md-default-fg-color--lightest);
|
||||
border-radius: .1rem;
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: .8rem;
|
||||
transition: border .25s, box-shadow .25s;
|
||||
color: var(--md-default-fg-color);
|
||||
line-height: 0.3em;
|
||||
}
|
||||
|
||||
a.generated-grid-link:hover {
|
||||
border: .01rem solid var(--md-accent-fg-color);
|
||||
box-shadow: 0 0 0 .01rem var(--md-accent-fg-color);
|
||||
background-color: var(--md-default-fg-color--lightest);
|
||||
}
|
||||
|
||||
a.generated-grid-link p:last-of-type {
|
||||
font-size: 0.65rem;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
@media (min-width: 720px) {
|
||||
.footer-right-links {
|
||||
text-align: right;
|
||||
}
|
||||
.twemoji.left-icon {
|
||||
display: none;
|
||||
}
|
||||
.twemoji.right-icon {
|
||||
display: inline-flex;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 720px) {
|
||||
.md-footer-meta__inner.md-grid {
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.md-typeset .admonition.nerd-mode,
|
||||
.md-typeset details.nerd-mode {
|
||||
border-color: rgb(247, 152, 29);
|
||||
}
|
||||
.md-typeset .nerd-mode > .admonition-title,
|
||||
.md-typeset .nerd-mode > summary {
|
||||
background-color: rgba(247, 152, 29, 0.1);
|
||||
}
|
||||
.md-typeset .nerd-mode > .admonition-title::before,
|
||||
.md-typeset .nerd-mode > summary::before {
|
||||
background-color: rgb(247, 152, 29);
|
||||
-webkit-mask-image: var(--md-admonition-icon--nerd-mode);
|
||||
mask-image: var(--md-admonition-icon--nerd-mode);
|
||||
}
|
||||
|
||||
|
||||
.md-typeset [type=checkbox]+.task-list-indicator:before {
|
||||
background-color: red;
|
||||
mask-image: var(--md-admonition-icon--failure);
|
||||
}
|
1
source/blog/.authors.yml
Normal file
@ -0,0 +1 @@
|
||||
authors: {}
|
5
source/blog/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
search:
|
||||
exclude: true
|
||||
---
|
||||
# Blog
|
12
source/blog/posts/hello-world.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "Hello world"
|
||||
description: >
|
||||
This is the first post on the blog.
|
||||
date: 2019-02-26
|
||||
categories:
|
||||
- Announcement
|
||||
search:
|
||||
exclude: true
|
||||
---
|
||||
|
||||
:wave:
|
21
source/blog/posts/release-notes-2.0.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: "Release Notes: 2.0"
|
||||
description: >
|
||||
Release notes for HACS 2.0
|
||||
date: 2024-06-04
|
||||
categories:
|
||||
- Release Notes
|
||||
search:
|
||||
exclude: true
|
||||
---
|
||||
Lorem ipsum...
|
||||
|
||||
<!-- more -->
|
||||
|
||||
Lorem ipsum...
|
||||
|
||||
Lorem ipsum...
|
||||
|
||||
## All changes
|
||||
|
||||
For the full list of changes, please see the [list of commits on GitHub](https://github.com/hacs/integration/compare/1.34.0...2.0.0)
|
@ -3,8 +3,7 @@ id: devcontainer
|
||||
title: Devcontainer
|
||||
description: "Set up devcontainer"
|
||||
---
|
||||
|
||||
[The easiest way to contribute is to spin up a devcontainer](https://code.visualstudio.com/docs/remote/containers) with Visual Studio Code (VS Code). It has all the tools you need included, and it does not interfere with your system.
|
||||
[The easiest way to contribute is to spin up a devcontainer](https://code.visualstudio.com/remote/containers) with Visual Studio Code (VS Code). It has all the tools you need included, and it does not interfere with your system.
|
||||
|
||||
**Requirements:**
|
||||
|
@ -1,40 +1,39 @@
|
||||
---
|
||||
id: documentation
|
||||
title: Documentation
|
||||
description: "Documentation development"
|
||||
---
|
||||
|
||||
The documentation site for HACS is build with [Docusaurus](https://docusaurus.io) and hosted on [GitHub Pages](https://pages.github.com/)
|
||||
The documentation site for HACS is build with [mkdocs-material](https://squidfunk.github.io/mkdocs-material/) and hosted on [Cloudflare Pages](https://pages.cloudflare.com/)
|
||||
|
||||
## Contribute to the documentation
|
||||
|
||||
There are two ways of contributing to the documentation:
|
||||
|
||||
- Using the "Edit this page" link at the bottom of every page.
|
||||
- Locally changing (devcontainer)
|
||||
- Using the "Edit this page on GitHub" link at the bottom of every page.
|
||||
- Locally.
|
||||
|
||||
_All changes to the documentation should go against the `main` branch._
|
||||
_All changes to the documentation should go against the `{{ config.remote_branch }}` branch._
|
||||
The repository for the documentation is hosted @ https://github.com/hacs/documentation
|
||||
|
||||
### Edit this page
|
||||
### Edit this page on GitHub
|
||||
|
||||
When you see something that needs changing when you browse the documentation, scroll down to the bottom of the page you are looking at, and click the "Edit this page" link.
|
||||
When you see something that needs changing when you browse the documentation, scroll down to the bottom of the page you are looking at, and click the "Edit this page on GitHub" button in the "Help us to improve the documentation" section.
|
||||
|
||||
[:fontawesome-solid-file-pen: Edit this page on GitHub](https://github.com/hacs/documentation/edit/{{config.remote_branch}}/source/{{page.file.src_path}}){ .md-button }
|
||||
|
||||

|
||||
|
||||
This will take you to the GitHub page for it so you can change the content.
|
||||
|
||||
### Locally changing (devcontainer)
|
||||
### Locally
|
||||
|
||||
First spin up the [devcontainer](/docs/developer/devcontainer)
|
||||
First spin up the [devcontainer](/docs/contribute/devcontainer.md)
|
||||
|
||||
When you have that running issue the following commands:
|
||||
|
||||
```bash
|
||||
scripts/develop
|
||||
scripts/docs/develop
|
||||
```
|
||||
|
||||
You have now started a local webserver that hosts the documentation on http://localhost:3000
|
||||
You have now started a local webserver that hosts the documentation on `http://localhost:8000`
|
||||
|
||||
That server will reload if you do changes to the documentation so you can live see how the changes look.
|
||||
|
||||
@ -45,13 +44,13 @@ When you are happy with the result, push the changes to your fork and create a P
|
||||
All pages for the HACS documentation is located under:
|
||||
|
||||
```text
|
||||
documentation/content/
|
||||
source/
|
||||
```
|
||||
|
||||
All images for the HACS documentation is located under:
|
||||
|
||||
```text
|
||||
documentation/static/img/
|
||||
source/assets/images/
|
||||
```
|
||||
|
||||
|
||||
@ -62,12 +61,12 @@ documentation/static/img/
|
||||
Lets say you need to reference another page that is located under:
|
||||
|
||||
```text
|
||||
documentation/content/developer/features.md
|
||||
source/docs/contribute/features.md
|
||||
```
|
||||
Then you need to use:
|
||||
|
||||
```md
|
||||
[Features](/docs/developer/features)
|
||||
[Features](/docs/contribute/features.md)
|
||||
```
|
||||
|
||||
### Reference images
|
||||
@ -75,24 +74,23 @@ Then you need to use:
|
||||
Lets say you need to reference an image that is located under:
|
||||
|
||||
```text
|
||||
documentation/static/img/features.png
|
||||
source/assets/images/features.png
|
||||
```
|
||||
Then you need to use:
|
||||
|
||||
```md
|
||||

|
||||

|
||||
```
|
||||
|
||||
## New pages
|
||||
|
||||
1. Create a new `.md` file under `documentation/` in a sub-directory that fits the purpose of the file.
|
||||
1. Add a reference to that file in `sidebars.js`
|
||||
1. Create a new `.md` file under `source/docs/` in a sub-directory that fits the purpose of the file.
|
||||
1. Add a reference to that file in `mkdocs.yml`
|
||||
|
||||
At the top of all pages you should have this:
|
||||
|
||||
```text
|
||||
```yaml
|
||||
---
|
||||
id: An ID for that file, ie. 'feature' (lowercase)
|
||||
title: A Title for the page, this will also be used in the sidebar, ie. Feature
|
||||
description: "A nice description here"
|
||||
---
|
@ -6,7 +6,7 @@ description: "Frontend development"
|
||||
|
||||
The repository for the frontend is hosted @ https://github.com/hacs/frontend
|
||||
|
||||
First spin up the [devcontainer](/docs/developer/devcontainer)
|
||||
First spin up the [devcontainer](/docs/contribute/devcontainer.md)
|
||||
|
||||
When you have that running issue the following commands:
|
||||
|
12
source/docs/contribute/index.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Contributor Documentation
|
||||
generated: true
|
||||
---
|
||||
Hi there :wave:
|
||||
|
||||
This is the beginning of the contributor documentation.
|
||||
|
||||
Use the sidebar to navigate this section.
|
||||
|
||||
- [If you are looking for how to use HACS have a look at the user documentation](/docs/use/index.md)
|
||||
- [If you are looking for how to publish something that can be tracked by HACS have a look at the publisher documentation](/docs/publish/index.md)
|
@ -41,7 +41,7 @@ HACS is prepared to handle those, and this is the flow of it:
|
||||
4. When Home Assistant starts up, you will have a `critical` log entry, and a persistent notification telling you to open the HACS panel.
|
||||
5. When you open the HACS UI, you will see this card:
|
||||
|
||||

|
||||

|
||||
|
||||
If you click the "More info about this incident" button you will be taken to the PR that added that to the [critical file](https://github.com/hacs/default/blob/master/critical).
|
||||
|
@ -6,13 +6,13 @@ description: "HACS Translations"
|
||||
|
||||
To handle submissions of translated strings we are using [Lokalise](https://lokalise.com) they provide us with an amazing platform that is easy to use and maintain.
|
||||
|
||||

|
||||

|
||||
|
||||
To help out with the translation of HACS you need an account on Lokalise, the easiest way to get one is to [click here](https://lokalise.com/login/) then select "Log in with GitHub".
|
||||
|
||||
When you have created your account [click here to join the HACS project on Lokalise](https://lokalise.com/public/854515055f679055040b37.42677693/).
|
||||
|
||||
If you are unsure on how to proceed their documentation is really good, and you can [find that here](https://docs.lokalise.com/en/). Or send me a message @ [discord](https://discord.gg/apgchf8) (username: `ludeeus#4212`)
|
||||
If you are unsure on how to proceed their documentation is really good, and you can [find that here](https:/.lokalise.com/en/). Or send me a message @ [discord](https://discord.gg/apgchf8) (username: `ludeeus#4212`)
|
||||
|
||||
Before each release new translations are pulled from Lokalise, so if you have added something look for it in the next version of HACS.
|
||||
|
11
source/docs/faq/addons.md
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
id: addons
|
||||
title: Add-ons?
|
||||
description: 'NO, no, nope, this is not an add-on, and does not handle add-ons'
|
||||
faq: true
|
||||
---
|
||||
|
||||
- You cannot download HACS as an [add-on](https://www.home-assistant.io/glossary/#add-on), HACS is an [integration](https://www.home-assistant.io/glossary/#integration), and not an [add-on](https://www.home-assistant.io/glossary/#add-on)
|
||||
- HACS does not handle [add-ons](https://www.home-assistant.io/glossary/#add-on).
|
||||
|
||||
[Add-ons](https://www.home-assistant.io/glossary/#add-on) and HACS has nothing to do with each other, they are completely different.
|
@ -9,15 +9,12 @@ First you need to have the repository already downloaded and managed by HACS.
|
||||
Once that is in place, click on the card for the repository you want to enable beta releases for, and click the 3 dots in top right corner to bring up the repository menu.
|
||||
|
||||
In that menu click on "Redownload" to bring up the Redownload dialog.
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
Activate the checkbox to the left of "Show beta versions", once you activate that HACS will fetch new information in the background, once that is done you can now [select a beta version](/docs/faq/select_version) to download.
|
||||
Activate the checkbox to the left of "Show beta versions", once you activate that HACS will fetch new information in the background, once that is done you can now [select a beta version](/docs/faq/select_version.md) to download.
|
||||
|
||||
|
||||
:::note
|
||||
|
||||
Not all repositories will have beta releases, it is up to the author of the repository to use that.
|
||||
|
||||
:::
|
||||
!!! note
|
||||
Not all repositories will have beta releases, it is up to the author of the repository to use that.
|
@ -6,13 +6,13 @@ description: "Custom repositories in HACS"
|
||||
|
||||
But there are a number of different reasons why a developer might not want to publish their repository to HACS, for these situations you can in many cases add it to HACS as a custom repository.
|
||||
|
||||
:::warning
|
||||
Not all repositories will work in HACS, since HACS still needs the repository to have a known structure.
|
||||
:::
|
||||
!!! warning
|
||||
Not all repositories will work in HACS, since HACS still needs the repository to have a known structure.
|
||||
|
||||
|
||||
If you want to try and add a custom repository to HACS do the following:
|
||||
|
||||

|
||||

|
||||
|
||||
1. Go to any of the sections (integrations, frontend, automation).
|
||||
1. Click on the 3 dots in the top right corner.
|
||||
@ -21,9 +21,8 @@ If you want to try and add a custom repository to HACS do the following:
|
||||
1. Select the correct category.
|
||||
1. Click the "ADD" button.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
:::tip
|
||||
The "Custom repositories" option might be hidden while background tasks is running to stop the user to break their instance. Wait a while or/and check HACS status.
|
||||
:::
|
||||
!!! tip
|
||||
The "Custom repositories" option might be hidden while background tasks is running to stop the user to break their instance. Wait a while or/and check HACS status.
|
@ -7,7 +7,7 @@ description: "Data source HACS users for updates"
|
||||
HACS has two different data sources it reaches out to for information on what to show you.
|
||||
|
||||
- HACS Data
|
||||
- [GitHub REST API](https://docs.github.com/en/rest)
|
||||
- [GitHub REST API](https:/.github.com/en/rest)
|
||||
|
||||
## HACS Data
|
||||
|
||||
@ -38,7 +38,7 @@ There are multiple times and actions that will trigger your HACS installation to
|
||||
|
||||
During startup, HACS will reach out to [HACS Data](#hacs-data) for all the categories you have enabled, it will also get newly removed repositories.
|
||||
|
||||
If you have any custom repositories added to HACS, these will use the [GitHub REST API](https://docs.github.com/en/rest) during startup.
|
||||
If you have any custom repositories added to HACS, these will use the [GitHub REST API](https:/.github.com/en/rest) during startup.
|
||||
|
||||
If any of your downloaded repositories have been removed as default in HACS, you will be presented with a [repair issue](https://www.home-assistant.io/integrations/repairs/) stating why it was removed.
|
||||
|
||||
@ -46,25 +46,25 @@ If any of your downloaded repositories have been removed as default in HACS, you
|
||||
|
||||
HACS will reach out to [HACS Data](#hacs-data) for all the categories you have enabled, it will also get newly removed repositories.
|
||||
|
||||
If any of your downloaded repositories have an update, their [update entity](/docs/entities/update_entities) will now show an update.
|
||||
If any of your downloaded repositories have an update, their [update entity](/docs/use/entities/update.md) will now show an update.
|
||||
|
||||
### Every 48 hours after startup
|
||||
|
||||
Suppose HACS has yet to fetch the contents of https://data-v2.hacs.xyz/integration/data.json at least once successfully. In that case, it will use the [GitHub REST API](https://docs.github.com/en/rest) to refresh information about hacs/integration. If it has fetched one or more successfully, this action is skipped.
|
||||
Suppose HACS has yet to fetch the contents of <https://data-v2.hacs.xyz/integration/data.json> at least once successfully. In that case, it will use the [GitHub REST API](https:/.github.com/en/rest) to refresh information about hacs/integration. If it has fetched one or more successfully, this action is skipped.
|
||||
|
||||
If you have downloaded any custom repositories, they will refresh their data using the [GitHub REST API](https://docs.github.com/en/rest).
|
||||
If you have downloaded any custom repositories, they will refresh their data using the [GitHub REST API](https:/.github.com/en/rest).
|
||||
|
||||
### Browse a repository inside HACS
|
||||
|
||||
When you browse a repository inside HACS, HACS will use the [GitHub REST API](https://docs.github.com/en/rest) to ensure that the information it acts on is up-to-date.
|
||||
When you browse a repository inside HACS, HACS will use the [GitHub REST API](https:/.github.com/en/rest) to ensure that the information it acts on is up-to-date.
|
||||
|
||||
### Click "Update information" inside HACS
|
||||
|
||||
When you click the "Update information" action on the "..." repository menu, HACS will use the [GitHub REST API](https://docs.github.com/en/rest) to ensure that the information it acts on is up-to-date.
|
||||
When you click the "Update information" action on the "..." repository menu, HACS will use the [GitHub REST API](https:/.github.com/en/rest) to ensure that the information it acts on is up-to-date.
|
||||
|
||||
### Update a downloaded repository
|
||||
|
||||
When you update a downloaded repository with the "Update" button in the more info dialog of its [update entities](/docs/entities/update_entities) or the `update.install` service, HACS will use the [GitHub REST API](https://docs.github.com/en/rest) to ensure that the information it acts on is up-to-date.
|
||||
When you update a downloaded repository with the "Update" button in the more info dialog of its [update entities](/docs/use/entities/update.md) or the `update.install` service, HACS will use the [GitHub REST API](https:/.github.com/en/rest) to ensure that the information it acts on is up-to-date.
|
||||
|
||||
|
||||
## Special notes
|
12
source/docs/faq/github_account.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
id: github_account
|
||||
title: "Why do I need a GitHub account?"
|
||||
description: "Information about why a GitHub account is needed"
|
||||
---
|
||||
HACS uses the [GitHub API](https:/.github.com/en/rest) to gather information about all [available](https://github.com/hacs/default) and downloaded repositories. [This API is rate limited](https:/.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting) to 60 requests every hour for unauthenticated requests, which is not enough. So HACS needs to make authenticated requests to that API.
|
||||
|
||||
A OAuth token with no scopes which grants read-only access to public information (including user profile info, repository info, and gists), will be used.
|
||||
|
||||
[You can read more about OAuth scopes here](https:/.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps).
|
||||
|
||||
For more information about what HACS updates/refreshes when have a look at [Data sources](/docs/faq/data_sources.md)
|
7
source/docs/faq/index.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Frequently Asked Questions
|
||||
description: "Everything might not be frequently asked, but it's a good dumping ground for various information."
|
||||
generated: true
|
||||
---
|
||||
|
||||
Hi there :wave:
|
@ -9,13 +9,10 @@ First you need to have the repository already downloaded and managed by HACS.
|
||||
Once that is in place, find the card for the repository you want to enable beta releases for, and click repository card to get to the repository page and then click the 3 dots in top right corner to bring up the repository menu.
|
||||
|
||||
In that menu click on "Redownload" to bring up the Redownload dialog.
|
||||

|
||||

|
||||
|
||||
In the "Select version" dropdown, select the version you want to download and click the "Download" button in the bottom right of the dialog.
|
||||
|
||||
|
||||
:::note
|
||||
|
||||
Not all repositories uses releases, it is up to the author of the repository to use that.
|
||||
|
||||
:::
|
||||
!!! note
|
||||
Not all repositories uses releases, it is up to the author of the repository to use that.
|
24
source/docs/help/index.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: "Help"
|
||||
description: "Help"
|
||||
---
|
||||
|
||||
## Browse the documentation
|
||||
|
||||
Learn more using the [documentation on this site](/index.md).
|
||||
|
||||
## Stay up to date
|
||||
|
||||
Find out what's new with this project over at [GitHub](https://github.com/hacs).
|
||||
|
||||
## Want to submit a Bug?
|
||||
|
||||
[Before you do make sure you first have a look here.](/docs/help/issues.md)
|
||||
|
||||
## Discord
|
||||
|
||||
For questions, you can join the [discord server](https://discord.gg/apgchf8), issues do still belong on GitHub.
|
||||
|
||||
## FAQ
|
||||
|
||||
[Frequently Asked Questions](/docs/faq/index.md)
|
@ -30,7 +30,7 @@ _If you are flagging it because you don't like it, have issues with it, or it's
|
||||
|
||||
You use this when you have issues with HACS.
|
||||
|
||||
[To enable debug logs for HACS (required when adding an issue) have a look here](https://hacs.xyz/docs/basic/logs).
|
||||
[To enable debug logs for HACS (required when adding an issue) have a look here](/docs/use/logs.md).
|
||||
|
||||
Logs are **more** then _just_ errors, with debug logging it gives the person investigating the issue a full picture of what happened.
|
||||
|
||||
@ -41,17 +41,17 @@ Logs are **more** then _just_ errors, with debug logging it gives the person inv
|
||||
- Debug logs.
|
||||
- Steps to reproduce the issue.
|
||||
- If the issue is in the UI, add screenshots.
|
||||
- [Diagnostics](/docs/basic/diagnostics)
|
||||
- [Diagnostics](/docs/use/diagnostics.md)
|
||||
|
||||
You can see examples of good/bad issues further down on this page.
|
||||
|
||||
:::warning
|
||||
_Issues that are missing required information can (will) be closed._
|
||||
:::
|
||||
!!! warning
|
||||
_Issues that are missing required information can (will) be closed._
|
||||
|
||||
|
||||
!!! tip
|
||||
oh... and almost forgot... `latest` is **NOT** a version.
|
||||
|
||||
:::tip
|
||||
oh... and almost forgot... `latest` is **NOT** a version.
|
||||
:::
|
||||
|
||||
# Examples
|
||||
|
@ -24,13 +24,13 @@ To use it, follow these steps:
|
||||
1. Click on "Create new file"
|
||||
1. For filename, paste .github/workflows/validate.yaml
|
||||
1. Paste the following contents:
|
||||
1. Change the value of `CATEGORY` key, this needs to be one of: `appdaemon`, `integration`, `netdaemon`, `plugin`, `python_script`, `theme`
|
||||
1. Change the value of `CATEGORY` key, this needs to be one of: `appdaemon`, `integration`, `netdaemon`, `plugin`:material-information-outline:{ title="Plugin is the old name for dashboard but it is still used in the backend" }, `python_script`, `theme`
|
||||
|
||||
```yaml title=".github/workflows/validate.yml"
|
||||
name: Validate
|
||||
|
||||
on:
|
||||
push:
|
||||
push:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
@ -49,6 +49,5 @@ jobs:
|
||||
|
||||
This will run on every PR and push, and at midnight every day. And `workflow_dispatch` allows you to run the action on demand from the Actions tab.
|
||||
|
||||
:::tip
|
||||
If you maintain an integration, you can also validate your integration with [hassfest](https://developers.home-assistant.io/blog/2020/04/16/hassfest).
|
||||
:::
|
||||
!!! tip
|
||||
If you maintain an integration, you can also validate your integration with [hassfest](https://developers.home-assistant.io/blog/2020/04/16/hassfest).
|
@ -8,9 +8,9 @@ As a developer you can now add your repository to be included in as a default re
|
||||
|
||||
Only the owner of the repository or a major contributor to it can submit a PR to have it included as a default.
|
||||
|
||||
Custom integrations that exist to alpha/beta test core integrations will not be accepted, you can still use it as a [custom repository](/docs/faq/custom_repositories)
|
||||
Custom integrations that exist to alpha/beta test core integrations will not be accepted, you can still use it as a [custom repository](/docs/faq/custom_repositories.md)
|
||||
|
||||
Custom integrations that override core integrations will not be accepted, you can still use it as a [custom repository](/docs/faq/custom_repositories)
|
||||
Custom integrations that override core integrations will not be accepted, you can still use it as a [custom repository](/docs/faq/custom_repositories.md)
|
||||
|
||||
## Before submitting
|
||||
|
||||
@ -25,9 +25,9 @@ In your fork of `hacs/default`, create a new branch for your changes from the `m
|
||||
|
||||
Your PR needs to be editable, so you can not submit it from an organization.
|
||||
|
||||
:::caution
|
||||
_NB!: The list is case sensitive._
|
||||
:::
|
||||
!!! danger "Read this!"
|
||||
_NB!: The list is case sensitive._
|
||||
|
||||
|
||||
When a PR for this is merged, it will show up in HACS after the first scheduled scan.
|
||||
|
||||
@ -48,7 +48,7 @@ _Only applies to integrations._
|
||||
|
||||
[See Integration](integration.md#manifestjson)
|
||||
|
||||
For more information about the integration manifest see here https://developers.home-assistant.io/docs/creating_integration_manifest
|
||||
For more information about the integration manifest see here https://developers.home-assistant.io/creating_integration_manifest
|
||||
|
||||
### Check HACS
|
||||
|
@ -2,20 +2,14 @@
|
||||
id: publisher_documentation
|
||||
title: Publisher Documentation
|
||||
description: 'Everything HACS for publishers.'
|
||||
sidebar_position: 0
|
||||
generated: true
|
||||
---
|
||||
|
||||
import DocCardList from '@theme/DocCardList'
|
||||
import { useCurrentSidebarCategory } from '@docusaurus/theme-common'
|
||||
|
||||
Hi there :wave:
|
||||
|
||||
This is the beginning of the publisher documentation.
|
||||
|
||||
Use the sidebar to navigate this section.
|
||||
|
||||
- [If you are looking for how to use HACS have a look at the user documentation](/docs/user)
|
||||
- [If you are looking for how to develop/change something for HACS itself have a look at the developer documentation](/docs/developer)
|
||||
- [If you are looking for how to use HACS have a look at the user documentation](/docs/use/index.md)
|
||||
- [If you are looking for how to develop/change something for HACS itself have a look at the developer documentation](/docs/contribute/index.md)
|
||||
|
||||
<br/><br/>
|
||||
<DocCardList items={useCurrentSidebarCategory().items.filter(entry => entry.label !== frontMatter.title)} />
|