sidebars.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. /**
  2. * Creating a sidebar enables you to:
  3. - create an ordered group of docs
  4. - render a sidebar for each doc of that group
  5. - provide next/previous navigation
  6. The sidebars can be generated from the filesystem, or explicitly defined here.
  7. Create as many sidebars as you want.
  8. */
  9. // @ts-check
  10. /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
  11. const sidebars = {
  12. // By default, Docusaurus generates a sidebar from the docs folder structure
  13. summary: [
  14. {
  15. type: "doc",
  16. id: "README",
  17. label: "About QMK",
  18. },
  19. {
  20. type: "category",
  21. label: "Tutorial",
  22. link: {
  23. type: "doc",
  24. id: "newbs",
  25. },
  26. items: [
  27. "newbs",
  28. "newbs_getting_started",
  29. "newbs_building_firmware",
  30. "newbs_flashing",
  31. "support",
  32. "newbs_building_firmware_workflow",
  33. "newbs_learn_more_resources",
  34. "syllabus",
  35. ],
  36. },
  37. {
  38. type: "category",
  39. label: "FAQs",
  40. link: {
  41. type: "doc",
  42. id: "faq_general",
  43. },
  44. items: [
  45. "faq_general",
  46. "faq_build",
  47. "faq_misc",
  48. "faq_debug",
  49. "faq_keymap",
  50. "squeezing_avr",
  51. "reference_glossary",
  52. ],
  53. },
  54. {
  55. type: "category",
  56. label: "Configurator",
  57. link: {
  58. type: "doc",
  59. id: "newbs_building_firmware_configurator",
  60. },
  61. items: [
  62. "newbs_building_firmware_configurator",
  63. "configurator_step_by_step",
  64. "configurator_troubleshooting",
  65. "configurator_architecture",
  66. {
  67. type: "category",
  68. label: "QMK API",
  69. link: {
  70. type: "doc",
  71. id: "api_overview",
  72. },
  73. items: [
  74. "api_overview",
  75. "api_docs",
  76. "reference_configurator_support",
  77. "configurator_default_keymaps",
  78. ],
  79. },
  80. ],
  81. },
  82. {
  83. type: "category",
  84. label: "CLI",
  85. link: {
  86. type: "doc",
  87. id: "cli",
  88. },
  89. items: [
  90. "cli",
  91. "cli_configuration",
  92. "cli_commands",
  93. "cli_tab_complete",
  94. ],
  95. },
  96. {
  97. type: 'category',
  98. collapsed: false,
  99. label: "Using QMK",
  100. items: [
  101. {
  102. Guides: [
  103. "custom_quantum_functions",
  104. "driver_installation_zadig",
  105. "keymap",
  106. {
  107. "Development Environments": [
  108. "getting_started_docker",
  109. "getting_started_vagrant",
  110. ],
  111. },
  112. {
  113. type: "category",
  114. label: "Flashing",
  115. link: {
  116. type: "doc",
  117. id: "flashing",
  118. },
  119. items: ["flashing", "flashing_bootloadhid"],
  120. },
  121. {
  122. IDEs: ["other_eclipse", "other_vscode"],
  123. "Git Best Practices": [
  124. "newbs_git_best_practices",
  125. "newbs_git_using_your_master_branch",
  126. "newbs_git_resolving_merge_conflicts",
  127. "newbs_git_resynchronize_a_branch",
  128. ],
  129. },
  130. ],
  131. },
  132. {
  133. "Simple Keycodes": [
  134. "keycodes",
  135. "keycodes_basic",
  136. "reference_keymap_extras",
  137. "feature_advanced_keycodes",
  138. "quantum_keycodes",
  139. "keycodes_magic",
  140. ],
  141. },
  142. {
  143. "Advanced Keycodes": [
  144. "feature_command",
  145. "feature_dynamic_macros",
  146. "feature_grave_esc",
  147. "feature_leader_key",
  148. "mod_tap",
  149. "feature_macros",
  150. "feature_mouse_keys",
  151. "feature_programmable_button",
  152. "feature_space_cadet",
  153. "keycodes_us_ansi_shifted",
  154. ],
  155. },
  156. {
  157. "Software Features": [
  158. "feature_auto_shift",
  159. "feature_autocorrect",
  160. "feature_caps_word",
  161. "feature_combo",
  162. "feature_debounce_type",
  163. "feature_eeprom",
  164. "feature_key_lock",
  165. "feature_key_overrides",
  166. "feature_layers",
  167. "one_shot_keys",
  168. "feature_os_detection",
  169. "feature_rawhid",
  170. "feature_secure",
  171. "feature_send_string",
  172. "feature_sequencer",
  173. "feature_swap_hands",
  174. "feature_tap_dance",
  175. "tap_hold",
  176. "feature_tri_layer",
  177. "feature_unicode",
  178. "feature_userspace",
  179. "feature_wpm",
  180. ],
  181. },
  182. {
  183. "Hardware Features": [
  184. {
  185. Displays: [
  186. "quantum_painter",
  187. "quantum_painter_lvgl",
  188. "feature_hd44780",
  189. "feature_st7565",
  190. "feature_oled_driver",
  191. ],
  192. Lighting: [
  193. "feature_backlight",
  194. "feature_led_matrix",
  195. "feature_rgblight",
  196. "feature_rgb_matrix",
  197. ],
  198. },
  199. "feature_audio",
  200. "feature_bluetooth",
  201. "feature_bootmagic",
  202. "feature_converters",
  203. "custom_matrix",
  204. "feature_digitizer",
  205. "feature_dip_switch",
  206. "feature_encoders",
  207. "feature_haptic_feedback",
  208. "feature_joystick",
  209. "feature_led_indicators",
  210. "feature_midi",
  211. "feature_pointing_device",
  212. "feature_ps2_mouse",
  213. "feature_split_keyboard",
  214. "feature_stenography",
  215. "feature_velocikey",
  216. ],
  217. },
  218. {
  219. "Keyboard Building": [
  220. "easy_maker",
  221. "porting_your_keyboard_to_qmk",
  222. "hand_wire",
  223. "isp_flashing_guide",
  224. ],
  225. },
  226. ],
  227. },
  228. {
  229. type: 'category',
  230. label: "Developing QMK",
  231. collapsed: false,
  232. items: [
  233. "pr_checklist",
  234. {
  235. type: "category",
  236. label: "Breaking Changes",
  237. link: {
  238. type: "doc",
  239. id: "breaking_changes",
  240. },
  241. items: [
  242. "breaking_changes",
  243. "breaking_changes_instructions",
  244. // "ChangeLog/20230226",
  245. // "breaking_changes_history",
  246. {
  247. type: 'category',
  248. label: "Past Breaking Changes",
  249. link: {
  250. type: 'generated-index',
  251. title: 'Past Breaking Changes',
  252. slug: '/breaking_changes/all',
  253. },
  254. items: [
  255. {
  256. type: "autogenerated",
  257. dirName: "ChangeLog",
  258. }
  259. ]
  260. },
  261. ],
  262. },
  263. {
  264. "C Development": [
  265. "arm_debugging",
  266. "coding_conventions_c",
  267. "compatible_microcontrollers",
  268. "hardware_drivers",
  269. "adc_driver",
  270. "audio_driver",
  271. "i2c_driver",
  272. "spi_driver",
  273. "ws2812_driver",
  274. "eeprom_driver",
  275. "flash_driver",
  276. "serial_driver",
  277. "uart_driver",
  278. "gpio_control",
  279. "hardware_keyboard_guidelines",
  280. ],
  281. },
  282. {
  283. "Python Development": [
  284. "coding_conventions_python",
  285. "cli_development",
  286. ],
  287. },
  288. {
  289. "Configurator Development": [
  290. {
  291. "QMK API": [
  292. "api_development_environment",
  293. "api_development_overview",
  294. ],
  295. },
  296. ],
  297. },
  298. {
  299. "Hardware Platform Development": [
  300. {
  301. "Arm/ChibiOS": [
  302. "platformdev_selecting_arm_mcu",
  303. "platformdev_chibios_earlyinit",
  304. "platformdev_rp2040",
  305. "platformdev_proton_c",
  306. "platformdev_blackpill_f4x1",
  307. ],
  308. },
  309. ],
  310. },
  311. {
  312. "QMK Reference": [
  313. "contributing",
  314. "translating",
  315. "config_options",
  316. "data_driven_config",
  317. "getting_started_make_guide",
  318. "documentation_best_practices",
  319. "documentation_templates",
  320. "feature_layouts",
  321. "unit_testing",
  322. "ref_functions",
  323. "reference_info_json",
  324. ],
  325. },
  326. {
  327. "For a Deeper Understanding": [
  328. "how_keyboards_work",
  329. "how_a_matrix_works",
  330. "understanding_qmk",
  331. ],
  332. },
  333. {
  334. type: 'link',
  335. label: 'Doxygen Documentation',
  336. // needs to be an external link to be unmanaged by docusaurus
  337. // other solutions: https://stackoverflow.com/a/63365741/1530201
  338. href: 'https://docusaurus.qmk.fm/doxygen/'
  339. }
  340. ],
  341. },
  342. ],
  343. };
  344. module.exports = sidebars;