// @ts-check // Note: type annotations allow type checking and IDEs autocompletion const vars = require("./vars"); /** @type {import('@docusaurus/types').Config} */ const config = { title: vars.title, tagline: vars.description, url: process.env.URL || vars.website, baseUrl: process.env.BASE_URL || "/", onBrokenLinks: "throw", onBrokenMarkdownLinks: "throw", favicon: "img/icon.svg", organizationName: "libretime", projectName: "libretime", trailingSlash: true, plugins: [ [ "@cmfcmf/docusaurus-search-local", { indexBlog: false, indexPages: false, }, ], [ "@docusaurus/plugin-client-redirects", { redirects: require("./redirects"), }, ], ], i18n: { defaultLocale: "en", locales: ["en"], }, presets: [ [ "classic", /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { path: "../docs", sidebarPath: require.resolve("./sidebars.js"), editUrl: `${vars.repository.href}/blob/main/docs`, async sidebarItemsGenerator({ defaultSidebarItemsGenerator, ...args }) { const items = await defaultSidebarItemsGenerator(args); return items.map((item) => { // Reverse releases pages ordering if (item.type === "category" && item.label === "Releases") { return { ...item, items: item.items.reverse() }; } return item; }); }, remarkPlugins: [require("mdx-mermaid")], }, blog: false, theme: { customCss: require.resolve("./src/css/custom.css"), }, }), ], ], themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ navbar: { title: vars.title, logo: { alt: "LibreTime tower", src: "img/icon.svg", }, items: [ { label: "Docs", to: "/docs", position: "left", type: "dropdown", items: vars.doc.sections, }, { label: "Contribute", to: "/contribute", position: "left" }, { ...vars.repository, position: "right" }, { ...vars.forum, position: "right" }, { ...vars.channel, position: "right" }, { type: "docsVersionDropdown", position: "right" }, // { type: "localeDropdown", position: "right" }, ], }, footer: { style: "dark", links: [ { title: "Docs", items: vars.doc.sections, }, { title: "Community", items: [vars.forum, vars.channel], }, { title: "More", items: [vars.repository], }, ], copyright: `Code licensed under AGPLv3; docs licensed under GPLv2.`, }, prism: { additionalLanguages: ["apacheconf", "ini", "nginx"], }, }), }; module.exports = config;