sintonia/website/docusaurus.config.js

126 lines
3.0 KiB
JavaScript

// @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;