new_website/docusaurus.config.js (170 lines of code) (raw):

/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ /** @type {import('@docusaurus/types').DocusaurusConfig} */ module.exports = { title: 'Flow', tagline: 'A Static Type Checker for JavaScript', url: 'https://flow.org', baseUrl: '/', onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', favicon: 'img/favicon.png', organizationName: 'facebook', // Usually your GitHub org/user name. projectName: 'flow', // Usually your repo name. trailingSlash: true, webpack: { // Compiling flow.js is too slow with babel... jsLoader: isServer => ({ loader: require.resolve('esbuild-loader'), options: { loader: 'tsx', format: isServer ? 'cjs' : undefined, target: isServer ? 'node12' : 'es2017', }, }), }, plugins: [ function polyfillNodeBuiltinsForFlowJS(context, options) { return { name: 'polyfillNodeBuiltinsForFlowJS', configureWebpack() { return {resolve: {fallback: {fs: false, constants: false}}}; }, }; }, ], themeConfig: { prism: { theme: require('prism-react-renderer/themes/github'), }, navbar: { logo: { alt: 'My Facebook Project Logo', src: 'img/logo.svg', }, items: [ { to: 'docs/getting-started/', label: 'Getting Started', position: 'left', }, { to: 'docs/', activeBasePath: 'docs', label: 'Docs', position: 'left', }, { to: 'blog/', label: 'Blog', position: 'left', }, { href: 'https://twitter.com/flowtype', 'aria-label': 'Twitter', position: 'right', className: 'navbar__icon twitter__link', }, { href: 'http://stackoverflow.com/questions/tagged/flowtype', 'aria-label': 'Stack Overflow', position: 'right', className: 'navbar__icon stackoverflow__link', }, // Please keep GitHub link to the right for consistency. { href: 'https://github.com/facebook/flow', 'aria-label': 'GitHub', position: 'right', className: 'navbar__icon github__link', }, ], }, footer: { style: 'dark', links: [ { title: 'Learn', items: [ { label: 'Getting Started', to: 'docs/', }, ], }, { title: 'Community', items: [ { label: 'Twitter', href: 'https://twitter.com/flowtype', }, { label: 'Discord', href: 'https://discordapp.com/invite/8ezwRUK', }, ], }, { title: 'More', items: [ { label: 'Medium', to: 'https://medium.com/flow-type', }, { label: 'GitHub', href: 'https://github.com/facebook/flow', }, ], }, { title: 'Legal', // Please do not remove the privacy and terms, it's a legal requirement. items: [ { label: 'Privacy', href: 'https://opensource.facebook.com/legal/privacy/', }, { label: 'Terms', href: 'https://opensource.facebook.com/legal/terms/', }, { label: 'Data Policy', href: 'https://opensource.facebook.com/legal/data-policy/', }, { label: 'Cookie Policy', href: 'https://opensource.facebook.com/legal/cookie-policy/', }, ], }, ], logo: { alt: 'Facebook Open Source Logo', src: 'img/oss_logo.png', href: 'https://opensource.facebook.com', }, // Please do not remove the credits, help to publicize Docusaurus :) copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc. Built with Docusaurus.`, }, }, presets: [ [ '@docusaurus/preset-classic', { docs: { sidebarPath: require.resolve('./sidebars.js'), editUrl: 'https://github.com/facebook/flow/edit/main/new_website/', remarkPlugins: [ [require('@docusaurus/remark-plugin-npm2yarn'), {sync: true}], require('./src/js/flow-check-remark-plugin'), ], }, blog: { path: '../website/_posts', postsPerPage: 50, blogSidebarCount: 'ALL', blogSidebarTitle: 'All our posts', }, theme: { customCss: require.resolve('./src/css/custom.css'), }, }, ], ], };