import {themes as prismThemes} from 'prism-react-renderer'; import type {Config} from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; // This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) const config: Config = { title: 'jasima.app', tagline: 'Bypass censorship and enhance privacy for your audience and community', favicon: 'img/logo.png', url: 'https://www.jasima.app', baseUrl: '/', onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you // may want to replace "en" with "zh-Hans". i18n: { defaultLocale: 'en', locales: ['en'], }, presets: [ [ 'classic', { docs: { sidebarPath: './sidebars.ts', docItemComponent: "@theme/ApiItem", }, theme: { customCss: './src/css/custom.css', }, } satisfies Preset.Options, ], ], plugins: [ [ 'docusaurus-plugin-openapi-docs', { id: "api", // plugin id docsPluginId: "classic", // configured for preset-classic config: { api: { specPath: "static/openapi.json", outputDir: "docs/api/", downloadUrl: "/openapi.json", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", }, } satisfies OpenApiPlugin.Options, } }, ] ], themes: ["docusaurus-theme-openapi-docs"], // export theme components themeConfig: { // Replace with your project's social card image: 'img/jasima-social-card.jpg', navbar: { title: 'jasima.app', logo: { alt: 'Logo', src: 'img/logo.png', }, items: [ { type: 'docSidebar', sidebarId: 'docsSidebar', position: 'left', label: 'Docs', }, { type: 'docSidebar', sidebarId: 'apiSidebar', position: 'left', label: 'API', }, { to: '/contact', position: 'left', label: 'Contact', } ], }, footer: { style: 'dark', links: [ { title: 'jasima.app', items: [ { label: 'Service Status', href: 'https://status.jasima.app/' }, { label: 'API Documentation', to: '/docs/api/jasima-app-api' } ] }, { title: 'Docs', items: [ { label: 'Censorship 101', to: '/docs/censorship/', }, { label: 'Web Mirrors', to: '/docs/mirrors/', }, ], }, { title: 'More', items: [ { label: 'Get In Touch', href: '/contact', }, { label: 'Open Source', href: 'https://guardianproject.dev/jasima' }, { label: 'Bypass Censorship', href: 'https://bypasscensorship.org/', }, { label: 'Guardian Project', href: 'https://guardianproject.info/', }, ], }, ], copyright: `Copyright © 2021-${new Date().getFullYear()}.`, }, prism: { theme: prismThemes.github, darkTheme: prismThemes.dracula, }, } satisfies Preset.ThemeConfig, }; export default config;