blob: f125aa7d8ecc0f125b0cfa9dbd39ffa6c74d36e8 [file] [log] [blame]
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
const config: Config = {
title: 'Apache Ignite 3 Documentation',
tagline: 'Distributed Database for High-Performance Computing',
favicon: 'img/favicon.ico',
// Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future
future: {
v4: true, // Improve compatibility with the upcoming Docusaurus v4
},
// Set the production url of your site here
url: 'https://ignite.apache.org',
// Set the /<baseUrl>/ pathname under which your site is served
// Serves Ignite 3 docs at /docs/ignite3/ on the main website
// Can be overridden with BASE_URL environment variable for staging builds
baseUrl: process.env.BASE_URL || '/docs/ignite3/',
// Enforce consistent trailing slash
trailingSlash: false,
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'apache', // Usually your GitHub org/user name.
projectName: 'ignite-3', // Usually your repo name.
// Allow broken links during development while we convert content
// Change back to 'throw' once all content is migrated
onBrokenLinks: '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',
// Edit link disabled - docs not yet in upstream repository
editUrl: undefined,
routeBasePath: '/', // Serve docs at the site root
// Versioning configuration
includeCurrentVersion: true, // Include the current (unversioned) docs
lastVersion: 'current', // The most recent version
onlyIncludeVersions: ['current', '3.0.0'], // Limit which versions are included
versions: {
current: {
label: '3.1.0 (Latest)',
path: '3.1.0',
banner: 'none', // No banner for latest version
},
'3.0.0': {
label: '3.0.0',
path: '3.0.0',
banner: 'unmaintained', // Show banner for older version
badge: true, // Show version badge
},
},
},
blog: false, // Disable blog functionality
theme: {
customCss: './src/css/custom.css',
},
} satisfies Preset.Options,
],
],
markdown: {
mermaid: true,
},
themes: [
'@docusaurus/theme-mermaid',
[
require.resolve('@easyops-cn/docusaurus-search-local'),
{
// Indexing options
hashed: true, // Hash the search index file for better caching
indexDocs: true, // Index documentation pages
indexBlog: false, // Don't index blog (disabled)
indexPages: false, // Don't index static pages (docs-only site)
docsRouteBasePath: '/', // Docs are served at root
// Search UI options
searchResultLimits: 10, // Maximum number of search results
searchResultContextMaxLength: 100, // Maximum length of search result context
highlightSearchTermsOnTargetPage: true, // Highlight search terms on result pages
searchBarPosition: 'right', // Position in navbar (before version selector)
// Language support
language: ['en'], // English only
// Performance options
searchBarShortcut: true, // Enable keyboard shortcut (Ctrl+K / Cmd+K)
searchBarShortcutHint: true, // Show keyboard shortcut hint
},
],
],
themeConfig: {
image: 'img/logo.svg',
colorMode: {
defaultMode: 'light',
disableSwitch: false,
respectPrefersColorScheme: true,
},
navbar: {
logo: {
alt: 'Apache Ignite Logo',
src: 'img/logo.svg',
srcDark: 'img/logo-dark.svg',
href: '/',
target: '_self',
},
items: [
{
type: 'docsVersionDropdown',
position: 'right',
},
{
type: 'search',
position: 'right',
},
{
href: 'https://github.com/apache/ignite-3',
label: 'GitHub',
position: 'right',
},
],
style: 'primary',
hideOnScroll: false,
},
docs: {
sidebar: {
hideable: true,
autoCollapseCategories: false,
},
},
footer: {
style: 'dark',
links: [
{
title: 'Documentation',
items: [
{
label: 'Apache Ignite 3',
to: '/3.1.0/',
},
],
},
{
title: 'Community',
items: [
{
label: 'Apache Ignite',
href: 'https://ignite.apache.org',
},
{
label: 'User Mailing List',
href: 'https://ignite.apache.org/community.html',
},
],
},
{
title: 'Apache Software Foundation',
items: [
{
label: 'Apache Software Foundation',
href: 'https://www.apache.org/',
},
{
label: 'License',
href: 'https://www.apache.org/licenses/',
},
{
label: 'GitHub',
href: 'https://github.com/apache/ignite-3',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} The Apache Software Foundation. Licensed under the Apache License, Version 2.0.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.oneDark, // Similar to Tokyo Night color scheme
additionalLanguages: [
'java',
'csharp',
'cpp',
'python',
'sql',
'bash',
'json',
'yaml',
],
},
} satisfies Preset.ThemeConfig,
};
export default config;