// @ts-check require('dotenv').config(); /** @type {import('@docusaurus/types').Config} */ const config = { title: 'Meshtastic', tagline: 'Open Source hiking, pilot, skiing and secure GPS mesh communicator', url: 'https://meshtastic.org', baseUrl: '/', onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', favicon: 'design/web/favicon.ico', organizationName: 'meshtastic', projectName: 'meshtastic', ssrTemplate: `<!DOCTYPE html> <html <%~ it.htmlAttributes %>> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="generator" content="Docusaurus v<%= it.version %>"> <% if (it.noIndex) { %> <meta name="robots" content="noindex, nofollow" /> <% } %> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "url": "https://meshtastic.org", "logo": "https://meshtastic.org/design/logo/logo.svg" } </script> <%~ it.headTags %> <% it.metaAttributes.forEach((metaAttribute) => { %> <%~ metaAttribute %> <% }); %> <% it.stylesheets.forEach((stylesheet) => { %> <link rel="stylesheet" href="<%= it.baseUrl %><%= stylesheet %>" /> <% }); %> <% it.scripts.forEach((script) => { %> <link rel="preload" href="<%= it.baseUrl %><%= script %>" as="script"> <% }); %> </head> <body <%~ it.bodyAttributes %>> <%~ it.preBodyTags %> <div id="__docusaurus"> <%~ it.appHtml %> </div> <% it.scripts.forEach((script) => { %> <script src="<%= it.baseUrl %><%= script %>"></script> <% }); %> <%~ it.postBodyTags %> </body> </html>`, themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { colorMode: { respectPrefersColorScheme: true, }, docs: { sidebar: { autoCollapseCategories: true, }, }, navbar: { title: 'Meshtastic', hideOnScroll: true, logo: { alt: 'Meshtastic Logo', src: 'design/logo/svg/Mesh_Logo_Black.svg', srcDark: 'design/logo/svg/Mesh_Logo_White.svg', }, items: [ { label: 'Docs', items: [ { label: 'Getting Started', to: 'docs/getting-started', }, { label: 'Configuration', to: 'docs/settings', }, { label: 'Hardware', to: 'docs/hardware', }, { label: 'Software', to: 'docs/software', }, ], }, { label: 'Developers', to: 'docs/developers', }, { label: 'Other', items: [ { label: 'Downloads', to: 'downloads', activeBasePath: 'downloads', }, { label: 'Showcase', to: 'showcase', activeBasePath: 'showcase', }, ], }, ], }, footer: { copyright: `<a href="https://vercel.com/?utm_source=meshtastic&utm_campaign=oss">Powered by ▲ Vercel</a> | Meshtastic® is a registered trademark of Geeksville Industries LLC. | <a href="/docs/legal">Legal Information</a>.`, }, algolia: { appId: 'IG2GQB8L3V', apiKey: '2e4348812173ec7ea6f7879c7032bb21', indexName: 'meshtastic', contextualSearch: false, searchPagePath: 'search', }, }, plugins: [ () => { return { name: 'docusaurus-tailwindcss', configurePostCss(postcssOptions) { // Appends TailwindCSS and AutoPrefixer. postcssOptions.plugins.push(require('tailwindcss')); postcssOptions.plugins.push(require('autoprefixer')); return postcssOptions; }, }; }, ], presets: [ [ '@docusaurus/preset-classic', /** @type {import('@docusaurus/preset-classic').Options} */ { docs: { sidebarPath: require.resolve('./sidebars.js'), editUrl: 'https://github.com/meshtastic/meshtastic/edit/master/', breadcrumbs: false, showLastUpdateAuthor: true, }, theme: { customCss: require.resolve('./src/css/custom.css'), }, }, ], ], customFields: { API_URL: process.env.API_URL, }, }; module.exports = config;