zrok/website/docusaurus.config.js

191 lines
5.3 KiB
JavaScript

// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require('prism-react-renderer/themes/github');
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'Zrok',
staticDirectories: ['static', '../docs/images', '../docker/compose', '../etc/caddy'],
tagline: 'Globally distributed reverse proxy',
url: 'https://docs.zrok.io',
baseUrl: '/',
trailingSlash: true,
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
favicon: 'img/space-ziggy.png',
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'NetFoundry', // Usually your GitHub org/user name.
projectName: 'zrok', // Usually your repo name.
// Even if you don't use internalization, 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'],
},
plugins: [
[
'@docusaurus/plugin-client-redirects',
{
redirects: [
{
to: '/docs/guides/self-hosting/linux',
from: ['/docs/guides/self-hosting/self_hosting_guide'],
},
{
to: '/docs/guides/self-hosting/linux/nginx',
from: ['/docs/guides/self-hosting/nginx_tls_guide/']
},
{
to: '/docs/guides/self-hosting/metrics-and-limits/configuring-limits',
from: ['/docs/guides/metrics-and-limits/configuring-limits'],
},
{
to: '/docs/guides/self-hosting/metrics-and-limits/configuring-metrics',
from: ['/docs/guides/metrics-and-limits/configuring-metrics'],
}
]
}
],
function myPlugin(context, options) {
return {
name: 'custom-webpack-plugin',
configureWebpack(config, isServer, utils) {
return {
module: {
rules: [
{
test: /\.yaml$/,
use: 'yaml-loader',
},
],
},
};
},
};
},
],
presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
editUrl:
'https://github.com/openziti/zrok/blob/main/docs',
path: '../docs',
include: ['**/*.md', '**/*.mdx'],
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
pages: {
path: './src/pages'
},
googleTagManager: {
containerId: 'GTM-MDFLZPK8',
},
sitemap: {
}
}),
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
navbar: {
title: 'zrok',
logo: {
alt: 'Ziggy Goes to Space',
src: 'img/space-ziggy.png',
href: 'https://zrok.io',
target: '_self',
},
items: [
{
href: 'https://zrok.io/pricing/',
position: 'right',
label: 'pricing',
},
{
href: 'https://myzrok.io/',
position: 'right',
label: 'account',
},
{
href: 'https://github.com/orgs/openziti/projects/16',
label: 'roadmap',
position: 'right',
},
{
href: 'https://github.com/openziti/zrok',
position: 'right',
className: 'header-github-link',
title: 'GitHub'
},
{
href: 'https://openziti.discourse.group/',
position: 'right',
className: 'header-discourse-link',
title: 'Discourse'
},
],
},
footer: {
style: 'dark',
links: [
],
copyright: `Copyright © ${new Date().getFullYear()} NetFoundry Inc. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
colorMode: {
defaultMode: 'dark',
disableSwitch: false,
respectPrefersColorScheme: false,
},
docs: {
sidebar: {
autoCollapseCategories: true,
}
},
algolia: {
// The application ID provided by Algolia
appId: 'CO73R59OLO',
// Public API key: it is safe to commit it
apiKey: '489572e91d0a750d34c127c2071ef962',
indexName: 'zrok',
// Optional: see doc section below
contextualSearch: true,
// Optional: Specify domains where the navigation should occur through window.location instead on history.push. Useful when our Algolia config crawls multiple documentation sites and we want to navigate with window.location.href to them.
// externalUrlRegex: 'external\\.example\\.com|thirdparty\\.example\\.com',
// Optional: Algolia search parameters
searchParameters: {},
// Optional: path for search page that enabled by default (`false` to disable it)
searchPagePath: 'search',
//... other Algolia params
},
}),
};
module.exports = config;