website: Docusaurus 3.8 shared fixes part 2 (#15155)
* website: Fix issue where files are ignored during build. * Update packages/docusaurus-config/lib/routing.js Co-authored-by: Dominic R <dominic@sdko.org> Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com> * website: Update paths. --------- Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com> Co-authored-by: Dominic R <dominic@sdko.org>
This commit is contained in:
110
packages/docusaurus-config/lib/navbar.js
Normal file
110
packages/docusaurus-config/lib/navbar.js
Normal file
@ -0,0 +1,110 @@
|
||||
/**
|
||||
* @file Docusaurus navbar configuration for the authentik website.
|
||||
*
|
||||
* @import { NavbarItem } from "@docusaurus/theme-common";
|
||||
*/
|
||||
import { DocusaurusURL, SocialURL } from "./routing.js";
|
||||
|
||||
/**
|
||||
* The navbar items for the authentik website.
|
||||
*
|
||||
* @type {NavbarItem[]}
|
||||
*/
|
||||
export const SocialNavbarItems = /** @type {const} */ ([
|
||||
{
|
||||
"href": SocialURL.GitHub,
|
||||
"data-icon": "github",
|
||||
"aria-label": "GitHub",
|
||||
"position": "right",
|
||||
},
|
||||
{
|
||||
"href": SocialURL.Discord,
|
||||
"data-icon": "discord",
|
||||
"aria-label": "Discord",
|
||||
"position": "right",
|
||||
},
|
||||
]);
|
||||
|
||||
/**
|
||||
* The navbar items for the authentik website.
|
||||
*
|
||||
* @satisfies {NavbarItem[]}
|
||||
*/
|
||||
export const NavbarItemsTemplate = /** @type {const} */ ([
|
||||
{
|
||||
to: "{{WWW_URL}}/features",
|
||||
label: "Features",
|
||||
position: "left",
|
||||
target: "_self",
|
||||
},
|
||||
{
|
||||
to: "{{INTEGRATIONS_URL}}",
|
||||
label: "Integrations",
|
||||
target: "_self",
|
||||
position: "left",
|
||||
},
|
||||
{
|
||||
to: "{{DOCS_URL}}",
|
||||
|
||||
label: "Documentation",
|
||||
position: "left",
|
||||
target: "_self",
|
||||
},
|
||||
{
|
||||
to: "{{WWW_URL}}/pricing/",
|
||||
label: "Pricing",
|
||||
position: "left",
|
||||
target: "_self",
|
||||
},
|
||||
{
|
||||
to: "{{WWW_URL}}/blog",
|
||||
label: "Blog",
|
||||
position: "left",
|
||||
target: "_self",
|
||||
},
|
||||
...SocialNavbarItems,
|
||||
]);
|
||||
|
||||
/**
|
||||
* @typedef {Object} NavbarItemOverrides
|
||||
*
|
||||
* @prop {string} WWW_URL The URL for the WWW environment.
|
||||
* @prop {string} DOCS_URL The URL for the documentation.
|
||||
* @prop {string} INTEGRATIONS_URL The URL for the integrations.
|
||||
*/
|
||||
|
||||
const DEFAULT_NAVBAR_REPLACEMENTS = /** @type {const} */ ({
|
||||
DOCS_URL: DocusaurusURL.Docs,
|
||||
INTEGRATIONS_URL: DocusaurusURL.Integrations,
|
||||
WWW_URL: DocusaurusURL.WWW,
|
||||
});
|
||||
|
||||
/**
|
||||
* Creates a navbar item array, replacing placeholders with the given replacements.
|
||||
*
|
||||
* @param {Partial<NavbarItemOverrides>} [overrides]
|
||||
* @returns {NavbarItem[]}
|
||||
*/
|
||||
export function createNavbarItems(overrides) {
|
||||
const replacements = {
|
||||
...DEFAULT_NAVBAR_REPLACEMENTS,
|
||||
...overrides,
|
||||
};
|
||||
|
||||
return NavbarItemsTemplate.map((item) => {
|
||||
if (typeof item.to !== "string") return item;
|
||||
|
||||
return {
|
||||
...item,
|
||||
to: item.to.replace(
|
||||
/{{([^}]+)}}/g,
|
||||
/**
|
||||
* @param {keyof NavbarItemOverrides} key
|
||||
*/
|
||||
(_, key) => {
|
||||
return replacements[key];
|
||||
},
|
||||
),
|
||||
};
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user