feat(docs): migrate documentation site into monorepo (#5912)
This commit is contained in:
1 parent
3e464a76f2
commit
9e421c67bd
605 files changed
+26764
-219
No files matched your search
@@ -5,6 +5,8 @@ import { XMLParser } from "fast-xml-parser";
|
||||
import { z } from "zod/v4";
|
||||
|
||||
import { createDocumentationLink } from "./index";
|
||||
import { integrationDocSlugs } from "./integration-doc-slugs";
|
||||
import { widgetDocSlugs } from "./widget-doc-slugs";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
@@ -66,8 +68,21 @@ const main = async () => {
|
||||
const sitemapXml = await fetchSitemapAsync();
|
||||
const sitemapData = parseXml(sitemapXml);
|
||||
const paths = mapSitemapXmlToPaths(sitemapData);
|
||||
// Adding sitemap as it's not in the sitemap.xml and we need it for this file
|
||||
paths.push("/sitemap.xml");
|
||||
|
||||
const slugMapPaths = [
|
||||
...Object.values(integrationDocSlugs)
|
||||
.filter(Boolean)
|
||||
.map((slug) => `/docs/integrations/${slug}`),
|
||||
...Object.values(widgetDocSlugs)
|
||||
.filter(Boolean)
|
||||
.map((slug) => `/docs/widgets/${slug}`),
|
||||
];
|
||||
for (const p of slugMapPaths) {
|
||||
if (!paths.includes(p)) {
|
||||
paths.push(p);
|
||||
}
|
||||
}
|
||||
const sitemapPathType = createSitemapPathType(paths);
|
||||
await updateSitemapTypeFileAsync(sitemapPathType);
|
||||
};
|
||||
|
||||
@@ -254,4 +254,100 @@ export type HomarrDocumentationPath =
|
||||
| "/docs/widgets/video"
|
||||
| "/docs/widgets/weather"
|
||||
| ""
|
||||
| "/sitemap.xml";
|
||||
| "/sitemap.xml"
|
||||
| "/docs/integrations/sabnzbd"
|
||||
| "/docs/integrations/nzbget"
|
||||
| "/docs/integrations/deluge"
|
||||
| "/docs/integrations/transmission"
|
||||
| "/docs/integrations/q-bittorent"
|
||||
| "/docs/integrations/aria2"
|
||||
| "/docs/integrations/slskd"
|
||||
| "/docs/integrations/sonarr"
|
||||
| "/docs/integrations/radarr"
|
||||
| "/docs/integrations/lidarr"
|
||||
| "/docs/integrations/readarr"
|
||||
| "/docs/integrations/prowlarr"
|
||||
| "/docs/integrations/jellyfin"
|
||||
| "/docs/integrations/emby"
|
||||
| "/docs/integrations/plex"
|
||||
| "/docs/integrations/jellyseerr"
|
||||
| "/docs/integrations/seerr"
|
||||
| "/docs/integrations/overseerr"
|
||||
| "/docs/integrations/pi-hole"
|
||||
| "/docs/integrations/adguard-home"
|
||||
| "/docs/integrations/technitium-dns"
|
||||
| "/docs/integrations/home-assistant"
|
||||
| "/docs/integrations/open-media-vault"
|
||||
| "/docs/integrations/dash-dot"
|
||||
| "/docs/integrations/glances"
|
||||
| "/docs/integrations/tdarr"
|
||||
| "/docs/integrations/proxmox"
|
||||
| "/docs/integrations/nextcloud"
|
||||
| "/docs/integrations/unifi-controller"
|
||||
| "/docs/integrations/opnsense"
|
||||
| "/docs/integrations/github"
|
||||
| "/docs/integrations/docker-hub"
|
||||
| "/docs/integrations/gitlab"
|
||||
| "/docs/integrations/npm"
|
||||
| "/docs/integrations/codeberg"
|
||||
| "/docs/integrations/linux-server-io"
|
||||
| "/docs/integrations/github-containerregistry"
|
||||
| "/docs/integrations/quay"
|
||||
| "/docs/integrations/ntfy"
|
||||
| "/docs/integrations/ical"
|
||||
| "/docs/integrations/anchor"
|
||||
| "/docs/integrations/truenas"
|
||||
| "/docs/integrations/unraid"
|
||||
| "/docs/integrations/coolify"
|
||||
| "/docs/integrations/search-ch"
|
||||
| "/docs/integrations/immich"
|
||||
| "/docs/integrations/paperless-ngx"
|
||||
| "/docs/integrations/tracearr"
|
||||
| "/docs/integrations/speedtest-tracker"
|
||||
| "/docs/integrations/uptime-kuma"
|
||||
| "/docs/integrations/audiobookshelf"
|
||||
| "/docs/integrations/navidrome"
|
||||
| "/docs/integrations/umami"
|
||||
| "/docs/integrations/peanut"
|
||||
| "/docs/widgets/clock"
|
||||
| "/docs/widgets/weather"
|
||||
| "/docs/widgets/app"
|
||||
| "/docs/widgets/iframe"
|
||||
| "/docs/widgets/video"
|
||||
| "/docs/widgets/notebook"
|
||||
| "/docs/widgets/anchor-note"
|
||||
| "/docs/widgets/dns-hole-summary"
|
||||
| "/docs/widgets/dns-hole-controls"
|
||||
| "/docs/widgets/smart-home-entity-state"
|
||||
| "/docs/widgets/smart-home-execute-automation"
|
||||
| "/docs/widgets/stock-price"
|
||||
| "/docs/widgets/media-server"
|
||||
| "/docs/widgets/calendar"
|
||||
| "/docs/widgets/downloads"
|
||||
| "/docs/widgets/media-request-list"
|
||||
| "/docs/widgets/media-request-stats"
|
||||
| "/docs/widgets/media-transcoding"
|
||||
| "/docs/widgets/minecraft-server-status"
|
||||
| "/docs/widgets/network-controller-summary"
|
||||
| "/docs/widgets/network-controller-status"
|
||||
| "/docs/widgets/rss-feed"
|
||||
| "/docs/widgets/bookmarks"
|
||||
| "/docs/widgets/indexer-manager"
|
||||
| "/docs/widgets/health-monitoring"
|
||||
| "/docs/widgets/releases"
|
||||
| "/docs/widgets/media-releases"
|
||||
| "/docs/widgets/docker-containers"
|
||||
| "/docs/widgets/firewall"
|
||||
| "/docs/widgets/notifications"
|
||||
| "/docs/widgets/system-resources"
|
||||
| "/docs/widgets/coolify"
|
||||
| "/docs/widgets/timetable"
|
||||
| "/docs/widgets/immich-server-stats"
|
||||
| "/docs/widgets/immich-album-carousel"
|
||||
| "/docs/widgets/paperless-ngx"
|
||||
| "/docs/widgets/tracearr"
|
||||
| "/docs/widgets/speedtest-tracker"
|
||||
| "/docs/widgets/uptime-kuma"
|
||||
| "/docs/widgets/audio-stats"
|
||||
| "/docs/widgets/umami"
|
||||
| "/docs/widgets/ups";
|
||||
@@ -0,0 +1,60 @@
|
||||
import type { IntegrationKind } from "../integration";
|
||||
|
||||
export const integrationDocSlugs: Record<IntegrationKind, string | null> = {
|
||||
sabNzbd: "sabnzbd",
|
||||
nzbGet: "nzbget",
|
||||
deluge: "deluge",
|
||||
transmission: "transmission",
|
||||
qBittorrent: "q-bittorent",
|
||||
aria2: "aria2",
|
||||
slskd: "slskd",
|
||||
sonarr: "sonarr",
|
||||
radarr: "radarr",
|
||||
lidarr: "lidarr",
|
||||
readarr: "readarr",
|
||||
prowlarr: "prowlarr",
|
||||
jellyfin: "jellyfin",
|
||||
emby: "emby",
|
||||
plex: "plex",
|
||||
jellyseerr: "jellyseerr",
|
||||
seerr: "seerr",
|
||||
overseerr: "overseerr",
|
||||
piHole: "pi-hole",
|
||||
adGuardHome: "adguard-home",
|
||||
technitiumDns: "technitium-dns",
|
||||
homeAssistant: "home-assistant",
|
||||
openmediavault: "open-media-vault",
|
||||
dashDot: "dash-dot",
|
||||
glances: "glances",
|
||||
tdarr: "tdarr",
|
||||
proxmox: "proxmox",
|
||||
nextcloud: "nextcloud",
|
||||
unifiController: "unifi-controller",
|
||||
opnsense: "opnsense",
|
||||
github: "github",
|
||||
dockerHub: "docker-hub",
|
||||
gitlab: "gitlab",
|
||||
npm: "npm",
|
||||
codeberg: "codeberg",
|
||||
linuxServerIO: "linux-server-io",
|
||||
gitHubContainerRegistry: "github-containerregistry",
|
||||
quay: "quay",
|
||||
ntfy: "ntfy",
|
||||
ical: "ical",
|
||||
anchor: "anchor",
|
||||
truenas: "truenas",
|
||||
unraid: "unraid",
|
||||
coolify: "coolify",
|
||||
searchCh: "search-ch",
|
||||
immich: "immich",
|
||||
paperlessNgx: "paperless-ngx",
|
||||
tracearr: "tracearr",
|
||||
speedtestTracker: "speedtest-tracker",
|
||||
uptimeKuma: "uptime-kuma",
|
||||
audiobookshelf: "audiobookshelf",
|
||||
navidrome: "navidrome",
|
||||
umami: "umami",
|
||||
peaNut: "peanut",
|
||||
beszel: null,
|
||||
mock: null,
|
||||
};
|
||||
@@ -0,0 +1,52 @@
|
||||
import type { WidgetKind } from "../widget";
|
||||
|
||||
export const widgetDocSlugs: Record<WidgetKind, string | null> = {
|
||||
clock: "clock",
|
||||
weather: "weather",
|
||||
app: "app",
|
||||
iframe: "iframe",
|
||||
video: "video",
|
||||
notebook: "notebook",
|
||||
anchorNote: "anchor-note",
|
||||
dnsHoleSummary: "dns-hole-summary",
|
||||
dnsHoleControls: "dns-hole-controls",
|
||||
"smartHome-entityState": "smart-home-entity-state",
|
||||
"smartHome-executeAutomation": "smart-home-execute-automation",
|
||||
stockPrice: "stock-price",
|
||||
mediaServer: "media-server",
|
||||
calendar: "calendar",
|
||||
downloads: "downloads",
|
||||
"mediaRequests-requestList": "media-request-list",
|
||||
"mediaRequests-requestStats": "media-request-stats",
|
||||
mediaTranscoding: "media-transcoding",
|
||||
minecraftServerStatus: "minecraft-server-status",
|
||||
networkControllerSummary: "network-controller-summary",
|
||||
networkControllerStatus: "network-controller-status",
|
||||
rssFeed: "rss-feed",
|
||||
bookmarks: "bookmarks",
|
||||
indexerManager: "indexer-manager",
|
||||
healthMonitoring: "health-monitoring",
|
||||
releases: "releases",
|
||||
mediaReleases: "media-releases",
|
||||
dockerContainers: "docker-containers",
|
||||
firewall: "firewall",
|
||||
notifications: "notifications",
|
||||
systemResources: "system-resources",
|
||||
coolify: "coolify",
|
||||
systemDisks: null,
|
||||
timetable: "timetable",
|
||||
"immich-serverStats": "immich-server-stats",
|
||||
"immich-albumCarousel": "immich-album-carousel",
|
||||
paperlessNgx: "paperless-ngx",
|
||||
tracearr: "tracearr",
|
||||
speedtestTracker: "speedtest-tracker",
|
||||
uptimeKuma: "uptime-kuma",
|
||||
audioStats: "audio-stats",
|
||||
umami: "umami",
|
||||
ups: "ups",
|
||||
beszelSystemTable: null,
|
||||
beszelSystemGrid: null,
|
||||
beszelAlerts: null,
|
||||
beszelSystemStats: null,
|
||||
customApi: null,
|
||||
};
|
||||
Reference in new issue
Block a user