feat(docs): migrate documentation site into monorepo (#5912)

This commit is contained in:
Thomas authored and GitHub committed 2026-06-11 18:48:39 +02:00
1 parent 3e464a76f2
commit 9e421c67bd
605 files changed
+26764 -219

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

+77
View File
@@ -0,0 +1,77 @@
---
title: 'Releases'
description: 'Displays a list of the current version of the given repositories with the given version regex.'
hide_title: true
---
import { AddingWidget } from '@site/src/components/widgets/adding';
import { WidgetConfig } from '@site/src/components/widgets/configuration';
import { WidgetHeader } from '@site/src/components/widgets/header';
import { WidgetIntegrations } from '@site/src/components/widgets/integrations';
import { releasesWidget } from '.';
import { githubIntegration } from '@site/docs/integrations/github';
import { gitlabIntegration } from '@site/docs/integrations/gitlab';
import { dockerHubIntegration } from '@site/docs/integrations/docker-hub';
import { npmIntegration } from '@site/docs/integrations/npm';
import { codebergIntegration } from '@site/docs/integrations/codeberg';
<WidgetHeader
widget={releasesWidget}
categories={['Releases', 'Software']}
/>
The releases widget enables you to track a list of repositories and see their respective latest release.
It also supports importing releases from your local docker containers.
### Screenshots
import collapsibleCard from './img/collapsible.png';
import fullCard from './img/full.png';
import noDetailsCard from './img/no-details.png';
import { quayIntegration } from '@site/docs/integrations/quay';
import { gitHubContainerRegistryIntegration } from '@site/docs/integrations/github-containerregistry';
import { linuxServerIoIntegration } from '@site/docs/integrations/linux-server-io';
<div className='flex gap-1'>
<img src={fullCard} alt="releases full" width={128 * 3} />
<img src={collapsibleCard} alt="releases collapsible" width={128 * 3} />
<img src={noDetailsCard} alt="releases no details" width={128 * 3} />
</div>
### Supported Integrations
<WidgetIntegrations items={[{
integration: githubIntegration,
}, {
integration: gitlabIntegration,
}, {
integration: dockerHubIntegration,
}, {
integration: npmIntegration,
}, {
integration: codebergIntegration,
}, {
integration: gitHubContainerRegistryIntegration,
note: "Use if release is only available in ghcr.io"
}, {
integration: quayIntegration
}, {
integration: linuxServerIoIntegration
}]} />
### Adding the widget
<AddingWidget />
### Configuration
<WidgetConfig configuration={releasesWidget.configuration} />
:::note
The version filter is used to match the version tag of the release. It is a combination of the prefix, precision and suffix.
Setting the Prefix to `v`, precision to `2` and the Suffix to `-alpha`, will match `v1.0-alpha` but not `v1.0-beta`.
Setting the Prefix to `v`, precision to `3`, will match `v5.2.0` but not `v1.0.2-alpha` or `Beta v5.2.1`.
:::
+120
View File
@@ -0,0 +1,120 @@
import { WidgetDefinition } from "@site/src/types";
import { IconRocket } from "@tabler/icons-react";
export const releasesWidget: WidgetDefinition = {
icon: IconRocket,
name: "Releases",
description: "Displays a list of the current version of the given repositories with the given version regex.",
path: "../../widgets/releases",
configuration: {
items: [
{
name: "New Release Within",
description: "The time period in which a new release is marked as new.",
values: "Any timespan in format '12h', '3d', '2w', '6M', '1y'.",
defaultValue: "1w",
},
{
name: "Stale Release Within",
description: "The time period in which a release is marked as stale.",
values: "Any timespan in format '12h', '3d', '2w', '6M', '1y'.",
defaultValue: "6M",
},
{
name: "Show Only Highlighted",
description: "Show only new or stale releases. As per the above.",
values: { type: "boolean" },
defaultValue: "no",
},
{
name: "Show Details",
description: "Show the row below the repository with stats about the repository.",
values: { type: "boolean" },
defaultValue: "yes",
},
{
name: "Show only icon",
description: "Hides the repository name or identifier",
values: { type: "boolean" },
defaultValue: "no",
},
{
name: "Top Releases",
description: "The max number of latest releases to show. Zero means no limit.",
values: "Any positive integer or zero to disable the limit.",
defaultValue: "0",
},
{
name: "Repositories",
description: "The repositories to show releases for.",
values: {
name: "Repositories",
type: "array",
configuration: {
items: [
{
name: "Provider",
description: "Integration to fetch the repository from.",
values: "Select from the available integrations.",
defaultValue: "-",
},
{
name: "Identifier",
description: 'The identifier of the repository, e.g. "homarr-labs/homarr".',
values: "Any valid repository identifier.",
defaultValue: "-",
},
{
name: "Name",
description: "Display name of the repository.",
values: { type: "string" },
defaultValue: "-",
},
{
name: "Icon URL",
description: "URL to the icon of the repository.",
values: { type: "string" },
defaultValue: "-",
},
{
name: "Version Regex",
description: "The regex to extract the version from the release tag.",
values: {
name: "Version Regex",
type: "object",
configuration: {
items: [
{
name: "Prefix",
description: "The prefix to match before the version.",
values: { type: "string" },
defaultValue: "",
},
{
name: "Precision",
description: "The precision of the version",
values: {
type: "select",
options: ["None", "#", "#.#", "#.#.#", "#.#.#.#", "#.#.#.#.#"],
},
defaultValue: "None",
},
{
name: "Suffix",
description: "The suffix to match after the version.",
values: { type: "string" },
defaultValue: "",
},
],
},
},
defaultValue: "None",
},
],
},
},
defaultValue: "None",
},
],
},
};