const path = require("path") const docsPath = path.join(__dirname, "../../docs/content") const apisPath = path.join(__dirname, "../../docs/api") const algoliaAppId = process.env.ALGOLIA_APP_ID || "temp" const algoliaApiKey = process.env.ALGOLIA_API_KEY || "temp" /** @type {import('@docusaurus/types').DocusaurusConfig} */ module.exports = { title: "Medusa", tagline: "Explore and learn how to use Medusa", url: "https://docs.medusajs.com", baseUrl: "/", onBrokenLinks: "throw", onBrokenMarkdownLinks: "warn", favicon: "img/favicon.ico", organizationName: "medusajs", projectName: "medusajs/www", plugins: [ [ "docusaurus2-dotenv", { path: "./.env", // The path to your environment variables. systemvars: true, // Set to true if you would rather load all system variables as well (useful for CI purposes) }, ], [ "docusaurus-plugin-segment", { apiKey: process.env.SEGMENT_API_KEY || "temp" } ] ], themeConfig: { colorMode: { defaultMode: 'light', disableSwitch: false, respectPrefersColorScheme: true, }, algolia: { apiKey: algoliaApiKey, indexName: "medusa-commerce", placeholder: "Search docs...", appId: algoliaAppId, contextualSearch: false, }, prism: { defaultLanguage: "js", plugins: ["line-numbers", "show-language"], theme: require("prism-react-renderer/themes/vsDark"), darkTheme: require("prism-react-renderer/themes/vsDark"), }, navbar: { hideOnScroll: true, logo: { alt: "Medusa", src: "img/logo.svg", srcDark: "img/logo-dark.svg", width: 100 }, items: [ { type: "docSidebar", sidebarId: "docsSidebar", label: "Docs" }, { type: "docSidebar", sidebarId: "userGuideSidebar", label: "User Guide" }, { type: 'dropdown', label: 'REST API Reference', items: [ { type: 'html', value: ` Store ` }, { type: 'html', value: ` Admin ` }, ], }, { href: "https://github.com/medusajs/medusa", className: "navbar-github-link", position: "right", }, { type: "search", position: "right", }, ], }, footer: { links: [ { title: "Community", items: [ { label: "Stack Overflow", href: "https://stackoverflow.com/questions/tagged/medusa-commerce", }, { label: "Discord", href: "https://discord.gg/medusajs", }, { label: "Twitter", href: "https://twitter.com/medusajs", }, ], }, { title: "More", items: [ { label: "Medusa Home", href: "https://medusajs.com", }, { label: "Contact", href: "https://ky5eo2x1u81.typeform.com/get-in-touch", }, { label: "GitHub", href: "https://github.com/medusajs/medusa", }, ], }, ], copyright: `© ${new Date().getFullYear()} Medusa`, }, sidebarFooter: [ { href: "https://github.com/medusajs/medusa/issues/new?assignees=&labels=type%3A+docs&template=docs.yml", label: 'Report an Issue', className: 'alert-icon', }, { href: "https://medusajs.com/", label: 'Go to medusajs.com', className: 'topright-icon', }, ] }, presets: [ [ "@docusaurus/preset-classic", { docs: { sidebarPath: require.resolve("./sidebars.js"), editUrl: "https://github.com/medusajs/medusa/edit/master/docs/content", path: docsPath, routeBasePath: "/", remarkPlugins: [ [require('@docusaurus/remark-plugin-npm2yarn'), {sync: true}], ], showLastUpdateTime: true }, theme: { customCss: require.resolve("./src/css/custom.css") }, }, ], [ 'redocusaurus', { // Plugin Options for loading OpenAPI files specs: [ { spec: path.join(apisPath, 'store/openapi.yaml'), route: '/api/store', layout: { noFooter: true } }, { spec: path.join(apisPath, 'admin/openapi.yaml'), route: '/api/admin', layout: { noFooter: true } } ], // Theme Options for modifying how redoc renders them theme: { primaryColorDark: '#242526', options: { disableSearch: true, nativeScrollbars: true, sortTagsAlphabetically: true, hideDownloadButton: true, expandResponses: "200,204", generatedPayloadSamplesMaxDepth: 4, showObjectSchemaExamples: true, requiredPropsFirst: true, hideRequestPayloadSample: true } } }, ], ], }