blob: 2edc586f4d18da75cc408a181643699f470cda8d [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
import versionReplace from './src/plugins/remark-version-replace/index';
import { loadVersionData } from './src/utils/versionData';
const { versionsMap, latestVersion } = loadVersionData();
const config: Config = {
title: 'Apache Fluss™ (Incubating)',
tagline: 'Streaming Storage for Real-Time Analytics',
favicon: 'img/logo/fluss_favicon.svg',
// Set the production url of your site here
url: 'https://fluss.apache.org/',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
// 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: 'fluss-website', // Usually your repo name.
deploymentBranch: 'asf-site',
trailingSlash: true,
onBrokenLinks: 'throw',
// 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'],
},
markdown: {
hooks: {
onBrokenMarkdownLinks: 'warn'
}
},
presets: [
[
'classic',
{
docs: {
sidebarPath: './sidebars.ts',
editUrl: ({docPath}) =>
`https://github.com/apache/fluss/edit/main/website/docs/${docPath}`,
remarkPlugins: [versionReplace],
lastVersion: latestVersion,
versions: versionsMap
},
blog: {
showReadingTime: false,
feedOptions: {
type: ['rss', 'atom'],
xslt: true,
},
onInlineTags: 'warn',
onInlineAuthors: 'warn',
onUntruncatedBlogPosts: 'warn',
blogSidebarCount: 'ALL',
blogSidebarTitle: 'All our posts',
},
theme: {
customCss: './src/css/custom.css'
},
} satisfies Preset.Options,
],
],
plugins: [
[
'@docusaurus/plugin-content-docs',
{
id: 'community',
path: 'community',
routeBasePath: 'community',
sidebarPath: './sidebarsCommunity.js',
editUrl: ({docPath}) => {
return `https://github.com/apache/fluss/edit/main/website/community/${docPath}`;
},
// ... other options
},
],
[
'@docusaurus/plugin-content-pages',
{
id: 'learn-pages',
path: 'learn',
routeBasePath: 'learn',
},
],
[
'@docusaurus/plugin-pwa',
{
debug: true,
offlineModeActivationStrategies: [
'appInstalled',
'standalone',
'queryString',
],
pwaHead: [
{ tagName: 'link', rel: 'icon', href: '/img/logo.svg' },
{ tagName: 'link', rel: 'manifest', href: '/manifest.json' },
{ tagName: 'meta', name: 'theme-color', content: '#0071e3' },
],
},
],
],
themeConfig: {
image: 'img/logo/png/colored_logo.png',
colorMode: {
defaultMode: 'light',
disableSwitch: true,
},
navbar: {
title: '',
logo: {
alt: 'Fluss',
src: 'img/logo/svg/colored_logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'docsSidebar',
position: 'left',
label: 'Docs',
},
{to: '/blog', label: 'Blog', position: 'left'},
{
label: 'Learn',
position: 'left',
type: 'dropdown',
items: [
{
label: 'Talks',
to: '/learn/talks',
},
{
label: 'Videos',
to: '/learn/videos',
},
],
},
{to: '/community/welcome', label: 'Community', position: 'left'},
{to: '/roadmap', label: 'Roadmap', position: 'left'},
{to: '/downloads', label: 'Downloads', position: 'left'},
{
label: 'ASF', position: 'right', items: [
{to: 'https://www.apache.org/', label: 'Foundation'},
{to: 'https://www.apache.org/licenses/', label: 'License'},
{to: 'https://www.apache.org/foundation/sponsorship.html', label: 'Donate'},
{to: 'https://www.apache.org/foundation/thanks.html', label: 'Sponsors'},
{to: 'https://www.apache.org/security/', label: 'Security'},
{to: 'https://privacy.apache.org/policies/privacy-policy-public.html', label: 'Privacy'}
]
},
{
type: 'docsVersionDropdown',
position: 'right',
dropdownActiveClassDisabled: true,
},
{
href: 'https://github.com/apache/fluss',
position: 'right',
className: 'header-github-link',
'aria-label': 'GitHub repository',
},
],
},
footer: {
style: 'dark',
logo: {
width: 200,
src: "/img/apache-incubator.svg",
href: "https://incubator.apache.org/",
alt: "Apache Incubator logo"
},
copyright: `<br><p>Apache Fluss is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
<p>Copyright © ${new Date().getFullYear()} The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>`,
},
prism: {
theme: prismThemes.vsDark,
darkTheme: prismThemes.dracula,
additionalLanguages: ['java', 'bash']
},
algolia: {
appId: "X8KSGGLJW1",
apiKey: "5d0685995a3cb0052f32a59216ad3d35",
indexName: "fluss",
contextualSearch: true,
},
} satisfies Preset.ThemeConfig,
};
export default config;