website/docs: Improved Version Picker. (#14404)

* website: Flesh out version picker. Port 3.8 theme.

* website: Update Dockerfile to include compose.

* website: Flesh out branch override. Tidy list items.
This commit is contained in:
Teffen Ellis
2025-07-10 21:36:48 +02:00
committed by GitHub
parent 3a07d5d829
commit 72af009de8
41 changed files with 1135 additions and 390 deletions

View File

@@ -1,42 +1,42 @@
/**
* @file Docusaurus config.
* @file Docusaurus Integrations config.
*
* @import { Config } from "@docusaurus/types";
* @import { UserThemeConfig } from "@goauthentik/docusaurus-config";
* @import { BuildUrlValues } from "remark-github";
* @import { Options as DocsPluginOptions } from "@docusaurus/plugin-content-docs";
* @import { Options as RedirectsPluginOptions } from "@docusaurus/plugin-client-redirects";
*/
import { createRequire } from "node:module";
import * as path from "node:path";
import { join } from "node:path";
import { fileURLToPath } from "node:url";
import { createDocusaurusConfig } from "@goauthentik/docusaurus-config";
import { CommonConfig, CommonDocsPluginOptions } from "@goauthentik/docusaurus-theme/config";
import { remarkLinkRewrite } from "@goauthentik/docusaurus-theme/remark";
import { GlobExcludeDefault } from "@docusaurus/utils";
import remarkDirective from "remark-directive";
import remarkGithub, { defaultBuildUrl } from "remark-github";
import { deepmerge } from "deepmerge-ts";
import remarkEnterpriseDirective from "../remark/enterprise-directive.mjs";
import remarkLinkRewrite from "../remark/link-rewrite-directive.mjs";
import remarkPreviewDirective from "../remark/preview-directive.mjs";
import remarkSupportDirective from "../remark/support-directive.mjs";
import remarkVersionDirective from "../remark/version-directive.mjs";
import { legacyRedirects } from "./legacy-redirects.mjs";
const require = createRequire(import.meta.url);
const __dirname = fileURLToPath(new URL(".", import.meta.url));
//#region Configuration
/**
* Documentation site configuration for Docusaurus.
* @satisfies {Partial<Config>}
*/
const config = createDocusaurusConfig({
const config = {
url: "https://integrations.goauthentik.io",
future: {
experimental_faster: true,
},
themes: ["@docusaurus/theme-mermaid"],
themeConfig: {
themes: ["@goauthentik/docusaurus-theme", "@docusaurus/theme-mermaid"],
themeConfig: /** @type {UserThemeConfig} */ ({
image: "img/social.png",
navbar: {
logo: {
@@ -93,72 +93,46 @@ const config = createDocusaurusConfig({
links: [],
copyright: `Copyright © ${new Date().getFullYear()} Authentik Security Inc. Built with Docusaurus.`,
},
algolia: {
appId: "36ROD0O0FV",
apiKey: "727db511300ca9aec5425645bbbddfb5",
indexName: "goauthentik",
externalUrlRegex: /.*/.source,
},
},
}),
plugins: [
[
"@docusaurus/plugin-google-gtag",
{
trackingID: ["G-9MVR9WZFZH"],
anonymizeIP: true,
},
],
[
"@docusaurus/theme-classic",
{
customCss: [
require.resolve("@goauthentik/docusaurus-config/css/index.css"),
path.join(__dirname, "custom.css"),
join(__dirname, "./custom.css"),
],
},
],
//#region Documentation
[
"@docusaurus/plugin-content-docs",
/** @type {DocsPluginOptions} */ ({
id: "docsIntegrations",
exclude: [...GlobExcludeDefault],
include: ["**/*.mdx", "**/*.md"],
deepmerge(
CommonDocsPluginOptions,
/** @type {DocsPluginOptions} */ ({
id: "docsIntegrations",
exclude: [...GlobExcludeDefault],
include: ["**/*.mdx", "**/*.md"],
path: "integrations",
routeBasePath: "/",
sidebarPath: "./integrations/sidebar.mjs",
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
showLastUpdateTime: false,
path: "integrations",
routeBasePath: "/",
sidebarPath: "./integrations/sidebar.mjs",
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
showLastUpdateTime: false,
//#region Docs Plugins
beforeDefaultRemarkPlugins: [
remarkDirective,
remarkLinkRewrite(new Map([["/docs", "https://docs.goauthentik.io"]])),
remarkVersionDirective,
remarkEnterpriseDirective,
remarkPreviewDirective,
remarkSupportDirective,
],
remarkPlugins: [
[
remarkGithub,
{
repository: "goauthentik/authentik",
/**
* @param {BuildUrlValues} values
*/
buildUrl: (values) => {
// Only replace issues and PR links
return values.type === "issue" || values.type === "mention"
? defaultBuildUrl(values)
: false;
},
},
beforeDefaultRemarkPlugins: [
remarkLinkRewrite([
// ---
["/api", "https://api.goauthentik.io"],
["/docs", "https://docs.goauthentik.io"],
]),
],
],
}),
}),
),
],
[
"@docusaurus/plugin-client-redirects",
@@ -178,6 +152,6 @@ const config = createDocusaurusConfig({
}),
],
],
});
};
export default config;
export default /** @type {Config} */ (deepmerge(CommonConfig, createDocusaurusConfig(config)));