diff --git a/docs/_blocks/_plugin_module.mdx b/docs/_blocks/_plugin_module.mdx index 9ea271f0..7d751ee9 100644 --- a/docs/_blocks/_plugin_module.mdx +++ b/docs/_blocks/_plugin_module.mdx @@ -1,7 +1,8 @@ :::important + The name of ths option changed between Meshtastic 1.2 and 1.3. This documentaton already reflects the 1.3 syntax. Please substitute '{props.name}' prefix with '{props.rename}' to get the 1.2 compatible command name. -::: \ No newline at end of file +::: diff --git a/docs/about/expectations.mdx b/docs/about/expectations.mdx deleted file mode 100644 index b5b4b53c..00000000 --- a/docs/about/expectations.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -id: expectations -title: Expectations -sidebar_label: Expectations ---- diff --git a/docs/about/overview.mdx b/docs/about/index.mdx similarity index 97% rename from docs/about/overview.mdx rename to docs/about/index.mdx index 71f09364..4781c7ea 100644 --- a/docs/about/overview.mdx +++ b/docs/about/index.mdx @@ -1,7 +1,6 @@ --- -id: overview title: About Meshtastic -sidebar_label: About Meshtastic +sidebar_label: About slug: /about --- diff --git a/docs/academy/academy.mdx b/docs/academy/academy.mdx deleted file mode 100644 index 68ca185c..00000000 --- a/docs/academy/academy.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: academy -title: Meshtastic Academy -sidebar_label: Welcome -slug: /academy ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -I want something that just works. - -Tinkerer - -Maker diff --git a/docs/developers/firmware/build.mdx b/docs/developers/Firmware/build.mdx similarity index 91% rename from docs/developers/firmware/build.mdx rename to docs/developers/Firmware/build.mdx index f7eb2b66..9270dea7 100644 --- a/docs/developers/firmware/build.mdx +++ b/docs/developers/Firmware/build.mdx @@ -29,34 +29,33 @@ Meshtastic uses the [PlatformIO](https://platformio.org) development environment ## Adding your own Hardware -The build system is modular. Adding a new board variant for an already supported architecture is straigtforward. +The build system is modular. Adding a new board variant for an already supported architecture is straigtforward. ### Building for your own DIY hardware or mod that you don't want to distribute 1. go to the `variants` folder in the Meshtastic-device sourcecode and make a new directory for your hardware, let's call it `m5stack_core` and copy an existing configuration you wanna modify - + ```shell cd variants; mkdir m5stack_core cp ../heltec_v1/* m5stack_core cd m5stack_core ``` -2. modify the `platformio.ini` *in this subdirectory* from the canonical define of the hardware variant (`HELTEC_V1` in this case) to `PRIVATE_HW` and make the `-I` on the `build_flags` point to the newly created dir. +2. modify the `platformio.ini` _in this subdirectory_ from the canonical define of the hardware variant (`HELTEC_V1` in this case) to `PRIVATE_HW` and make the `-I` on the `build_flags` point to the newly created dir. ```shell [env:m5stack-core] extends = esp32_base board = m5stack-core-esp32 monitor_filters = esp32_exception_decoder - build_flags = + build_flags = ${esp32_base.build_flags} -D PRIVATE_HW -I variants/m5stack_core - lib_deps = + lib_deps = ${esp32_base.lib_deps} ``` - -3. edit the `variant.h` file *in this subdirectory* to reflect the defines and configurations for your board. The example is very well commented. - -3. build, run and debug until you are satisfied with the result. + +3. edit the `variant.h` file _in this subdirectory_ to reflect the defines and configurations for your board. The example is very well commented. +4. build, run and debug until you are satisfied with the result. ### Adding a new off-the-shelf or DIY hardware that you want to distribute (e.g. add a new canon board) diff --git a/docs/developers/firmware/device-api.mdx b/docs/developers/Firmware/device-api.mdx similarity index 100% rename from docs/developers/firmware/device-api.mdx rename to docs/developers/Firmware/device-api.mdx diff --git a/docs/developers/firmware/documents.mdx b/docs/developers/Firmware/documents.mdx similarity index 100% rename from docs/developers/firmware/documents.mdx rename to docs/developers/Firmware/documents.mdx diff --git a/docs/developers/firmware/encryption.mdx b/docs/developers/Firmware/encryption.mdx similarity index 100% rename from docs/developers/firmware/encryption.mdx rename to docs/developers/Firmware/encryption.mdx diff --git a/docs/developers/firmware/http-api.mdx b/docs/developers/Firmware/http-api.mdx similarity index 100% rename from docs/developers/firmware/http-api.mdx rename to docs/developers/Firmware/http-api.mdx diff --git a/docs/developers/firmware/mesh-alg.mdx b/docs/developers/Firmware/mesh-alg.mdx similarity index 100% rename from docs/developers/firmware/mesh-alg.mdx rename to docs/developers/Firmware/mesh-alg.mdx diff --git a/docs/developers/firmware/module-api.mdx b/docs/developers/Firmware/module-api.mdx similarity index 100% rename from docs/developers/firmware/module-api.mdx rename to docs/developers/Firmware/module-api.mdx diff --git a/docs/developers/firmware/port-numbers.mdx b/docs/developers/Firmware/port-numbers.mdx similarity index 100% rename from docs/developers/firmware/port-numbers.mdx rename to docs/developers/Firmware/port-numbers.mdx diff --git a/docs/developers/firmware/radio-settings.mdx b/docs/developers/Firmware/radio-settings.mdx similarity index 100% rename from docs/developers/firmware/radio-settings.mdx rename to docs/developers/Firmware/radio-settings.mdx diff --git a/docs/developers/firmware/stacktrace-decode.mdx b/docs/developers/Firmware/stacktrace-decode.mdx similarity index 100% rename from docs/developers/firmware/stacktrace-decode.mdx rename to docs/developers/Firmware/stacktrace-decode.mdx diff --git a/docs/developers/overview.mdx b/docs/developers/contributing.mdx similarity index 97% rename from docs/developers/overview.mdx rename to docs/developers/contributing.mdx index 4bf495ec..629ddc4c 100644 --- a/docs/developers/overview.mdx +++ b/docs/developers/contributing.mdx @@ -1,8 +1,7 @@ --- -id: overview -title: Contribute to Meshtastic -sidebar_label: Contribute to Meshtastic -slug: /developers +id: contributing +title: Contributing +slug: /developers/contributing --- # How to Help diff --git a/docs/developers/maintaining-documentation/docusaurus.mdx b/docs/developers/documentation/docusaurus.mdx similarity index 100% rename from docs/developers/maintaining-documentation/docusaurus.mdx rename to docs/developers/documentation/docusaurus.mdx diff --git a/docs/developers/maintaining-documentation/github.mdx b/docs/developers/documentation/github.mdx similarity index 100% rename from docs/developers/maintaining-documentation/github.mdx rename to docs/developers/documentation/github.mdx diff --git a/docs/developers/maintaining-documentation/overview.mdx b/docs/developers/documentation/maintaining-docs.mdx similarity index 100% rename from docs/developers/maintaining-documentation/overview.mdx rename to docs/developers/documentation/maintaining-docs.mdx diff --git a/docs/developers/maintaining-documentation/serve-docs-locally.mdx b/docs/developers/documentation/serve-docs-locally.mdx similarity index 100% rename from docs/developers/maintaining-documentation/serve-docs-locally.mdx rename to docs/developers/documentation/serve-docs-locally.mdx diff --git a/docs/developers/maintaining-documentation/style-guides/markdown-features.mdx b/docs/developers/documentation/style-guides/markdown-features.mdx similarity index 58% rename from docs/developers/maintaining-documentation/style-guides/markdown-features.mdx rename to docs/developers/documentation/style-guides/markdown-features.mdx index 997e3bc9..d367d7f0 100644 --- a/docs/developers/maintaining-documentation/style-guides/markdown-features.mdx +++ b/docs/developers/documentation/style-guides/markdown-features.mdx @@ -47,3 +47,37 @@ import { Dark, Light } from '/src/components/ColorMode'; /> + +### Code Blocks + +#### Usage: + +Always specify the language used directly after the start of the code block (```). + +:::note +For command line examples, please use `shell` and not any of the other aliases. +::: + +for further information please see the relevant [Docusaurus page](https://docusaurus.io/docs/markdown-features/code-blocks) + +```` +```ts title="Demo" +export const typedArrayToBuffer = (array: Uint8Array): ArrayBuffer => { + return array.buffer.slice( + array.byteOffset, + array.byteLength + array.byteOffset + ); +}; +``` +```` + +#### Demo: + +```ts title="Demo" +export const typedArrayToBuffer = (array: Uint8Array): ArrayBuffer => { + return array.buffer.slice( + array.byteOffset, + array.byteLength + array.byteOffset, + ); +}; +``` diff --git a/docs/developers/maintaining-documentation/style-guides/settings.mdx b/docs/developers/documentation/style-guides/settings.mdx similarity index 100% rename from docs/developers/maintaining-documentation/style-guides/settings.mdx rename to docs/developers/documentation/style-guides/settings.mdx diff --git a/docs/developers/maintaining-documentation/vercel.mdx b/docs/developers/documentation/vercel.mdx similarity index 100% rename from docs/developers/maintaining-documentation/vercel.mdx rename to docs/developers/documentation/vercel.mdx diff --git a/docs/faq/faq.mdx b/docs/faq/index.mdx similarity index 96% rename from docs/faq/faq.mdx rename to docs/faq/index.mdx index 9cd4370a..d0730957 100644 --- a/docs/faq/faq.mdx +++ b/docs/faq/index.mdx @@ -1,7 +1,6 @@ --- id: faq -title: FAQs - General -sidebar_label: General +title: FAQs slug: /faq --- diff --git a/docs/getting-started/getting_started.mdx b/docs/getting-started/index.mdx similarity index 100% rename from docs/getting-started/getting_started.mdx rename to docs/getting-started/index.mdx diff --git a/docs/hardware/overview.mdx b/docs/hardware/index.mdx similarity index 99% rename from docs/hardware/overview.mdx rename to docs/hardware/index.mdx index 80be1dc7..2b8444be 100644 --- a/docs/hardware/overview.mdx +++ b/docs/hardware/index.mdx @@ -1,5 +1,4 @@ --- -id: overview title: Hardware sidebar_label: Hardware slug: /hardware diff --git a/docs/legal/overview.mdx b/docs/legal/index.mdx similarity index 99% rename from docs/legal/overview.mdx rename to docs/legal/index.mdx index c5ceb388..feabfa16 100644 --- a/docs/legal/overview.mdx +++ b/docs/legal/index.mdx @@ -1,5 +1,4 @@ --- -id: overview title: Legal sidebar_label: Legal slug: /legal diff --git a/docs/settings/overview.mdx b/docs/settings/index.mdx similarity index 99% rename from docs/settings/overview.mdx rename to docs/settings/index.mdx index 3c04bf5b..d16c2df4 100644 --- a/docs/settings/overview.mdx +++ b/docs/settings/index.mdx @@ -1,5 +1,4 @@ --- -id: overview title: Device Settings sidebar_label: Device Settings slug: /settings diff --git a/docs/settings/canned-message-module.mdx b/docs/settings/modules/canned-message-module.mdx similarity index 100% rename from docs/settings/canned-message-module.mdx rename to docs/settings/modules/canned-message-module.mdx diff --git a/docs/settings/external-notification-module.mdx b/docs/settings/modules/external-notification-module.mdx similarity index 100% rename from docs/settings/external-notification-module.mdx rename to docs/settings/modules/external-notification-module.mdx diff --git a/docs/settings/input-broker-module.mdx b/docs/settings/modules/input-broker-module.mdx similarity index 100% rename from docs/settings/input-broker-module.mdx rename to docs/settings/modules/input-broker-module.mdx diff --git a/docs/settings/range-test-module.mdx b/docs/settings/modules/range-test-module.mdx similarity index 100% rename from docs/settings/range-test-module.mdx rename to docs/settings/modules/range-test-module.mdx diff --git a/docs/settings/serial-module.mdx b/docs/settings/modules/serial-module.mdx similarity index 100% rename from docs/settings/serial-module.mdx rename to docs/settings/modules/serial-module.mdx diff --git a/docs/settings/store-and-forward-module.mdx b/docs/settings/modules/store-and-forward-module.mdx similarity index 100% rename from docs/settings/store-and-forward-module.mdx rename to docs/settings/modules/store-and-forward-module.mdx diff --git a/docs/settings/telemetry-module.mdx b/docs/settings/modules/telemetry-module.mdx similarity index 100% rename from docs/settings/telemetry-module.mdx rename to docs/settings/modules/telemetry-module.mdx diff --git a/docs/software/android/usage.mdx b/docs/software/android/usage.mdx index 5ec658bf..9d8950b1 100644 --- a/docs/software/android/usage.mdx +++ b/docs/software/android/usage.mdx @@ -109,14 +109,14 @@ You can test changing channels with the QR code shown below. Various data-rates are selectable when configuring a channel and are inversely proportional to the theoretical range of the devices: -| Channel setting | Data-rate | -| ------------------- | -------------------- | -| Short Range / Fast | 19346.94 bps | -| Short Range / Slow | 4800.00 bps | -| Medium Range / Fast | 1227.18 bps | -| Medium Range / Slow | 763.29 bps | -| Long Range / Fast | 196.74 bps | -| Long Range / Slow | 136.71 bps | +| Channel setting | Data-rate | +| ------------------- | ------------ | +| Short Range / Fast | 19346.94 bps | +| Short Range / Slow | 4800.00 bps | +| Medium Range / Fast | 1227.18 bps | +| Medium Range / Slow | 763.29 bps | +| Long Range / Fast | 196.74 bps | +| Long Range / Slow | 136.71 bps | ### Send a message diff --git a/docs/software/overview.mdx b/docs/software/index.mdx similarity index 99% rename from docs/software/overview.mdx rename to docs/software/index.mdx index e554ca55..f2b705f2 100644 --- a/docs/software/overview.mdx +++ b/docs/software/index.mdx @@ -1,5 +1,4 @@ --- -id: overview title: Software sidebar_label: Software slug: /software diff --git a/docs/software/other/power.mdx b/docs/software/other/power.mdx index 0e185bd1..2186b51a 100644 --- a/docs/software/other/power.mdx +++ b/docs/software/other/power.mdx @@ -55,7 +55,7 @@ From lower to higher power consumption. - At cold boot: The initial state (after setup() has run) is DARK - While in DARK: if we receive EVENT_BOOT, transition to ON (and show the bootscreen). This event will be sent if we detect we woke due to reset (as opposed to deep sleep) - While in LS: Once every position_broadcast_secs (default 15 mins) - the unit will wake into DARK mode and broadcast a "networkPing" (our position) and stay alive for wait_bluetooth_secs (default 60 seconds). This allows other nodes to have a record of our last known position if we go away and allows a paired phone to hear from us and download messages. -- While in LS: Every one hour, when we wake to send our position we \_also* broadcast our owner. This lets new nodes on the network find out about us or correct duplicate node number assignments. +- While in LS: Every one hour, when we wake to send our position we \_also\* broadcast our owner. This lets new nodes on the network find out about us or correct duplicate node number assignments. - While in LS/NB/DARK: If the user presses a button (EVENT_PRESS) we go to full ON mode for screen_on_secs (default 30 seconds). Multiple presses keeps resetting this timeout - While in LS/NB/DARK: If we receive new text messages (EVENT_RECEIVED_TEXT_MSG), we go to full ON mode for screen_on_secs (same as if user pressed a button) - While in LS: while we receive packets on the radio (EVENT_RECEIVED_PACKET) we will wake and handle them and stay awake in NB mode for min_wake_secs (default 10 seconds) diff --git a/docusaurus.config.js b/docusaurus.config.js index 79f066b7..f68acda0 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -56,6 +56,7 @@ const config = { colorMode: { respectPrefersColorScheme: true, }, + autoCollapseSidebarCategories: true, navbar: { title: 'Meshtastic', hideOnScroll: true, @@ -66,90 +67,50 @@ const config = { }, items: [ - /* { - label: "Start Here", - to: "docs/academy", - activeBasePath: "docs/academy", - }, -*/ - { - label: 'About Meshtastic', - to: 'docs/about', - activeBasePath: 'docs/about', - }, - /* - { - label: "Showcase", - to: "showcase", - activeBasePath: "showcase", - }, -*/ - { - label: 'Documentation', + label: 'Docs', items: [ { label: 'Getting Started', to: 'docs/getting-started', }, - // FIXME create configuration & settings landing page and adjust path below { - label: 'Configuration & Settings', + label: 'Configuration', to: 'docs/settings', }, { - label: 'Hardware Details', + label: 'Hardware', to: 'docs/hardware', }, - /* { - label: "Mesh Radio Details", - to: "docs/mesh" - }, -*/ - { - label: 'Meshtastic Software', + label: 'Software', to: 'docs/software', }, ], }, { - label: 'Contribute', + label: 'Developers', + to: 'docs/developers', + }, + { + label: 'Other', items: [ { - label: 'Developers', - to: 'docs/developers', + label: 'Downloads', + to: 'downloads', + activeBasePath: 'downloads', }, { - label: 'Maintaining Documentation', - to: 'docs/developers/maintaining-documentation/overview', - }, - { - label: 'Legal', - to: 'docs/legal', + label: 'Showcase', + to: 'showcase', + activeBasePath: 'showcase', }, ], }, - { - label: 'Downloads', - to: 'downloads', - activeBasePath: 'downloads', - }, - { - href: 'https://meshtastic.discourse.group', - label: 'Forum', - position: 'left', - }, - { - href: 'https://github.com/meshtastic/meshtastic', - position: 'right', - className: 'header-github-link', - 'aria-label': 'GitHub repository', - }, ], }, footer: { - copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Geeksville Industries LLC`, + copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Geeksville Industries LLC. | Legal Information.`, }, algolia: { appId: 'IG2GQB8L3V', @@ -180,6 +141,8 @@ const config = { 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'), diff --git a/sidebars.js b/sidebars.js index 723f7c79..536e2039 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1,319 +1,29 @@ -module.exports = { - About: { - 'About Meshtastic': [ - 'about/overview', - { - Concepts: [ - 'about/concepts/overview', - 'about/concepts/channels', - 'about/concepts/clients', - 'about/concepts/external-devices', - 'about/concepts/internet', - 'about/concepts/mesh', - ], - }, - 'about/expectations', - { - FAQs: [ - 'faq/faq', - 'faq/antenna', - 'faq/bluetooth', - 'faq/channel', - { - Clients: [ - 'faq/client-android', - 'faq/client-python-cli', - 'faq/client-ios', - 'faq/client-web', - ], - }, - { - Devices: [ - 'faq/device', - 'faq/device-tbeam', - 'faq/device-wisblock', - ] - }, - { - 'Flashing Firmware': ['faq/m-flasher'], - }, - 'faq/mesh', - 'faq/mqtt', - 'faq/modules', - 'faq/wifi', - ], - }, - ], - }, - Software: { - Software: [ - 'software/overview', - { - 'Meshtastic device': [ - 'software/device/device-firmware', - 'software/device/device-channels', - 'software/device/device-remote-admin', - 'software/device/remote-hardware-service', - 'software/device/device-power', - 'software/device/critical-error-codes', - 'software/device/ham', - ], - }, - { - 'Meshtastic Android': [ - 'software/android/android-installation', - 'software/android/android-usage', - ], - }, - { - 'Meshtastic Apple': [ - 'software/apple/ios-development', - 'software/apple/ios', - 'software/apple/ipados', - 'software/apple/macos', - ], - }, - { - 'Meshtastic.js': [ - 'software/js/getting-started', - 'software/js/connecting', - 'software/js/events', - 'software/js/http-api', - { - type: 'link', - label: 'API Docs', - href: 'https://js.meshtastic.org', - }, - ], - }, - { - 'Meshtastic-python': [ - 'software/python/python-installation', - 'software/python/python-standalone', - 'software/python/python-cli', - 'software/python/python-uses', - 'software/python/python-stream', - { - type: 'link', - label: 'API Docs', - href: 'https://python.meshtastic.org/', - }, - ], - }, - { - Modules: [ - 'software/modules/modules', - 'software/modules/range-test-module', - 'software/modules/ext-notif-module', - 'software/modules/canned-message-module', - 'software/modules/serial-module', - 'software/modules/store-forward-module', - 'software/modules/telemetry-module', - ], - }, - { - 'Web interface': [ - 'software/web/web-app-software', - 'software/web/web-partitions-software', - 'software/web/web-development-software', - ], - }, - { - 'Community projects': [ - 'software/community/community-overview', - 'software/community/community-atak', - 'software/community/community-pygui', - 'software/community/community-go', - ], - }, - { - Other: [ - 'software/other/sw-design', - 'software/other/remote-hardware-service', - 'software/other/rak815', - 'software/other/power', - 'software/other/pinetab', - 'software/other/nrf52-TODO', - 'software/other/mqtt', - 'software/other/install-OSX', - 'software/other/esp32-arduino-build', - 'software/other/ant', - 'software/other/docker', - ], - }, - ], - 'Additional Documentation': [ - { type: 'ref', id: 'getting-started/overview' }, - { type: 'ref', id: 'settings/overview' }, - { type: 'ref', id: 'hardware/overview' }, - { type: 'ref', id: 'developers/overview' }, - { type: 'ref', id: 'developers/maintaining-documentation/overview' }, - { type: 'ref', id: 'legal/overview' }, - ], - }, - Configuration: { - 'Getting Started': [ - 'getting-started/overview', - { - 'Flashing firmware': [ - 'getting-started/flashing-firmware', - 'getting-started/meshtastic-flasher', - { - 'Manual Method': [ - 'getting-started/flashing-esp32', - 'getting-started/flashing-nrf52', - ], - }, - ], - }, - { - 'Connect to Device': ['getting-started/clients'], - }, - 'getting-started/first-steps', - ], +// @ts-check - 'Device Settings': [ - 'settings/overview', - 'settings/channel', - 'settings/gps', - 'settings/ham', - 'settings/mqtt', - 'settings/power', - 'settings/router', - 'settings/wifi', - { - Modules: [ - 'settings/canned-message-module', - 'settings/input-broker-module', - 'settings/external-notification-module', - 'settings/range-test-module', - 'settings/serial-module', - 'settings/store-and-forward-module', - 'settings/telemetry-module', - ], - Advanced: ['settings/channel-advanced', 'settings/misc'], +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +module.exports = { + Sidebar: [ + { + type: 'autogenerated', + dirName: '.', + }, + ], + developers: [ + { + type: 'category', + label: 'Developers', + link: { + type: 'generated-index', + title: 'Developer Documentation', + description: 'Meshtastic developer resources', + slug: '/developers', }, - ], - 'Additional Documentation': [ - { type: 'ref', id: 'hardware/overview' }, - { type: 'ref', id: 'software/overview' }, - { type: 'ref', id: 'developers/overview' }, - { type: 'ref', id: 'developers/maintaining-documentation/overview' }, - { type: 'ref', id: 'legal/overview' }, - ], - }, - Hardware: { - Hardware: [ - 'hardware/overview', - { - type: 'link', - label: 'Hardware List', - href: '/hardware', - }, - { - 'Supported Hardware': [ - 'hardware/supported/tbeam', - 'hardware/supported/lora', - 'hardware/supported/heltec', - 'hardware/supported/techo', - 'hardware/supported/wisBlock', - 'hardware/supported/linux', - ], - }, - 'hardware/buttons', - 'hardware/battery', - 'hardware/gpsmodule', - { - Antennas: [ - 'hardware/antenna/antenna', - 'hardware/antenna/aerials', - 'hardware/antenna/non-aerial', - 'hardware/antenna/antenna-testing', - 'hardware/antenna/resources', - ], - }, - ], - 'Additional Documentation': [ - { type: 'ref', id: 'getting-started/overview' }, - { type: 'ref', id: 'settings/overview' }, - { type: 'ref', id: 'software/overview' }, - { type: 'ref', id: 'developers/overview' }, - { type: 'ref', id: 'developers/maintaining-documentation/overview' }, - { type: 'ref', id: 'legal/overview' }, - ], - }, - Contribute: { - Developers: [ - 'developers/overview', - { - Protobufs: ['developers/protobufs/api'], - }, - 'developers/api', - 'developers/publish', - { - Firmware: [ - 'developers/firmware/build', - 'developers/firmware/stacktrace-decode', - 'developers/firmware/device-api', - 'developers/firmware/radio-settings', - 'developers/firmware/mesh-alg', - 'developers/firmware/encryption', - 'developers/firmware/portnum', - 'developers/firmware/module-api', - 'developers/firmware/http-api', - 'developers/firmware/documents', - ], - }, - { - 'Android App': [ - 'developers/android/build-app', - 'developers/android/mapbox', - ], - 'Maintaining Documentation': [ - 'developers/maintaining-documentation/overview', - { - Dependencies: [ - 'developers/maintaining-documentation/docusaurus', - 'developers/maintaining-documentation/github', - 'developers/maintaining-documentation/vercel', - ], - }, - { - Examples: [ - 'developers/maintaining-documentation/serve-docs-locally', - ], - }, - { - 'Style Guides': [ - 'developers/maintaining-documentation/style-guides/markdown-features', - 'developers/maintaining-documentation/style-guides/style-guide-settings', - ], - }, - ], - }, - ], - 'Additional Documentation': [ - { type: 'ref', id: 'getting-started/overview' }, - { type: 'ref', id: 'settings/overview' }, - { type: 'ref', id: 'hardware/overview' }, - { type: 'ref', id: 'software/overview' }, - { type: 'ref', id: 'legal/overview' }, - { type: 'ref', id: 'developers/overview' }, - ], - }, - Legal: { - Legal: [ - 'legal/overview', - 'legal/licensing', - 'legal/trademark', - 'legal/privacy', - ], - 'Additional Documentation': [ - { type: 'ref', id: 'getting-started/overview' }, - { type: 'ref', id: 'settings/overview' }, - { type: 'ref', id: 'hardware/overview' }, - { type: 'ref', id: 'software/overview' }, - { type: 'ref', id: 'developers/overview' }, - ], - }, + items: [ + { + type: 'autogenerated', + dirName: 'developers', + }, + ], + }, + ], };