graphql-engine/docs/docusaurus.config.js
rikinsk 1a2e1767c0 Merge branch 'main' into stable
GitOrigin-RevId: 8dcf0b73e7395687f41bb10b437b37f359f4b49b
2024-06-10 08:42:29 +00:00

263 lines
8.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const path = require('path');
const lightCodeTheme = require('prism-react-renderer/themes/vsLight');
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'Hasura GraphQL Docs',
tagline: 'Instant GraphQL on all your data',
url: 'https://hasura.io',
baseUrl: '/docs/',
trailingSlash: true,
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'throw',
favicon: '/docs/img/favicon.png',
organizationName: 'hasura',
projectName: 'graphql-engine',
staticDirectories: ['static', 'public'],
customFields: {
docsBotEndpointURL: (() => {
console.log('process.env.release_mode docs-bot', process.env.release_mode);
switch (process.env.release_mode) {
case 'development':
return 'ws://localhost:8000/hasura-docs-ai';
case 'production':
return 'wss://website-api.hasura.io/chat-bot/hasura-docs-ai';
case 'staging':
return 'wss://website-api.stage.hasura.io/chat-bot/hasura-docs-ai';
default:
return 'ws://localhost:8000/hasura-docs-ai'; // default to development if no match
}
})(),
hasuraVersion: 2,
DEV_TOKEN: process.env.DEV_TOKEN,
},
scripts: [],
webpack: {
jsLoader: isServer => ({
loader: require.resolve('swc-loader'),
options: {
jsc: {
parser: {
syntax: 'typescript',
tsx: true,
},
target: 'es2017',
},
module: {
type: isServer ? 'commonjs' : 'es6',
},
},
}),
},
presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
routeBasePath: '/',
sidebarPath: require.resolve('./sidebars.js'),
editUrl: ({ docPath }) => `https://github.com/hasura/graphql-engine/edit/master/docs/docs/${docPath}`,
docItemComponent: require.resolve('./src/components/CustomDocItem/index.tsx'),
exclude: ['**/*.wip'],
breadcrumbs: true,
// showLastUpdateAuthor: true,
// showLastUpdateTime: true,
lastVersion: 'current',
versions: {
current: {
label: 'v2.x',
badge: true,
path: 'latest',
},
},
},
theme: {
customCss: require.resolve('./src/css/custom.scss'),
},
}),
],
],
plugins: [
'docusaurus-plugin-sass',
[
'content-docs',
/** @type {import('@docusaurus/plugin-content-docs').Options} */
({
id: 'wiki',
path: 'wiki',
routeBasePath: 'wiki',
editUrl: ({ docPath }) => `https://github.com/hasura/graphql-engine/edit/master/docs/docs/${docPath}`,
editCurrentVersion: true,
docItemComponent: require.resolve('./src/components/CustomDocItem/CustomDocItemWiki.tsx'),
// disableVersioning: true,
breadcrumbs: false,
sidebarPath: require.resolve('./sidebarsWiki.js'),
showLastUpdateAuthor: true,
showLastUpdateTime: true,
}),
],
[
path.resolve(__dirname, './src/plugins/docusaurus-plugin-segment-analytics'),
{
prodKey: 'RQXoHRpNcmBKllUDihjDjupGv4AHn5TB',
devKey: 'FRKElp5cyMax6GAdM8OVyNMIFVppgEgp',
// boolean (defaults to false) on whether you want
// to include analytics.page() automatically
trackPage: true,
// number (defaults to 50); time to wait after a route update before it should
// track the page change, to implement this, make sure your `trackPage` property is set to `true`
// trackPageDelay: 50,
},
],
[
path.resolve(__dirname, './src/plugins/docusaurus-plugin-google-gtm'),
{
trackingID: 'GTM-PF5MQ2Z',
},
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
docs: {
sidebar: {
hideable: true,
autoCollapseCategories: true,
},
},
colorMode: {
defaultMode: 'light',
disableSwitch: false,
respectPrefersColorScheme: true,
},
image: 'https://graphql-engine-cdn.hasura.io/assets/hge-docs/og-image.png',
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
additionalLanguages: ['rest', 'http', 'haskell', 'plsql', 'docker', 'nginx', 'markdown'],
},
algolia: {
// If Algolia did not provide you any appId, use 'BH4D9OD16A'
appId: 'NS6GBGYACO',
// Public API key: it is safe to commit it
apiKey: '8f0f11e3241b59574c5dd32af09acdc8',
indexName: 'hasura-graphql',
// 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\\.com|domain\\.com',
// Optional: Algolia search parameters
// searchParameters: {},
},
announcementBar: {
id: 'announcementBar-1', // Increment on change
content: `This is the documentation for Hasura v2. <a target="_blank" rel="noopener noreferrer" href="https://hasura.io/docs/3.0/index/">Click here for the Hasura DDN docs</a>, the future of data delivery.`,
// isCloseable: true,
// backgroundColor: '#fafbfc',
// textColor: '#091E42',
},
// announcementBar: {
// id: 'announcement-bar-3',
// content:
// '<a target="_blank" rel="noopener noreferrer" href="https://hasura.io/events/hasura-con-2022/">Check out the product announcements from HasuraCon22</a>',
// backgroundColor: '#511AAA',
// textColor: '#fff',
// },
navbar: {
hideOnScroll: false,
title: '',
logo: {
alt: 'Hasura Logo',
src: '/img/logo.svg',
srcDark: '/img/logo-light.svg',
href: 'https://hasura.io',
},
items: [
{
to: 'https://hasura.io/products/',
label: 'Product',
position: 'left',
},
{
to: 'https://hasura.io/blog/',
label: 'Blog',
position: 'left',
},
{
to: 'https://hasura.io/learn/',
label: 'Tutorials',
position: 'left',
},
{
to: 'https://hasura.io/changelog',
label: "What's New",
id: 'whats-new-link',
position: 'left',
},
{
to: '/latest/hasura-cloud/overview',
label: 'Hasura Cloud',
className: 'header-hasura-cloud-link',
position: 'left',
},
{
to: '/latest/enterprise/overview',
label: 'Hasura Enterprise',
className: 'header-hasura-ee-link',
position: 'left',
},
{
type: 'docsVersionDropdown',
position: 'right',
dropdownActiveClassDisabled: true,
dropdownItemsAfter: [
{
href: 'https://hasura.io/docs/3.0/index/',
label: 'v3.x',
},
{
href: 'https://hasura.io/docs/1.0/graphql/core/index.html',
label: 'v1.x',
},
],
},
{
type: 'search',
position: 'right',
},
{
href: 'https://github.com/hasura/graphql-engine',
position: 'right',
className: 'header-github-link',
'aria-label': 'GitHub repository',
},
{
to: 'https://hasura.io/pricing/',
label: 'Pricing',
position: 'right',
},
{
to: 'https://cloud.hasura.io/login?pg=docs&plcmt=header&cta=log-in&tech=default',
label: 'Login',
position: 'right',
className: 'nav-link_login',
},
{
to: 'https://cloud.hasura.io/signup?pg=products&plcmt=header&cta=get_started&tech=default',
label: 'Get Started',
position: 'right',
className: 'nav-link_getting-started',
},
],
},
}),
};
module.exports = config;