import { themes as prismThemes } from "prism-react-renderer"; import type { Config } from "@docusaurus/types"; import type * as Preset from "@docusaurus/preset-classic"; const organizationName = "<%= organizationName %>"; // Usually Helse Sør-Øst GitHub Organization const projectName = "<%= projectName %>"; // Usually your repo name. const gitRepositoryUrl = "<%= gitRepositoryUrl %>"; // Repository URL const title = "<%= title %>"; // Site title const tagline = "<%= tagline %>"; // Site tagline const config: Config = { title, tagline, favicon: "img/favicon-navbar/sp-days-logo", // Improve compatibility with the upcoming Docusaurus v4 future: { v4: true, }, // Set the production url of your site here url: `https://${organizationName}.github.io`, baseUrl: "/", // GitHub pages deployment config. organizationName, projectName, trailingSlash: false, // Recommended to set to 'throw' to ensure broken links are caught during development onBrokenLinks: "throw", // Adds static directories staticDirectories: ["static"], presets: [ [ "classic", { docs: false, // Disable default docs plugin, using separate instances instead theme: { customCss: "./src/css/sp-days-theme.scss", }, } satisfies Preset.Options, ], ], plugins: [ // Adds SASS/SCSS support "docusaurus-plugin-sass", // Adds the Interactive Tasks plugin to enable task directives "@sp-days-framework/docusaurus-plugin-interactive-tasks", // Adds the Terminal Codeblock plugin to enable terminal output rendering "@sp-days-framework/docusaurus-plugin-terminal-codeblock", // Course documentation instance (main content) [ "@docusaurus/plugin-content-docs", { id: "course", path: "course", routeBasePath: "course", sidebarItemsGenerator: require("./sidebarSections"), remarkPlugins: [ require("@sp-days-framework/docusaurus-plugin-terminal-codeblock") .remarkTerminalDirective, ], beforeDefaultRemarkPlugins: [ require("@sp-days-framework/docusaurus-plugin-interactive-tasks") .remarkTaskDirective, ], }, ], // CONDITIONAL: addon-resources (START) // Resources documentation instance [ "@docusaurus/plugin-content-docs", { id: "resources", path: "resources", routeBasePath: "resources", sidebarItemsGenerator: require("./sidebarSections"), remarkPlugins: [ require("@sp-days-framework/docusaurus-plugin-terminal-codeblock") .remarkTerminalDirective, ], }, ], // CONDITIONAL: addon-resources (END) // CONDITIONAL: addon-slidev (START) // Adds the Slidev plugin to enable slide presentations "@sp-days-framework/docusaurus-plugin-slidev", // CONDITIONAL: addon-slidev (END) // CONDITIONAL: package-docs (START) // Create SP Days Documentation [ "@docusaurus/plugin-content-docs", { sidebarItemsGenerator: require("./sidebarSections"), ...require("@sp-days-framework/create-sp-days/publish-package-docs"), }, ], // Frontpage Collection Documentation [ "@docusaurus/plugin-content-docs", { sidebarItemsGenerator: require("./sidebarSections"), ...require("@sp-days-framework/docusaurus-frontpage-collection/publish-package-docs"), }, ], // Interactive Tasks Plugin Documentation [ "@docusaurus/plugin-content-docs", { sidebarItemsGenerator: require("./sidebarSections"), ...require("@sp-days-framework/docusaurus-plugin-interactive-tasks/publish-package-docs"), }, ], // Slidev Plugin Documentation [ "@docusaurus/plugin-content-docs", { sidebarItemsGenerator: require("./sidebarSections"), ...require("@sp-days-framework/docusaurus-plugin-slidev/publish-package-docs"), }, ], // Terminal Codeblock Plugin Documentation [ "@docusaurus/plugin-content-docs", { sidebarItemsGenerator: require("./sidebarSections"), ...require("@sp-days-framework/docusaurus-plugin-terminal-codeblock/publish-package-docs"), }, ], // Sykehuspartner Slidev Theme Documentation [ "@docusaurus/plugin-content-docs", { sidebarItemsGenerator: require("./sidebarSections"), ...require("@sp-days-framework/slidev-theme-sykehuspartner/publish-package-docs"), }, ], // CONDITIONAL: package-docs (END) ], markdown: { mermaid: true, }, // Mermaid support themes: ["@docusaurus/theme-mermaid"], themeConfig: { docs: { sidebar: { hideable: true, }, }, colorMode: { respectPrefersColorScheme: true, }, navbar: { title: title, logo: { alt: "Sykehuspartner HF", src: "img/favicon-navbar/sorost-logo-light.svg", srcDark: "img/favicon-navbar/sorost-logo-dark.svg", }, items: [ { to: "/course", label: "Course" }, // CONDITIONAL: addon-resources (START) { to: "/resources", label: "Resources" }, // CONDITIONAL: addon-resources (END) // CONDITIONAL: addon-slidev (START) { to: "/slidev", label: "Slides" }, // CONDITIONAL: addon-slidev (END) // CONDITIONAL: package-docs (START) { type: "dropdown", label: "Plugin Docs", position: "left", items: [ { to: "/package-docs/create-sp-days", label: "Create SP Days", className: "title-logo-navbar-sp-days-plugin", }, { to: "/package-docs/frontpage-collection", label: "Frontpage Collection", className: "title-logo-navbar-docusaurus", }, { to: "/package-docs/interactive-tasks", label: "Interactive Tasks", className: "title-logo-navbar-docusaurus", }, { to: "/package-docs/slidev-integration", label: "Slidev Integration", className: "title-logo-navbar-docusaurus", }, { to: "/package-docs/terminal-codeblock", label: "Terminal Codeblock", className: "title-logo-navbar-docusaurus", }, { to: "/package-docs/sykehuspartner-theme", label: "Sykehuspartner Theme", className: "title-logo-navbar-slidev", }, ], }, // CONDITIONAL: package-docs (END) { href: gitRepositoryUrl, position: "right", className: "navbar-github-link", "aria-label": "GitHub repository", }, ], }, footer: { style: "dark", logo: { alt: "Sykehuspartner Logo", src: "img/footer/sykehuspartner-dark.svg", href: "https://www.sykehuspartner.no/", width: 360, height: 81, }, copyright: `Copyright © ${new Date().getFullYear()} Sykehuspartner . Built with Docusaurus.`, }, prism: { additionalLanguages: [ "bash", "batch", "c", "csharp", "docker", "dot", "git", "hcl", "http", "ignore", "ini", "log", "makefile", "mermaid", "nginx", "plant-uml", "powershell", "cshtml", "regex", "sass", "scss", "shell-session", "solution-file", "splunk-spl", "sql", "systemd", "toml", "typescript", "typoscript", "uri", "vim", "yaml", ], theme: prismThemes.oceanicNext, darkTheme: prismThemes.oceanicNext, }, } satisfies Preset.ThemeConfig, }; export default config;