2023-04-19 11:47:23 +03:00
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
2023-11-04 01:09:20 +03:00
import { themes } from 'prism-react-renderer' ;
const lightCodeTheme = themes . github ;
const darkCodeTheme = themes . dracula ;
2023-04-19 11:47:23 +03:00
2024-02-05 17:01:37 +03:00
const filterOutCategory = ( items , categoryNameToExclude ) => {
return items . reduce ( ( filteredItems , item ) => {
if ( item . type === 'category' && item . label === categoryNameToExclude ) {
// Skip adding the item if the category should be excluded
return filteredItems ;
} else if ( item . type === 'category' ) {
// Recursively filter sub-categories
return filteredItems . concat ( {
... item ,
items : filterOutCategory ( item . items , categoryNameToExclude ) ,
} ) ;
} else {
// Include the item if it's not a category to be excluded
return filteredItems . concat ( item ) ;
}
} , [ ] ) ;
} ;
2023-04-19 11:47:23 +03:00
/** @type {import('@docusaurus/types').Config} */
const config = {
2024-02-05 17:01:37 +03:00
title : 'Twenty - Documentation' ,
tagline : 'Twenty is cool' ,
favicon : 'img/logo-square-dark.ico' ,
2023-04-19 11:47:23 +03:00
2023-08-07 19:20:31 +03:00
// Prevent search engines from indexing the doc for selected environments
2024-02-05 17:01:37 +03:00
noIndex : process . env . SHOULD _INDEX _DOC === 'false' ,
2023-08-07 19:20:31 +03:00
2023-04-19 11:47:23 +03:00
// Set the production url of your site here
2024-02-05 17:01:37 +03:00
url : 'https://docs.twenty.com' ,
2023-04-19 11:47:23 +03:00
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
2024-02-05 17:01:37 +03:00
baseUrl : '/' ,
onBrokenLinks : 'throw' ,
onBrokenMarkdownLinks : 'warn' ,
2023-04-19 11:47:23 +03:00
2023-06-01 16:05:53 +03:00
headTags : [ ] ,
2023-04-26 20:10:17 +03:00
2023-04-19 11:47:23 +03:00
// 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 : {
2024-02-05 17:01:37 +03:00
defaultLocale : 'en' ,
locales : [ 'en' ] ,
2023-04-19 11:47:23 +03:00
} ,
2023-12-15 20:13:13 +03:00
plugins : [ 'docusaurus-node-polyfills' ] ,
2023-04-19 11:47:23 +03:00
presets : [
[
2024-02-05 17:01:37 +03:00
'classic' ,
2023-04-19 11:47:23 +03:00
/** @type {import('@docusaurus/preset-classic').Options} */
( {
docs : {
2023-09-29 17:22:04 +03:00
breadcrumbs : false ,
2024-02-05 17:01:37 +03:00
sidebarPath : require . resolve ( './sidebars.js' ) ,
2023-04-26 20:10:17 +03:00
sidebarCollapsible : false ,
2024-02-05 17:01:37 +03:00
routeBasePath : '/' ,
editUrl :
'https://github.com/twentyhq/twenty/tree/main/packages/twenty-docs' ,
sidebarItemsGenerator : async ( {
defaultSidebarItemsGenerator ,
... args
} ) => {
const sidebarItems = await defaultSidebarItemsGenerator ( args ) ;
return filterOutCategory ( sidebarItems , 'UI Components' ) ;
} ,
2023-04-19 11:47:23 +03:00
} ,
2023-04-26 20:10:17 +03:00
blog : false ,
2023-04-19 11:47:23 +03:00
theme : {
2024-02-05 17:01:37 +03:00
customCss : require . resolve ( './src/css/custom.css' ) ,
2023-04-19 11:47:23 +03:00
} ,
} ) ,
2023-10-20 16:47:44 +03:00
] ,
2023-04-19 11:47:23 +03:00
] ,
themeConfig :
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
( {
// Replace with your project's social card
2024-02-05 17:01:37 +03:00
image : 'img/social-card.png' ,
2023-10-20 16:47:44 +03:00
colorMode : {
2024-02-05 17:01:37 +03:00
defaultMode : 'light' ,
2023-10-30 20:01:58 +03:00
respectPrefersColorScheme : false ,
2023-10-19 17:32:29 +03:00
} ,
2024-02-05 17:01:37 +03:00
docs : {
sidebar : {
autoCollapseCategories : true ,
} ,
} ,
2023-04-19 11:47:23 +03:00
navbar : {
2024-02-05 17:01:37 +03:00
title : 'for Developers' ,
2023-04-19 11:47:23 +03:00
logo : {
2024-02-05 17:01:37 +03:00
alt : 'Twenty' ,
src : 'img/logo-square-dark.svg' ,
srcDark : 'img/logo-square-light.svg' ,
2023-04-19 11:47:23 +03:00
} ,
items : [
2024-02-05 17:01:37 +03:00
/ * {
to : 'https://github.com/twentyhq/twenty/releases' ,
label : 'Releases' ,
position : 'right' ,
} , * /
2023-04-20 19:11:55 +03:00
{
2024-02-05 17:01:37 +03:00
type : 'custom-github-link' ,
position : 'right' ,
2023-10-20 16:47:44 +03:00
} ,
2023-04-19 11:47:23 +03:00
] ,
} ,
2023-04-20 19:11:55 +03:00
algolia : {
2024-02-05 17:01:37 +03:00
appId : 'J2OX2P2QAO' ,
apiKey : 'e0a7a59c7862598a0cf87307c8ea97f2' ,
indexName : 'twenty' ,
2023-10-20 16:47:44 +03:00
2023-04-20 19:11:55 +03:00
// 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.
2023-06-05 19:48:12 +03:00
// externalUrlRegex: 'external\\.com|domain\\.com',
2023-04-20 19:11:55 +03:00
// Optional: Replace parts of the item URLs from Algolia. Useful when using the same search index for multiple deployments using a different baseUrl. You can use regexp or string in the `from` param. For example: localhost:3000 vs myCompany.com/docs
2023-06-05 19:48:12 +03:00
/ * r e p l a c e S e a r c h R e s u l t P a t h n a m e : {
2023-04-20 19:11:55 +03:00
from : '/docs/' , // or as RegExp: /\/docs\//
to : '/' ,
2023-06-05 19:48:12 +03:00
} , * /
2023-04-20 19:11:55 +03:00
// Optional: Algolia search parameters
searchParameters : { } ,
// Optional: path for search page that enabled by default (`false` to disable it)
2024-02-05 17:01:37 +03:00
searchPagePath : 'search' ,
2023-04-20 19:11:55 +03:00
} ,
2023-04-20 18:35:16 +03:00
/ * f o o t e r : {
copyright : ` © ${ new Date ( ) . getFullYear ( ) } Twenty. Docs generated with Docusaurus. ` ,
} , * /
2023-04-19 11:47:23 +03:00
prism : {
theme : lightCodeTheme ,
darkTheme : darkCodeTheme ,
} ,
} ) ,
} ;
module . exports = config ;