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
This commit is contained in:
Joakim Sørensen
2024-05-27 08:38:56 +02:00
committed by GitHub
parent 19a91f18f3
commit 53287ca460
151 changed files with 1086 additions and 14736 deletions

View File

@ -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"
}
}
}

View File

@ -1,6 +1,6 @@
version: 2
updates:
- package-ecosystem: npm
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily

12
.gitignore vendored
View File

@ -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__

View File

@ -1 +0,0 @@
20

View File

@ -1,7 +0,0 @@
{
"singleQuote": true,
"semi": false,
"trailingComma": "all",
"tabWidth": 2,
"printWidth": 100
}

File diff suppressed because one or more lines are too long

View File

@ -1,3 +0,0 @@
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.2.2.cjs

View File

@ -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

View File

@ -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)

View File

@ -1,25 +0,0 @@
---
id: getting_started
title: Getting started
description: "Getting started"
sidebar_position: 0
---
![entry page](/img/panel/entry.png)
---
## 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

View File

@ -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.
![configuration](/img/option3.png)
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.
:::

View File

@ -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)} />

View File

@ -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.

View File

@ -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.
![configuration](/img/option3.png)
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.
:::

View File

@ -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.
:::

View File

@ -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.
:::

View File

@ -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.
:::

View File

@ -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>

View File

@ -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)}
/>

View File

@ -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:
![Image showing the service failing](/img/update_service_failed.png)

View File

@ -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.

View File

@ -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)

View File

@ -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)} />

View File

@ -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"
---
![not_loaded](/img/not_loaded_entry.png)
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.
![not_loaded](/img/not_loaded_section.png)
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)
:::

View File

@ -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

View File

@ -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
View 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

View File

@ -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
View File

@ -0,0 +1,2 @@
mkdocs-material[imaging]==9.5.23
mkdocs-macros-plugin==1.0.5

View File

@ -1,3 +1,3 @@
#!/usr/bin/env bash
yarn run build
mkdocs build

View File

@ -1,3 +1,3 @@
#!/usr/bin/env bash
yarn run start
mkdocs serve

View File

@ -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

View File

@ -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
View 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

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

View File

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 164 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 MiB

After

Width:  |  Height:  |  Size: 6.2 MiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

View File

Before

Width:  |  Height:  |  Size: 212 KiB

After

Width:  |  Height:  |  Size: 212 KiB

View File

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 603 KiB

After

Width:  |  Height:  |  Size: 603 KiB

View File

Before

Width:  |  Height:  |  Size: 207 KiB

After

Width:  |  Height:  |  Size: 207 KiB

View 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
View File

@ -0,0 +1 @@
authors: {}

5
source/blog/index.md Normal file
View File

@ -0,0 +1,5 @@
---
search:
exclude: true
---
# Blog

View 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:

View 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)

View File

@ -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:**

View File

@ -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 }
![edit](/img/edit_this.png)
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
![image](/img/features.png)
![image](/assets/images/features.png)
```
## 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"
---

View File

@ -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:

View 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)

View File

@ -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:
![critical](/img/critical.png)
![critical](/assets/images/critical.png)
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).

View File

@ -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.
![Lokalise](/img/lokalise.png)
![Lokalise](/assets/images/external/lokalise_overview.png)
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
View 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.

View File

@ -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.
![redownload_dialog](/img/dialog/redownload.png)
![redownload_dialog](/assets/images/dialog/redownload.png)
![checkmark_beta](/img/checkmark_beta.png)
![checkmark_beta](/assets/images/checkmark_beta.png)
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.

View File

@ -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:
![custom_repositories_entry](/img/custom_repositories_entry.png)
![custom_repositories_entry](/assets/images/custom_repositories_entry.png)
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.
![custom_repositories](/img/custom_repositories.png)
![custom_repositories](/assets/images/custom_repositories.png)
:::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.

View File

@ -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

View 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
View 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:

View File

@ -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.
![redownload_dialog](/img/dialog/redownload.png)
![redownload_dialog](/assets/images/dialog/redownload.png)
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
View 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)

View File

@ -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

View File

@ -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).

View File

@ -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

View File

@ -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)} />

Some files were not shown because too many files have changed in this diff Show More