From 653636846711a762d30459cd2e0de395c8643c28 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sun, 9 Feb 2025 07:06:44 -0600 Subject: [PATCH] Add Inkeep chatbot to docs (#16405) * Add inkeep chatbot to docs * install inkeep to docs dir --- docs/docusaurus.config.ts | 169 +++++++++++++++++++++++--------------- docs/package-lock.json | 7 ++ docs/package.json | 3 +- 3 files changed, 110 insertions(+), 69 deletions(-) diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 865cb53d2..7664a1d9b 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -1,56 +1,88 @@ -import type * as Preset from '@docusaurus/preset-classic'; -import * as path from 'node:path'; -import type { Config, PluginConfig } from '@docusaurus/types'; -import type * as OpenApiPlugin from 'docusaurus-plugin-openapi-docs'; +import type * as Preset from "@docusaurus/preset-classic"; +import * as path from "node:path"; +import type { Config, PluginConfig } from "@docusaurus/types"; +import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; const config: Config = { - title: 'Frigate', - tagline: 'NVR With Realtime Object Detection for IP Cameras', - url: 'https://docs.frigate.video', - baseUrl: '/', - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', - favicon: 'img/favicon.ico', - organizationName: 'blakeblackshear', - projectName: 'frigate', - themes: ['@docusaurus/theme-mermaid', 'docusaurus-theme-openapi-docs'], + title: "Frigate", + tagline: "NVR With Realtime Object Detection for IP Cameras", + url: "https://docs.frigate.video", + baseUrl: "/", + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + favicon: "img/favicon.ico", + organizationName: "blakeblackshear", + projectName: "frigate", + themes: [ + "@docusaurus/theme-mermaid", + "docusaurus-theme-openapi-docs", + "@inkeep/docusaurus/chatButton", + ], markdown: { mermaid: true, }, themeConfig: { algolia: { - appId: 'WIURGBNBPY', - apiKey: 'd02cc0a6a61178b25da550212925226b', - indexName: 'frigate', + appId: "WIURGBNBPY", + apiKey: "d02cc0a6a61178b25da550212925226b", + indexName: "frigate", }, docs: { sidebar: { hideable: true, }, }, + inkeepConfig: { + baseSettings: { + apiKey: "b1a4c4d73c9b48aa5b3cdae6e4c81f0bb3d1134eeb5a7100", + integrationId: "cm6xmhn9h000gs601495fkkdx", + organizationId: "org_map2JQEOco8U1ZYY", + primaryBrandColor: "#010101", + }, + aiChatSettings: { + chatSubjectName: "Frigate", + botAvatarSrcUrl: "https://frigate.video/images/favicon.png", + getHelpCallToActions: [ + { + name: "GitHub", + url: "https://github.com/blakeblackshear/frigate", + icon: { + builtIn: "FaGithub", + }, + }, + ], + quickQuestions: [ + "How to configure and setup camera settings?", + "How to setup notifications?", + "Supported builtin detectors?", + "How to restream video feed?", + "How can I get sound or audio in my recordings?", + ], + }, + }, prism: { - additionalLanguages: ['bash', 'json'], + additionalLanguages: ["bash", "json"], }, languageTabs: [ { - highlight: 'python', - language: 'python', - logoClass: 'python', + highlight: "python", + language: "python", + logoClass: "python", }, { - highlight: 'javascript', - language: 'nodejs', - logoClass: 'nodejs', + highlight: "javascript", + language: "nodejs", + logoClass: "nodejs", }, { - highlight: 'javascript', - language: 'javascript', - logoClass: 'javascript', + highlight: "javascript", + language: "javascript", + logoClass: "javascript", }, { - highlight: 'bash', - language: 'curl', - logoClass: 'curl', + highlight: "bash", + language: "curl", + logoClass: "curl", }, { highlight: "rust", @@ -59,49 +91,49 @@ const config: Config = { }, ], navbar: { - title: 'Frigate', + title: "Frigate", logo: { - alt: 'Frigate', - src: 'img/logo.svg', - srcDark: 'img/logo-dark.svg', + alt: "Frigate", + src: "img/logo.svg", + srcDark: "img/logo-dark.svg", }, items: [ { - to: '/', - activeBasePath: 'docs', - label: 'Docs', - position: 'left', + to: "/", + activeBasePath: "docs", + label: "Docs", + position: "left", }, { - href: 'https://frigate.video', - label: 'Website', - position: 'right', + href: "https://frigate.video", + label: "Website", + position: "right", }, { - href: 'http://demo.frigate.video', - label: 'Demo', - position: 'right', + href: "http://demo.frigate.video", + label: "Demo", + position: "right", }, { - href: 'https://github.com/blakeblackshear/frigate', - label: 'GitHub', - position: 'right', + href: "https://github.com/blakeblackshear/frigate", + label: "GitHub", + position: "right", }, ], }, footer: { - style: 'dark', + style: "dark", links: [ { - title: 'Community', + title: "Community", items: [ { - label: 'GitHub', - href: 'https://github.com/blakeblackshear/frigate', + label: "GitHub", + href: "https://github.com/blakeblackshear/frigate", }, { - label: 'Discussions', - href: 'https://github.com/blakeblackshear/frigate/discussions', + label: "Discussions", + href: "https://github.com/blakeblackshear/frigate/discussions", }, ], }, @@ -110,19 +142,19 @@ const config: Config = { }, }, plugins: [ - path.resolve(__dirname, 'plugins', 'raw-loader'), + path.resolve(__dirname, "plugins", "raw-loader"), [ - 'docusaurus-plugin-openapi-docs', + "docusaurus-plugin-openapi-docs", { - id: 'openapi', - docsPluginId: 'classic', // configured for preset-classic + id: "openapi", + docsPluginId: "classic", // configured for preset-classic config: { frigateApi: { - specPath: 'static/frigate-api.yaml', - outputDir: 'docs/integrations/api', + specPath: "static/frigate-api.yaml", + outputDir: "docs/integrations/api", sidebarOptions: { - groupPathsBy: 'tag', - categoryLinkSource: 'tag', + groupPathsBy: "tag", + categoryLinkSource: "tag", sidebarCollapsible: true, sidebarCollapsed: true, }, @@ -130,23 +162,24 @@ const config: Config = { } satisfies OpenApiPlugin.Options, }, }, - ] + ], ] as PluginConfig[], presets: [ [ - 'classic', + "classic", { docs: { - routeBasePath: '/', - sidebarPath: './sidebars.ts', + routeBasePath: "/", + sidebarPath: "./sidebars.ts", // Please change this to your repo. - editUrl: 'https://github.com/blakeblackshear/frigate/edit/master/docs/', + editUrl: + "https://github.com/blakeblackshear/frigate/edit/master/docs/", sidebarCollapsible: false, - docItemComponent: '@theme/ApiItem', // Derived from docusaurus-theme-openapi + docItemComponent: "@theme/ApiItem", // Derived from docusaurus-theme-openapi }, theme: { - customCss: './src/css/custom.css', + customCss: "./src/css/custom.css", }, } satisfies Preset.Options, ], diff --git a/docs/package-lock.json b/docs/package-lock.json index ce3f0649e..89de28af4 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -12,6 +12,7 @@ "@docusaurus/plugin-content-docs": "^3.6.3", "@docusaurus/preset-classic": "^3.6.3", "@docusaurus/theme-mermaid": "^3.6.3", + "@inkeep/docusaurus": "^2.0.16", "@mdx-js/react": "^3.1.0", "clsx": "^2.1.1", "docusaurus-plugin-openapi-docs": "^4.3.1", @@ -4056,6 +4057,12 @@ "react-hook-form": "^7.0.0" } }, + "node_modules/@inkeep/docusaurus": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@inkeep/docusaurus/-/docusaurus-2.0.16.tgz", + "integrity": "sha512-dQhjlvFnl3CVr0gWeJ/V/qLnDy1XYrCfkdVSa2D3gJTxI9/vOf9639Y1aPxTxO88DiXuW9CertLrZLB6SoJ2yg==", + "license": "MIT" + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", diff --git a/docs/package.json b/docs/package.json index f1849f6d9..82b4230d1 100644 --- a/docs/package.json +++ b/docs/package.json @@ -18,9 +18,10 @@ }, "dependencies": { "@docusaurus/core": "^3.6.3", + "@docusaurus/plugin-content-docs": "^3.6.3", "@docusaurus/preset-classic": "^3.6.3", "@docusaurus/theme-mermaid": "^3.6.3", - "@docusaurus/plugin-content-docs": "^3.6.3", + "@inkeep/docusaurus": "^2.0.16", "@mdx-js/react": "^3.1.0", "clsx": "^2.1.1", "docusaurus-plugin-openapi-docs": "^4.3.1",