6ef97172889ccd5db376b2a9f8825489e24fdac4
- Author
- Nick Brassel <nick@tzarc.org>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
2index a00e6616a643930b1e1f1559a92a7f9af5edf894..25311019c6c9df126b0ead7f2925aebb4ca3ad9c 100644
3--- a/.github/workflows/docs.yml
4+++ b/.github/workflows/docs.yml
5@@ -7,20 +7,26 @@ on:
6 push:
7 branches:
8 - master
9+ - vitepress
10 paths:
11+ - 'builddefs/docsgen/**'
12 - 'tmk_core/**'
13 - 'quantum/**'
14 - 'platforms/**'
15 - 'docs/**'
16 - '.github/workflows/docs.yml'
17
18+defaults:
19+ run:
20+ shell: bash
21+
22 jobs:
23 generate:
24 runs-on: ubuntu-latest
25 container: ghcr.io/qmk/qmk_cli
26
27 # protect against those who develop with their fork on master
28- if: github.repository == 'qmk/qmk_firmware'
29+ if: github.repository == 'qmk/qmk_firmware' || (github.repository == 'tzarc/qmk_firmware' && github.ref == 'refs/heads/vitepress')
30
31 steps:
32 - uses: actions/checkout@v4
33@@ -29,18 +35,51 @@ jobs:
34
35 - name: Install dependencies
36 run: |
37- apt-get update && apt-get install -y rsync nodejs npm doxygen
38+ apt-get update && apt-get install -y rsync doxygen curl
39+ # install nvm
40+ touch $HOME/.bashrc
41+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
42+
43+ - name: Install node
44+ run: |
45+ source $HOME/.bashrc
46+ nvm install 20
47+ nvm use 20
48+ corepack enable
49 npm install -g moxygen
50
51 - name: Build docs
52 run: |
53+ source $HOME/.bashrc
54+ nvm use 20
55 qmk --verbose generate-docs
56+ touch '.build/docs/.nojekyll'
57+
58+ - name: Set CNAME
59+ if: github.repository == 'qmk/qmk_firmware'
60+ run: |
61+ # Override target CNAME
62+ echo 'docs.qmk.fm' > .build/docs/CNAME
63+
64+ - name: Override CNAME
65+ if: github.repository == 'tzarc/qmk_firmware'
66+ run: |
67+ # Temporarily override target CNAME during development
68+ echo 'vitepress.qmk.fm' > .build/docs/CNAME
69+
70+ - name: Deploy
71+ if: github.repository == 'qmk/qmk_firmware'
72+ uses: JamesIves/github-pages-deploy-action@v4.6.1
73+ with:
74+ token: ${{ secrets.GITHUB_TOKEN }}
75+ branch: gh-pages
76+ folder: .build/docs
77+ git-config-name: QMK Bot
78+ git-config-email: hello@qmk.fm
79
80 - name: Deploy
81+ if: github.repository == 'tzarc/qmk_firmware'
82 uses: JamesIves/github-pages-deploy-action@v4.6.1
83 with:
84- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
85- BASE_BRANCH: master
86- BRANCH: gh-pages
87- FOLDER: .build/docs
88- GIT_CONFIG_EMAIL: hello@qmk.fm
89+ branch: gh-pages
90+ folder: .build/docs
91diff --git a/Doxyfile b/Doxyfile
92index 4b0ea3f086dcf7b4ca66e9832b080b66ee708713..42f2e70c0ec4f7399ca224d6dd1037112ce8e2a9 100644
93--- a/Doxyfile
94+++ b/Doxyfile
95@@ -21,7 +21,7 @@ DOXYFILE_ENCODING = UTF-8
96 PROJECT_NAME = "QMK Firmware"
97 PROJECT_NUMBER = https://github.com/qmk/qmk_firmware
98 PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families"
99-OUTPUT_DIRECTORY = .build/doxygen
100+OUTPUT_DIRECTORY = .build/docs/static/doxygen
101 ALLOW_UNICODE_NAMES = NO
102 OUTPUT_LANGUAGE = English
103 BRIEF_MEMBER_DESC = YES
104@@ -40,8 +40,8 @@ ABBREVIATE_BRIEF = "The $name class" \
105 ALWAYS_DETAILED_SEC = NO
106 INLINE_INHERITED_MEMB = NO
107 FULL_PATH_NAMES = YES
108-STRIP_FROM_PATH =
109-STRIP_FROM_INC_PATH =
110+STRIP_FROM_PATH =
111+STRIP_FROM_INC_PATH =
112 SHORT_NAMES = NO
113 JAVADOC_AUTOBRIEF = NO
114 QT_AUTOBRIEF = NO
115@@ -49,13 +49,13 @@ MULTILINE_CPP_IS_BRIEF = NO
116 INHERIT_DOCS = YES
117 SEPARATE_MEMBER_PAGES = NO
118 TAB_SIZE = 4
119-ALIASES =
120-TCL_SUBST =
121+ALIASES =
122+TCL_SUBST =
123 OPTIMIZE_OUTPUT_FOR_C = YES
124 OPTIMIZE_OUTPUT_JAVA = NO
125 OPTIMIZE_FOR_FORTRAN = NO
126 OPTIMIZE_OUTPUT_VHDL = NO
127-EXTENSION_MAPPING =
128+EXTENSION_MAPPING =
129 MARKDOWN_SUPPORT = YES
130 TOC_INCLUDE_HEADINGS = 2
131 AUTOLINK_SUPPORT = YES
132@@ -104,14 +104,14 @@ GENERATE_TODOLIST = YES
133 GENERATE_TESTLIST = YES
134 GENERATE_BUGLIST = YES
135 GENERATE_DEPRECATEDLIST= YES
136-ENABLED_SECTIONS =
137+ENABLED_SECTIONS =
138 MAX_INITIALIZER_LINES = 30
139 SHOW_USED_FILES = YES
140 SHOW_FILES = YES
141 SHOW_NAMESPACES = YES
142-FILE_VERSION_FILTER =
143-LAYOUT_FILE =
144-CITE_BIB_FILES =
145+FILE_VERSION_FILTER =
146+LAYOUT_FILE =
147+CITE_BIB_FILES =
148
149 #---------------------------------------------------------------------------
150 # Configuration options related to warning and progress messages
151@@ -124,7 +124,7 @@ WARN_IF_DOC_ERROR = YES
152 WARN_NO_PARAMDOC = NO
153 WARN_AS_ERROR = NO
154 WARN_FORMAT = "$file:$line: $text"
155-WARN_LOGFILE =
156+WARN_LOGFILE =
157
158 #---------------------------------------------------------------------------
159 # Configuration options related to the input files
160@@ -143,19 +143,19 @@ FILE_PATTERNS = *.c \
161 *.hpp \
162 *.h++
163 RECURSIVE = YES
164-EXCLUDE =
165+EXCLUDE =
166 EXCLUDE_SYMLINKS = NO
167 EXCLUDE_PATTERNS = */protocol/arm_atsam/*
168-EXCLUDE_SYMBOLS =
169-EXAMPLE_PATH =
170+EXCLUDE_SYMBOLS =
171+EXAMPLE_PATH =
172 EXAMPLE_PATTERNS = *
173 EXAMPLE_RECURSIVE = NO
174-IMAGE_PATH =
175-INPUT_FILTER =
176-FILTER_PATTERNS =
177+IMAGE_PATH =
178+INPUT_FILTER =
179+FILTER_PATTERNS =
180 FILTER_SOURCE_FILES = NO
181-FILTER_SOURCE_PATTERNS =
182-USE_MDFILE_AS_MAINPAGE =
183+FILTER_SOURCE_PATTERNS =
184+USE_MDFILE_AS_MAINPAGE =
185
186 #---------------------------------------------------------------------------
187 # Configuration options related to source browsing
188@@ -177,7 +177,7 @@ VERBATIM_HEADERS = YES
189
190 ALPHABETICAL_INDEX = YES
191 COLS_IN_ALPHA_INDEX = 5
192-IGNORE_PREFIX =
193+IGNORE_PREFIX =
194
195diff --git a/builddefs/docsgen/.gitignore b/builddefs/docsgen/.gitignore
196new file mode 100644
197index 0000000000000000000000000000000000000000..e71427cba3f5af01e8f01e2b570f9560fb3073c6
198--- /dev/null
199+++ b/builddefs/docsgen/.gitignore
200@@ -0,0 +1,5 @@
201+node_modules
202+.vitepress/cache
203+.vitepress/.temp
204+.vitepress/dist
205+docs
206diff --git a/builddefs/docsgen/.vitepress/config.mts b/builddefs/docsgen/.vitepress/config.mts
207new file mode 100644
208index 0000000000000000000000000000000000000000..f2111eeb7c5ae69d0777e5d8533352ce8bf0e8a5
209--- /dev/null
210+++ b/builddefs/docsgen/.vitepress/config.mts
211@@ -0,0 +1,51 @@
212+import { defineConfig } from "vitepress";
213+import { tabsMarkdownPlugin } from "vitepress-plugin-tabs";
214+import sidebar from "../../../docs/_sidebar.json";
215+
216+// https://vitepress.dev/reference/site-config
217+export default defineConfig(({ mode }) => {
218+ const prod = mode === "production";
219+ return {
220+ title: "QMK Firmware",
221+ description: "Documentation for QMK Firmware",
222+
223+ srcDir: prod ? "docs" : "../../docs",
224+ outDir: "../../.build/docs",
225+ cleanUrls: true,
226+
227+ markdown: {
228+ config(md) {
229+ md.use(tabsMarkdownPlugin);
230+ },
231+ },
232+
233+ vite: {
234+ resolve: {
235+ preserveSymlinks: true,
236+ },
237+ },
238+
239+ themeConfig: {
240+ // https://vitepress.dev/reference/default-theme-config
241+ logo: {
242+ light: "/badge-community-light.svg",
243+ dark: "/badge-community-dark.svg",
244+ },
245+ siteTitle: false,
246+
247+ nav: [{ text: "Home", link: "./" }],
248+
249+ search: {
250+ provider: "local",
251+ },
252+
253+ sidebar: sidebar,
254+
255+ socialLinks: [
256diff --git a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue
257new file mode 100644
258index 0000000000000000000000000000000000000000..30d0780d7c31259927f3aad75a961920be6459df
259--- /dev/null
260+++ b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue
261@@ -0,0 +1,18 @@
262+<script setup>
263+import DefaultTheme from 'vitepress/theme'
264+import { useRouter } from 'vitepress'
265+import { onBeforeMount } from 'vue';
266+
267+const router = useRouter()
268+onBeforeMount(async () => {
269+ if (window.location.href.includes('/#/')) {
270+ const newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#');
271+ window.history.replaceState({}, '', newUrl);
272+ await router.go(newUrl);
273+ }
274+});
275+</script>
276+
277+<template>
278+ <DefaultTheme.Layout/>
279+</template>
280diff --git a/builddefs/docsgen/.vitepress/theme/custom.css b/builddefs/docsgen/.vitepress/theme/custom.css
281new file mode 100644
282index 0000000000000000000000000000000000000000..646d215c1f24fccfa241da219f4553b0b51d8382
283--- /dev/null
284+++ b/builddefs/docsgen/.vitepress/theme/custom.css
285@@ -0,0 +1,19 @@
286+/* Override <kbd> as vitepress doesn't put them with borders */
287+kbd {
288+ border: 1px solid var(--vp-c-text-1);
289+ border-radius: 0.6em;
290+ margin: 0.2em;
291+ padding: 0.2em;
292+}
293+
294+:root {
295+ --vp-nav-logo-height: 100%;
296+}
297+
298+.logo {
299+ padding-bottom: 0.2em;
300+}
301+
302+.VPNavBarTitle.has-sidebar .title {
303+ border-bottom: 0;
304+}
305diff --git a/builddefs/docsgen/.vitepress/theme/index.ts b/builddefs/docsgen/.vitepress/theme/index.ts
306new file mode 100644
307index 0000000000000000000000000000000000000000..3c820ec5abd9265e44b720bdcef833c61d764fdc
308--- /dev/null
309+++ b/builddefs/docsgen/.vitepress/theme/index.ts
310@@ -0,0 +1,13 @@
311+import type { Theme } from 'vitepress'
312+import DefaultTheme from 'vitepress/theme'
313+import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client'
314+import QMKLayout from './QMKLayout.vue'
315+import './custom.css'
316+
317+export default {
318+ extends: DefaultTheme,
319+ Layout: QMKLayout,
320+ enhanceApp({ app }) {
321+ enhanceAppWithTabs(app)
322+ }
323+} satisfies Theme
324diff --git a/builddefs/docsgen/build-docs.sh b/builddefs/docsgen/build-docs.sh
325new file mode 100755
326index 0000000000000000000000000000000000000000..2ea884752fe0ebe2c378cb57a2c30358f5e7bf32
327--- /dev/null
328+++ b/builddefs/docsgen/build-docs.sh
329@@ -0,0 +1,6 @@
330+#!/usr/bin/env bash
331+
332+cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
333+yarn install
334+[[ -e docs ]] || ln -sf ../../docs docs
335+DEBUG='vitepress:*,vite:*' yarn run docs:build
336diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json
337new file mode 100644
338index 0000000000000000000000000000000000000000..435e7481f1f9370c5742a5c65ea77c0af8d28496
339--- /dev/null
340+++ b/builddefs/docsgen/package.json
341@@ -0,0 +1,14 @@
342+{
343+ "license": "GPL-2.0-or-later",
344+ "devDependencies": {
345+ "vite": "^5.2.10",
346+ "vitepress": "^1.1.0",
347+ "vitepress-plugin-tabs": "^0.5.0",
348+ "vue": "^3.4.24"
349+ },
350+ "scripts": {
351+ "docs:dev": "vitepress dev --host 0.0.0.0",
352+ "docs:build": "vitepress build",
353+ "docs:preview": "vitepress preview --host 0.0.0.0"
354+ }
355+}
356diff --git a/builddefs/docsgen/start-docs.sh b/builddefs/docsgen/start-docs.sh
357new file mode 100755
358index 0000000000000000000000000000000000000000..e6e044c6a12054ee32e2fc51f26c7e425a09dd87
359--- /dev/null
360+++ b/builddefs/docsgen/start-docs.sh
361@@ -0,0 +1,5 @@
362+#!/usr/bin/env bash
363+
364+cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
365+yarn install
366+DEBUG='vitepress:*,vite:*' yarn run docs:dev
367diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock
368new file mode 100644
369index 0000000000000000000000000000000000000000..b40c1298d01934ac36b2631452e552b1abed55f4
370--- /dev/null
371+++ b/builddefs/docsgen/yarn.lock
372@@ -0,0 +1,797 @@
373+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
374+# yarn lockfile v1
375+
376+
377+"@algolia/autocomplete-core@1.9.3":
378+ version "1.9.3"
379+ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7"
380+ integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==
381+ dependencies:
382+ "@algolia/autocomplete-plugin-algolia-insights" "1.9.3"
383+ "@algolia/autocomplete-shared" "1.9.3"
384+
385+"@algolia/autocomplete-plugin-algolia-insights@1.9.3":
386+ version "1.9.3"
387+ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587"
388+ integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==
389+ dependencies:
390+ "@algolia/autocomplete-shared" "1.9.3"
391+
392+"@algolia/autocomplete-preset-algolia@1.9.3":
393+ version "1.9.3"
394+ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da"
395+ integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==
396+ dependencies:
397+ "@algolia/autocomplete-shared" "1.9.3"
398+
399+"@algolia/autocomplete-shared@1.9.3":
400+ version "1.9.3"
401+ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa"
402+ integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==
403+
404+"@algolia/cache-browser-local-storage@4.23.3":
405+ version "4.23.3"
406+ resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz#0cc26b96085e1115dac5fcb9d826651ba57faabc"
407+ integrity sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==
408+ dependencies:
409+ "@algolia/cache-common" "4.23.3"
410+
411+"@algolia/cache-common@4.23.3":
412+ version "4.23.3"
413+ resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.23.3.tgz#3bec79092d512a96c9bfbdeec7cff4ad36367166"
414+ integrity sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==
415+
416+"@algolia/cache-in-memory@4.23.3":
417+ version "4.23.3"
418+ resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz#3945f87cd21ffa2bec23890c85305b6b11192423"
419+ integrity sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==
420+ dependencies:
421+ "@algolia/cache-common" "4.23.3"
422+
423+"@algolia/client-account@4.23.3":
424+ version "4.23.3"
425+ resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.23.3.tgz#8751bbf636e6741c95e7c778488dee3ee430ac6f"
426+ integrity sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==
427+ dependencies:
428+ "@algolia/client-common" "4.23.3"
429+ "@algolia/client-search" "4.23.3"
430+ "@algolia/transporter" "4.23.3"
431+
432+"@algolia/client-analytics@4.23.3":
433+ version "4.23.3"
434+ resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.23.3.tgz#f88710885278fe6fb6964384af59004a5a6f161d"
435+ integrity sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==
436+ dependencies:
437+ "@algolia/client-common" "4.23.3"
438+ "@algolia/client-search" "4.23.3"
439+ "@algolia/requester-common" "4.23.3"
440+ "@algolia/transporter" "4.23.3"
441+
442+"@algolia/client-common@4.23.3":
443+ version "4.23.3"
444+ resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.23.3.tgz#891116aa0db75055a7ecc107649f7f0965774704"
445+ integrity sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==
446+ dependencies:
447+ "@algolia/requester-common" "4.23.3"
448+ "@algolia/transporter" "4.23.3"
449+
450+"@algolia/client-personalization@4.23.3":
451+ version "4.23.3"
452+ resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.23.3.tgz#35fa8e5699b0295fbc400a8eb211dc711e5909db"
453+ integrity sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==
454+ dependencies:
455+ "@algolia/client-common" "4.23.3"
456+ "@algolia/requester-common" "4.23.3"
457+ "@algolia/transporter" "4.23.3"
458+
459+"@algolia/client-search@4.23.3":
460+ version "4.23.3"
461+ resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.23.3.tgz#a3486e6af13a231ec4ab43a915a1f318787b937f"
462+ integrity sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==
463+ dependencies:
464+ "@algolia/client-common" "4.23.3"
465+ "@algolia/requester-common" "4.23.3"
466+ "@algolia/transporter" "4.23.3"
467+
468+"@algolia/logger-common@4.23.3":
469+ version "4.23.3"
470+ resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.23.3.tgz#35c6d833cbf41e853a4f36ba37c6e5864920bfe9"
471+ integrity sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==
472diff --git a/docs/.nojekyll b/docs/.nojekyll
473deleted file mode 100644
474index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
475--- a/docs/.nojekyll
476+++ /dev/null
477diff --git a/docs/CNAME b/docs/CNAME
478deleted file mode 100644
479index e089843e0bcc8a72c482b778e35aa6dd260b1c41..0000000000000000000000000000000000000000
480--- a/docs/CNAME
481+++ /dev/null
482@@ -1 +0,0 @@
483-docs.qmk.fm
484diff --git a/docs/ChangeLog/20190830.md b/docs/ChangeLog/20190830.md
485index 298ec958c52977af92191e3714c3a000218a0162..d6895216e9cc7abf3567b3a1e3220e3b8c19a957 100644
486--- a/docs/ChangeLog/20190830.md
487+++ b/docs/ChangeLog/20190830.md
488@@ -20,7 +20,7 @@ This document marks the inaugural Breaking Change merge. A list of changes follo
489
490 * `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
491 * The end result of removing this obsolete feature should result in a decent reduction in firmware size and code complexity
492-* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
493+* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](../custom_quantum_functions) and [macro](../feature_macros) features
494
495 ## Update Atreus to current code conventions
496
497@@ -43,7 +43,7 @@ This document marks the inaugural Breaking Change merge. A list of changes follo
498
499 * `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
500 * All keymaps using these actions have had the relevant `KC_FN*` keys replaced with the equivalent `BL_*` keys
501-* If you currently use `KC_FN*` you will need to replace `fn_actions` with the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
502+* If you currently use `KC_FN*` you will need to replace `fn_actions` with the [custom keycode](../custom_quantum_functions) and [macro](../feature_macros) features
503
504 ## Remove `KC_DELT` alias in favor of `KC_DEL`
505
506diff --git a/docs/ChangeLog/20200229.md b/docs/ChangeLog/20200229.md
507index 398fe01c0d04667e44682cf53805b24eb1b54b86..02bca3e37162daf8d929bd1ac6372189504d4840 100644
508--- a/docs/ChangeLog/20200229.md
509+++ b/docs/ChangeLog/20200229.md
510@@ -51,7 +51,7 @@ Four times a year QMK runs a process for merging Breaking Changes. A Breaking Ch
511
512 * `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
513 * The end result of removing this obsolete feature should result in a decent reduction in firmware size and code complexity
514-* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
515+* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](../custom_quantum_functions) and [macro](../feature_macros) features
516
517
518 ## Moving backlight keycode handling to `process_keycode/`
519diff --git a/docs/ChangeLog/20200829.md b/docs/ChangeLog/20200829.md
520index c6abed5b3023f66aa412eb0dca2104548392cd35..66957211f8505cc06cd501de62756cfd6fa23f8c 100644
521--- a/docs/ChangeLog/20200829.md
522+++ b/docs/ChangeLog/20200829.md
523@@ -3,9 +3,9 @@
524diff --git a/docs/ChangeLog/20201128.md b/docs/ChangeLog/20201128.md
525index 444132029532caa6f1daf281db91b4e0b4aae91e..d005d3b56b6013f4b72f7927c9542533ff4a6b90 100644
526--- a/docs/ChangeLog/20201128.md
527+++ b/docs/ChangeLog/20201128.md
528@@ -3,9 +3,9 @@
529diff --git a/docs/ChangeLog/20210529.md b/docs/ChangeLog/20210529.md
530index 2feeed64376cdefcb4b548b973ca804e00a46793..69923b0c5abe40af1fed845e225e6b38d3319083 100644
531--- a/docs/ChangeLog/20210529.md
532+++ b/docs/ChangeLog/20210529.md
533@@ -1,30 +1,30 @@
534 # QMK Breaking Changes - 2021 May 29 Changelog
535
536-## Notable Changes :id=notable-changes
537+## Notable Changes {#notable-changes}
538
539-### RGB Matrix support for split common ([#11055](https://github.com/qmk/qmk_firmware/pull/11055)) :id=rgb-matrix-split-common
540+### RGB Matrix support for split common ([#11055](https://github.com/qmk/qmk_firmware/pull/11055)) {#rgb-matrix-split-common}
541
542 Split boards can now use RGB Matrix without defining a custom matrix.
543
544-### Teensy 3.6 support ([#12258](https://github.com/qmk/qmk_firmware/pull/12258)) :id=teensy-3-6-support
545+### Teensy 3.6 support ([#12258](https://github.com/qmk/qmk_firmware/pull/12258)) {#teensy-3-6-support}
546
547 Added support for MK66F18 (Teensy 3.6) microcontroller.
548
549-### New command: qmk console ([#12828](https://github.com/qmk/qmk_firmware/pull/12828)) :id=new-command-qmk-console
550+### New command: qmk console ([#12828](https://github.com/qmk/qmk_firmware/pull/12828)) {#new-command-qmk-console}
551
552 A new `qmk console` command has been added for attaching to your keyboard's console. It operates similiarly to QMK Toolbox by allowing you to connect to one or more keyboard consoles to display debugging messages.
553
554-### Improved command: qmk config :id=improve-command-qmk-config
555+### Improved command: qmk config {#improve-command-qmk-config}
556
557 We've updated the `qmk config` command to show only the configuration items you have actually set. You can now display (almost) all of the available configuration options, along with their default values, using `qmk config -a`.
558
559diff --git a/docs/ChangeLog/20210828.md b/docs/ChangeLog/20210828.md
560index f96283e6ad48886c8738233b106e7724fe3f2b58..f84169cc9475b30c6a6e9de02352fef5c7781b09 100644
561--- a/docs/ChangeLog/20210828.md
562+++ b/docs/ChangeLog/20210828.md
563@@ -1,28 +1,28 @@
564 # QMK Breaking Changes - 2021 August 28 Changelog
565
566-## Notable Features :id=notable-features
567+## Notable Features {#notable-features}
568
569-### Combo processing improvements ([#8591](https://github.com/qmk/qmk_firmware/pull/8591)) :id=combo-processing-improvements
570+### Combo processing improvements ([#8591](https://github.com/qmk/qmk_firmware/pull/8591)) {#combo-processing-improvements}
571
572 Combo processing has been reordered with respect to keypress handling, allowing for much better compatibility with mod taps.
573
574diff --git a/docs/ChangeLog/20211127.md b/docs/ChangeLog/20211127.md
575index 0780ab6a44c65d3bf3f38f8f11d77acfa2e91fdc..d810be505a418da6c97938e1ab3445122e461d4e 100644
576--- a/docs/ChangeLog/20211127.md
577+++ b/docs/ChangeLog/20211127.md
578@@ -1,6 +1,6 @@
579 # QMK Breaking Changes - 2021 November 27 Changelog
580
581-## 2000 keyboards! :id=qmk-2000th-keyboard
582+## 2000 keyboards! {#qmk-2000th-keyboard}
583
584 QMK had it's 2000th keyboard submitted during this breaking changes cycle.... and it only _just_ made the cut-off!
585
586@@ -11,9 +11,9 @@ QMK had it's 2000th keyboard submitted during this breaking changes cycle.... an
587
588 From the whole QMK team, a major thankyou to the community for embracing QMK as your preferred keyboard firmware!
589
590-## Notable Features :id=notable-features
591+## Notable Features {#notable-features}
592
593-### Expanded Pointing Device support ([#14343](https://github.com/qmk/qmk_firmware/pull/14343)) :id=expanded-pointing-device
594+### Expanded Pointing Device support ([#14343](https://github.com/qmk/qmk_firmware/pull/14343)) {#expanded-pointing-device}
595
596 Pointing device support has been reworked and reimplemented to allow for easier integration of new peripherals.
597
598@@ -31,9 +31,9 @@ QMK now has core-supplied support for the following pointing device peripherals:
599 | `POINTING_DEVICE_DRIVER = pimoroni_trackball` | Pimoroni Trackball |
600 | `POINTING_DEVICE_DRIVER = pmw3360` | PMW 3360 |
601
602-See the new documentation for the [Pointing Device](../feature_pointing_device.md) feature for more information on specific configuration for each driver.
603+See the new documentation for the [Pointing Device](../feature_pointing_device) feature for more information on specific configuration for each driver.
604
605-### Dynamic Tapping Term ([#11036](https://github.com/qmk/qmk_firmware/pull/11036)) :id=dynamic-tapping-term
606+### Dynamic Tapping Term ([#11036](https://github.com/qmk/qmk_firmware/pull/11036)) {#dynamic-tapping-term}
607
608 For people who are starting out with tapping keys, or for people who think tapping keys don't "feel right", it's sometimes quite difficult to determine what duration of tapping term to use to make things seem natural.
609
610@@ -47,9 +47,9 @@ If you're in this stage of discovery, you can now add `DYNAMIC_TAPPING_TERM_ENAB
611
612diff --git a/docs/ChangeLog/20220226.md b/docs/ChangeLog/20220226.md
613index a469612fe8b37022f627dce7320118e0123d01c9..f0cbbc0603ebc0a4fccd80ea3baaa001c8708487 100644
614--- a/docs/ChangeLog/20220226.md
615+++ b/docs/ChangeLog/20220226.md
616@@ -1,6 +1,6 @@
617 # QMK Breaking Changes - 2022 February 26 Changelog
618
619-## Notable Features :id=notable-features
620+## Notable Features {#notable-features}
621
622 ### Default USB Polling rate now 1kHz ([#15352](https://github.com/qmk/qmk_firmware/pull/15352))
623
624@@ -12,13 +12,13 @@ Something something *Lets go gamers!*
625
626 Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side.
627
628-See the [Pointing Device](feature_pointing_device.md) documentation for further configuration options.
629+See the [Pointing Device](../feature_pointing_device) documentation for further configuration options.
630
631-## Changes Requiring User Action :id=changes-requiring-user-action
632+## Changes Requiring User Action {#changes-requiring-user-action}
633
634 ### Legacy macro and action_function system removed ([#16025](https://github.com/qmk/qmk_firmware/pull/16025))
635
636-The long time deprecated `MACRO()` and `action_get_macro` methods have been removed. Where possible, existing usages have been migrated over to core [Macros](feature_macros.md).
637+The long time deprecated `MACRO()` and `action_get_macro` methods have been removed. Where possible, existing usages have been migrated over to core [Macros](../feature_macros).
638
639 ### Create a build error if no bootloader is specified ([#16181](https://github.com/qmk/qmk_firmware/pull/16181))
640
641@@ -31,7 +31,7 @@ Bootloader configuration is no longer assumed. Keyboards must now set either:
642
643 In preparation of future bluetooth work, the `AdafruitBLE` integration has been renamed to allow potential for any other Adafruit BLE products.
644
645-### Updated Keyboard Codebases :id=updated-keyboard-codebases
646+### Updated Keyboard Codebases {#updated-keyboard-codebases}
647
648 The following keyboards have had their source moved within QMK:
649
650@@ -241,9 +241,9 @@ The following keyboards have had their source moved within QMK:
651 | zinc/rev1 | 25keys/zinc/rev1 |
652 | zinc/reva | 25keys/zinc/reva |
653
654-## Notable core changes :id=notable-core
655+## Notable core changes {#notable-core}
656
657-### New MCU Support :id=new-mcu-support
658+### New MCU Support {#new-mcu-support}
659
660 Building on previous cycles, QMK firmware picked up support for a couple extra MCU variants:
661
662diff --git a/docs/ChangeLog/20220528.md b/docs/ChangeLog/20220528.md
663index 1265c81206df33d0996e7114a94213743a461a6d..31347c9c005256c3e893a26f0fa46b05c5048df4 100644
664--- a/docs/ChangeLog/20220528.md
665+++ b/docs/ChangeLog/20220528.md
666@@ -1,16 +1,16 @@
667 # QMK Breaking Changes - 2022 May 28 Changelog
668
669-## Notable Features :id=notable-features
670+## Notable Features {#notable-features}
671
672-### Caps Word ([#16588](https://github.com/qmk/qmk_firmware/pull/16588)) :id=caps-word
673+### Caps Word ([#16588](https://github.com/qmk/qmk_firmware/pull/16588)) {#caps-word}
674
675 This is a new feature that allows for capslock-like functionality that turns itself off at the end of the word.
676
677diff --git a/docs/ChangeLog/20220827.md b/docs/ChangeLog/20220827.md
678index b672b57cb89370fb4099a445c136efa94a594c7f..d58db91272f99cfae577e4e5529d599cabd765b4 100644
679--- a/docs/ChangeLog/20220827.md
680+++ b/docs/ChangeLog/20220827.md
681@@ -1,28 +1,28 @@
682 # QMK Breaking Changes - 2022 August 27 Changelog
683
684-## Notable Features :id=notable-features
685+## Notable Features {#notable-features}
686
687diff --git a/docs/ChangeLog/20221126.md b/docs/ChangeLog/20221126.md
688index 82aa4a499e39cff33746d3ebd575c20d5a7afdcd..25cf1d592dd8e97d979de69f97dad4ac08ed7586 100644
689--- a/docs/ChangeLog/20221126.md
690+++ b/docs/ChangeLog/20221126.md
691@@ -1,14 +1,14 @@
692 # QMK Breaking Changes - 2022 November 26 Changelog
693
694-## Notable Features :id=notable-features
695+## Notable Features {#notable-features}
696
697-### Autocorrect ([#15699](https://github.com/qmk/qmk_firmware/pull/15699)) :id=autocorrect
698+### Autocorrect ([#15699](https://github.com/qmk/qmk_firmware/pull/15699)) {#autocorrect}
699
700diff --git a/docs/ChangeLog/20230226.md b/docs/ChangeLog/20230226.md
701index df5095ac7b5ba54a932c46bcd50c06b321495258..ee560686044e607bf334d7ecf623e33ec479b94c 100644
702--- a/docs/ChangeLog/20230226.md
703+++ b/docs/ChangeLog/20230226.md
704@@ -1,8 +1,8 @@
705 # QMK Breaking Changes - 2023 February 26 Changelog
706
707-## Changes Requiring User Action :id=changes-requiring-user-action
708+## Changes Requiring User Action {#changes-requiring-user-action}
709
710-### `IGNORE_MOD_TAP_INTERRUPT` behaviour changes ([#15741](https://github.com/qmk/qmk_firmware/pull/15741)) :id=i-m-t-i
711+### `IGNORE_MOD_TAP_INTERRUPT` behaviour changes ([#15741](https://github.com/qmk/qmk_firmware/pull/15741)) {#i-m-t-i}
712
713 `IGNORE_MOD_TAP_INTERRUPT_PER_KEY` has been removed and `IGNORE_MOD_TAP_INTERRUPT` deprecated as a stepping stone towards making `IGNORE_MOD_TAP_INTERRUPT` the new default behavior for mod-taps in the future.
714
715@@ -46,9 +46,9 @@ bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
716 }
717 ```
718
719diff --git a/docs/ChangeLog/20230528.md b/docs/ChangeLog/20230528.md
720index b4044d3109b6c5f0b80afbfe6c3a45eccf17f835..40ab3a420c2bc9b87dfa52af565972b0ab36a81a 100644
721--- a/docs/ChangeLog/20230528.md
722+++ b/docs/ChangeLog/20230528.md
723@@ -1,6 +1,6 @@
724 # QMK Breaking Changes - 2023 May 28 Changelog
725
726-## Notable Changes :id=notable-changes
727+## Notable Changes {#notable-changes}
728
729diff --git a/docs/ChangeLog/20230827.md b/docs/ChangeLog/20230827.md
730index 12093d889f3f3c65858b7eeebb24c2be8f963b1a..aecbcb0d8f43f337ae0fa0f7b02d021b7569a018 100644
731--- a/docs/ChangeLog/20230827.md
732+++ b/docs/ChangeLog/20230827.md
733@@ -1,14 +1,14 @@
734 # QMK Breaking Changes - 2023 Aug 27 Changelog
735
736-## Notable Changes :id=notable-changes
737+## Notable Changes {#notable-changes}
738
739diff --git a/docs/ChangeLog/20231126.md b/docs/ChangeLog/20231126.md
740index 61cff520c8053807ef012d685799ecf1dc30622f..8a43bb001689a36a7f679e2b960dde01afb41e2d 100644
741--- a/docs/ChangeLog/20231126.md
742+++ b/docs/ChangeLog/20231126.md
743@@ -1,14 +1,14 @@
744 # QMK Breaking Changes - 2023 November 26 Changelog
745
746-## Notable Features :id=notable-features
747+## Notable Features {#notable-features}
748
749diff --git a/docs/ChangeLog/20240225.md b/docs/ChangeLog/20240225.md
750index 779b7784900f0c7912d0a3ac8feca8748009f938..f4103c594e09e643eb60b4976645dedeedc91b69 100644
751--- a/docs/ChangeLog/20240225.md
752+++ b/docs/ChangeLog/20240225.md
753@@ -1,6 +1,6 @@
754 # QMK Breaking Changes - 2024 February 25 Changelog
755
756-## Notable Features :id=notable-features
757+## Notable Features {#notable-features}
758
759 _0.24.0_ is mainly a maintenance release of QMK Firmware -- as per last few breaking changes cycles, there have been a lot of behind-the-scenes changes, mainly:
760
761@@ -10,17 +10,17 @@ _0.24.0_ is mainly a maintenance release of QMK Firmware -- as per last few brea
762 * keyboard relocations
763 * addressing technical debt
764
765-## Changes Requiring User Action :id=changes-requiring-user-action
766+## Changes Requiring User Action {#changes-requiring-user-action}
767
768 ### Windows Driver Changes ([QMK Toolbox 0.3.0 Release](https://github.com/qmk/qmk_toolbox/releases/tag/0.3.0))
769
770 Flashing keyboards that target `atmel-dfu` or `qmk-dfu` on Windows using `qmk flash` or QMK Toolbox have traditionally used _libusb_ for access to the DFU USB device. Since QMK Toolbox 0.3.0, this has changed to WinUSB.
771
772diff --git a/docs/ChangeLog/20240526.md b/docs/ChangeLog/20240526.md
773index 4cf185234cec58d2833a5135d1bf425a2d1eaa03..b5e5b3b693893a4474fed7ab994b96982f14402c 100644
774--- a/docs/ChangeLog/20240526.md
775+++ b/docs/ChangeLog/20240526.md
776@@ -1,14 +1,14 @@
777 # QMK Breaking Changes - 2024 May 26 Changelog
778
779-## Notable Features :id=notable-features
780+## Notable Features {#notable-features}
781
782diff --git a/docs/__capabilities.md b/docs/__capabilities.md
783index 71183ed7608744519ce9d3219ddd0c1785ae2ec3..e28b928970643f1ba1af110737e09bdaf00e9314 100644
784--- a/docs/__capabilities.md
785+++ b/docs/__capabilities.md
786@@ -6,8 +6,6 @@ This page lays out the capabilities used by the QMK Firmware documentation, in o
787
788 Unrelated to styling, high-level tech.
789
790-* I18n -- translations to other languages: [_langs.md](_langs.md)
791-* Sidebar -- listing of pages by category: [_summary.md](_summary.md)
792 * Title anchors -- `:id=some-anchor-name`, used for direct linking to sections
793 * Links to anchors:
794 * Style 1: [early initialization](platformdev_chibios_earlyinit.md?id=board-init)
795@@ -40,7 +38,10 @@ Unrelated to styling, high-level tech.
796
797 
798
799-<img src="gitbook/images/color-wheel.svg" alt="HSV Color Wheel" width="250"/>
800+
801+
802+
803+<img src="./gitbook/images/color-wheel.svg" alt="HSV Color Wheel" width="250"/>
804
805 ### Lists
806
807@@ -126,6 +127,26 @@ Command+<code>`</code>
808
809 !> Notification, damnit!
810
811+::: info
812+This is an info box.
813+:::
814+
815+::: tip
816+This is a tip.
817+:::
818+
819+::: warning
820+This is a warning.
821+:::
822+
823+::: danger
824+This is a dangerous warning.
825+:::
826+
827+::: details
828+This is a details block.
829+:::
830+
831 ### Keyboard keys
832
833 <kbd>,</kbd>
834@@ -242,6 +263,20 @@ Content three
835
836 <!-- tabs:end -->
837
838+::::tabs
839+=== tab a
840+a content 2
841+=== tab b
842+b content 2
843+=== tab c
844+:::tabs
845+== nested tab a
846+nested a content 2
847+== nested tab b
848+nested b content 2
849+:::
850+::::
851+
852 ## Details sections
853
854 Expandable:
855@@ -254,8 +289,10 @@ Expandable:
856 This is some inner content.
857 </details>
858
859- [1]: https://en.wikipedia.org/wiki/Eclipse_(software)
860-
861 ## Embed
862
863 [example embed](__capabilities_inc.md ':include')
864+
865+<!--@include: ./__capabilities_inc.md-->
866+
867+ [1]: https://en.wikipedia.org/wiki/Eclipse_(software)
868diff --git a/docs/_langs.md b/docs/_langs.md
869deleted file mode 100644
870index 8b08c345137cb59a7cedb474559f7f53c4660e0c..0000000000000000000000000000000000000000
871--- a/docs/_langs.md
872+++ /dev/null
873@@ -1,4 +0,0 @@
874-- Translations
875- - [:uk: English](/)
876- - [:cn: 简体中文](/zh-cn/)
877- - [:jp: 日本語](/ja/)
878diff --git a/docs/_sidebar.json b/docs/_sidebar.json
879new file mode 100644
880index 0000000000000000000000000000000000000000..f1b7c156e6eb5e230fa89b443cf279d42380b670
881--- /dev/null
882+++ b/docs/_sidebar.json
883@@ -0,0 +1,309 @@
884+[
885+ {
886+ "text": "Tutorial",
887+ "items": [
888+ { "text": "Introduction", "link": "/newbs" },
889+ { "text": "Setup", "link": "/newbs_getting_started" },
890+ { "text": "Building Your First Firmware", "link": "/newbs_building_firmware" },
891+ { "text": "Flashing Firmware", "link": "/newbs_flashing" },
892+ { "text": "Getting Help/Support", "link": "/support" },
893+ { "text": "External Userspace", "link": "/newbs_external_userspace" },
894+ { "text": "Other Resources", "link": "/newbs_learn_more_resources" },
895+ { "text": "Syllabus", "link": "/syllabus" }
896+ ]
897+ },
898+ {
899+ "text": "FAQs",
900+ "items": [
901+ { "text": "General FAQ", "link": "/faq_general" },
902+ { "text": "Build/Compile QMK", "link": "/faq_build" },
903+ { "text": "Troubleshooting QMK", "link": "/faq_misc" },
904+ { "text": "Debugging QMK", "link": "/faq_debug" },
905+ { "text": "Keymap FAQ", "link": "/faq_keymap" },
906+ { "text": "Squeezing Space from AVR", "link": "/squeezing_avr" },
907+ { "text": "Glossary", "link": "/reference_glossary" }
908+ ]
909+ },
910+ {
911+ "text": "Configurator",
912+ "items": [
913+ { "text": "Overview", "link": "/newbs_building_firmware_configurator" },
914+ { "text": "Step by Step", "link": "/configurator_step_by_step" },
915+ { "text": "Troubleshooting", "link": "/configurator_troubleshooting" },
916+ { "text": "Architecture", "link": "/configurator_architecture" },
917+ {
918+ "text": "QMK API",
919+ "items": [
920+ { "text": "Overview", "link": "/api_overview" },
921+ { "text": "API Documentation", "link": "/api_docs" },
922+ { "text": "Keyboard Support", "link": "/reference_configurator_support" },
923+ { "text": "Adding Default Keymaps", "link": "/configurator_default_keymaps" }
924+ ]
925+ }
926+ ]
927+ },
928+ {
929+ "text": "CLI",
930+ "items": [
931+ { "text": "Overview", "link": "/cli" },
932+ { "text": "Configuration", "link": "/cli_configuration" },
933+ { "text": "Commands", "link": "/cli_commands" },
934+ { "text": "Tab Completion", "link": "/cli_tab_complete" }
935+ ]
936+ },
937+ {
938+ "text": "Using QMK",
939+ "items": [
940+ {
941+ "text": "Guides",
942+ "items": [
943+ { "text": "Customizing Functionality", "link": "/custom_quantum_functions" },
944+ { "text": "Driver Installation with Zadig", "link": "/driver_installation_zadig" },
945+ { "text": "Keymap Overview", "link": "/keymap" },
946+ {
947+ "text": "Development Environments",
948+ "items": [{ "text": "Docker Guide", "link": "/getting_started_docker" }]
949+ },
950+ {
951+ "text": "Flashing",
952+ "items": [
953+ { "text": "Flashing", "link": "/flashing" },
954+ { "text": "Flashing ATmega32A (ps2avrgb)", "link": "/flashing_bootloadhid" }
955+ ]
956+ },
957+ {
958+ "text": "IDEs",
959+ "items": [
960+ { "text": "Using Eclipse with QMK", "link": "/other_eclipse" },
961+ { "text": "Using VSCode with QMK", "link": "/other_vscode" }
962+ ]
963+ },
964+ {
965+ "text": "Git Best Practices",
966+ "items": [
967+ { "text": "Introduction", "link": "/newbs_git_best_practices" },
968+ { "text": "Your Fork", "link": "/newbs_git_using_your_master_branch" },
969+ { "text": "Merge Conflicts", "link": "/newbs_git_resolving_merge_conflicts" },
970+ { "text": "Fixing Your Branch", "link": "/newbs_git_resynchronize_a_branch" }
971+ ]
972+ }
973+ ]
974+ },
975+ {
976+ "text": "Simple Keycodes",
977+ "items": [
978+ { "text": "Full List", "link": "/keycodes" },
979+ { "text": "Basic Keycodes", "link": "/keycodes_basic" },
980+ { "text": "Language-Specific Keycodes", "link": "/reference_keymap_extras" },
981+ { "text": "Modifier Keys", "link": "/feature_advanced_keycodes" },
982+ { "text": "Quantum Keycodes", "link": "/quantum_keycodes" },
983diff --git a/docs/_summary.md b/docs/_summary.md
984deleted file mode 100644
985index adf48cec85dc66e45d48c9382f385539e321c1d1..0000000000000000000000000000000000000000
986--- a/docs/_summary.md
987+++ /dev/null
988@@ -1,204 +0,0 @@
989-* Tutorial
990- * [Introduction](newbs.md)
991- * [Setup](newbs_getting_started.md)
992- * [Building Your First Firmware](newbs_building_firmware.md)
993- * [Flashing Firmware](newbs_flashing.md)
994- * [Getting Help/Support](support.md)
995- * [External Userspace](newbs_external_userspace.md)
996- * [Other Resources](newbs_learn_more_resources.md)
997- * [Syllabus](syllabus.md)
998-
999-* FAQs
1000- * [General FAQ](faq_general.md)
1001- * [Build/Compile QMK](faq_build.md)
1002- * [Troubleshooting QMK](faq_misc.md)
1003- * [Debugging QMK](faq_debug.md)
1004- * [Keymap FAQ](faq_keymap.md)
1005- * [Squeezing Space from AVR](squeezing_avr.md)
1006- * [Glossary](reference_glossary.md)
1007-
1008-* Configurator
1009- * [Overview](newbs_building_firmware_configurator.md)
1010- * [Step by Step](configurator_step_by_step.md)
1011- * [Troubleshooting](configurator_troubleshooting.md)
1012- * [Architecture](configurator_architecture.md)
1013- * QMK API
1014- * [Overview](api_overview.md)
1015- * [API Documentation](api_docs.md)
1016- * [Keyboard Support](reference_configurator_support.md)
1017- * [Adding Default Keymaps](configurator_default_keymaps.md)
1018-
1019-* CLI
1020- * [Overview](cli.md)
1021- * [Configuration](cli_configuration.md)
1022- * [Commands](cli_commands.md)
1023- * [Tab Completion](cli_tab_complete.md)
1024-
1025-* Using QMK
1026- * Guides
1027- * [Customizing Functionality](custom_quantum_functions.md)
1028- * [Driver Installation with Zadig](driver_installation_zadig.md)
1029- * [Keymap Overview](keymap.md)
1030- * Development Environments
1031- * [Docker Guide](getting_started_docker.md)
1032- * Flashing
1033- * [Flashing](flashing.md)
1034- * [Flashing ATmega32A (ps2avrgb)](flashing_bootloadhid.md)
1035- * IDEs
1036- * [Using Eclipse with QMK](other_eclipse.md)
1037- * [Using VSCode with QMK](other_vscode.md)
1038- * Git Best Practices
1039- * [Introduction](newbs_git_best_practices.md)
1040- * [Your Fork](newbs_git_using_your_master_branch.md)
1041- * [Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
1042- * [Fixing Your Branch](newbs_git_resynchronize_a_branch.md)
1043-
1044- * Simple Keycodes
1045- * [Full List](keycodes.md)
1046- * [Basic Keycodes](keycodes_basic.md)
1047- * [Language-Specific Keycodes](reference_keymap_extras.md)
1048- * [Modifier Keys](feature_advanced_keycodes.md)
1049- * [Quantum Keycodes](quantum_keycodes.md)
1050- * [Magic Keycodes](keycodes_magic.md)
1051-
1052- * Advanced Keycodes
1053- * [Command](feature_command.md)
1054- * [Dynamic Macros](feature_dynamic_macros.md)
1055- * [Grave Escape](feature_grave_esc.md)
1056- * [Leader Key](feature_leader_key.md)
1057- * [Mod-Tap](mod_tap.md)
1058- * [Macros](feature_macros.md)
1059- * [Mouse Keys](feature_mouse_keys.md)
1060- * [Programmable Button](feature_programmable_button.md)
1061- * [Repeat Key](feature_repeat_key.md)
1062- * [Space Cadet Shift](feature_space_cadet.md)
1063- * [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
1064-
1065- * Software Features
1066- * [Auto Shift](feature_auto_shift.md)
1067- * [Autocorrect](feature_autocorrect.md)
1068- * [Caps Word](feature_caps_word.md)
1069- * [Combos](feature_combo.md)
1070- * [Debounce API](feature_debounce_type.md)
1071- * [Digitizer](feature_digitizer.md)
1072- * [EEPROM](feature_eeprom.md)
1073- * [Key Lock](feature_key_lock.md)
1074- * [Key Overrides](feature_key_overrides.md)
1075- * [Layers](feature_layers.md)
1076- * [One Shot Keys](one_shot_keys.md)
1077- * [OS Detection](feature_os_detection.md)
1078- * [Raw HID](feature_rawhid.md)
1079- * [Secure](feature_secure.md)
1080- * [Send String](feature_send_string.md)
1081- * [Sequencer](feature_sequencer.md)
1082- * [Swap Hands](feature_swap_hands.md)
1083- * [Tap Dance](feature_tap_dance.md)
1084- * [Tap-Hold Configuration](tap_hold.md)
1085- * [Tri Layer](feature_tri_layer.md)
1086- * [Unicode](feature_unicode.md)
1087- * [Userspace](feature_userspace.md)
1088diff --git a/docs/adc_driver.md b/docs/adc_driver.md
1089index dd928e1e7f0a5022743d4eb030d5bafd4e626963..a1ab5a525132187726d0ee1a903289f43e07a9e8 100644
1090--- a/docs/adc_driver.md
1091+++ b/docs/adc_driver.md
1092@@ -1,6 +1,6 @@
1093 # ADC Driver
1094
1095diff --git a/docs/apa102_driver.md b/docs/apa102_driver.md
1096index 1da2de6ca357c6d31fd834f7c16c558bad3eedff..0f905e3f1811a737389d5818417e8ae8cc19fa1c 100644
1097--- a/docs/apa102_driver.md
1098+++ b/docs/apa102_driver.md
1099@@ -1,10 +1,10 @@
1100-# APA102 Driver :id=apa102-driver
1101+# APA102 Driver {#apa102-driver}
1102
1103-This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812_driver.md) LEDs, but have increased data and refresh rates.
1104+This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812_driver) LEDs, but have increased data and refresh rates.
1105
1106-## Usage :id=usage
1107+## Usage {#usage}
1108
1109-In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](feature_rgblight.md) or [RGB Matrix](feature_rgb_matrix.md) feature with the `apa102` driver set, and you would use those APIs instead.
1110+In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](feature_rgblight) or [RGB Matrix](feature_rgb_matrix) feature with the `apa102` driver set, and you would use those APIs instead.
1111
1112 However, if you need to use the driver standalone, add the following to your `rules.mk`:
1113
1114@@ -14,7 +14,7 @@ APA102_DRIVER_REQUIRED = yes
1115
1116 You can then call the APA102 API by including `apa102.h` in your code.
1117
1118-## Basic Configuration :id=basic-configuration
1119+## Basic Configuration {#basic-configuration}
1120
1121 Add the following to your `config.h`:
1122
1123@@ -24,13 +24,13 @@ Add the following to your `config.h`:
1124 |`APA102_CI_PIN` |*Not defined*|The GPIO pin connected to the CI pin of the first LED in the chain|
1125 |`APA102_DEFAULT_BRIGHTNESS`|`31` |The default global brightness level of the LEDs, from 0 to 31 |
1126
1127-## API :id=api
1128+## API {#api}
1129
1130 ### `void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)`
1131
1132 Send RGB data to the APA102 LED chain.
1133
1134-#### Arguments :id=api-apa102-setleds-arguments
1135+#### Arguments {#api-apa102-setleds-arguments}
1136
1137 - `rgb_led_t *start_led`
1138 A pointer to the LED array.
1139@@ -43,7 +43,7 @@ Send RGB data to the APA102 LED chain.
1140
1141 Set the global brightness.
1142
1143-#### Arguments :id=api-apa102-set-brightness-arguments
1144+#### Arguments {#api-apa102-set-brightness-arguments}
1145
1146 - `uint8_t brightness`
1147 The brightness level to set, from 0 to 31.
1148diff --git a/docs/api_docs.md b/docs/api_docs.md
1149index 3324bc545bca95db9d7e834605b62ed4769eecf3..f4ba19c42a05b476f29e2c9577a55ebd971aef04 100644
1150--- a/docs/api_docs.md
1151+++ b/docs/api_docs.md
1152@@ -67,7 +67,7 @@ Once your compile job has finished you'll check the `result` key. The value of t
1153 * `firmware_source_url`: A list of URLs for the full firmware source code
1154 * `output`: The stdout and stderr for this compile job. Errors will be found here.
1155
1156-## Constants :id=qmk-constants
1157+## Constants {#qmk-constants}
1158
1159 If you're writing a tool that leverages constants used within QMK, the API is used to publish "locked-in" versions of those constants in order to ensure that any third-party tooling has a canonical set of information to work with.
1160
1161@@ -81,9 +81,13 @@ $ curl https://keyboards.develop.qmk.fm/v1/constants_metadata.json # For `develo
1162 {"last_updated": "2022-11-26 12:00:00 GMT", "constants": {"keycodes": ["0.0.1", "0.0.2"]}}
1163 ```
1164
1165-!> Versions exported by the `master` endpoint are locked-in. Any extra versions that exist on the `develop` endpoint which don't exist in `master` are subject to change.
1166+::: warning
1167+Versions exported by the `master` endpoint are locked-in. Any extra versions that exist on the `develop` endpoint which don't exist in `master` are subject to change.
1168+:::
1169
1170-?> Only keycodes are currently published, but over time all other "externally visible" IDs are expected to appear on these endpoints.
1171+::: tip
1172+Only keycodes are currently published, but over time all other "externally visible" IDs are expected to appear on these endpoints.
1173+:::
1174
1175 To retrieve the constants associated with a subsystem, the endpoint format is as follows:
1176 ```
1177diff --git a/docs/api_overview.md b/docs/api_overview.md
1178index f851a48a4af4b9870bc86d329b6d08763a1954a7..c8ec42e947635721db31f52465b9bc3a09290dc4 100644
1179--- a/docs/api_overview.md
1180+++ b/docs/api_overview.md
1181@@ -4,12 +4,12 @@ The QMK API provides an asynchronous API that Web and GUI tools can use to compi
1182
1183 ## App Developers
1184
1185-If you are an app developer interested in using this API in your application you should head over to [Using The API](api_docs.md).
1186+If you are an app developer interested in using this API in your application you should head over to [Using The API](api_docs).
1187
1188 ## Keyboard Maintainers
1189
1190-If you would like to enhance your keyboard's support in the QMK Compiler API head over to the [Keyboard Support](reference_configurator_support.md) section.
1191+If you would like to enhance your keyboard's support in the QMK Compiler API head over to the [Keyboard Support](reference_configurator_support) section.
1192
1193 ## Backend Developers
1194
1195-If you are interested in working on the API itself you should start by setting up a [Development Environment](api_development_environment.md), then check out [Hacking On The API](api_development_overview.md).
1196+If you are interested in working on the API itself you should start by setting up a [Development Environment](api_development_environment), then check out [Hacking On The API](api_development_overview).
1197diff --git a/docs/audio_driver.md b/docs/audio_driver.md
1198index 03c0a824dfe7c91b6ea910826213d2514ae2b4f0..4a71b4f411cdf520c5d608c6ed642d0f8803866b 100644
1199--- a/docs/audio_driver.md
1200+++ b/docs/audio_driver.md
1201@@ -1,11 +1,11 @@
1202-# Audio Driver :id=audio-driver
1203+# Audio Driver {#audio-driver}
1204
1205diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
1206index 1c0b1bafceb3e766331d1bd68681aff90351984c..d72a8d476149ffa88bbceb0521786d3be1ef7de3 100644
1207--- a/docs/breaking_changes.md
1208+++ b/docs/breaking_changes.md
1209@@ -10,10 +10,10 @@ Practically, this means QMK merges the `develop` branch into the `master` branch
1210
1211 ## What has been included in past Breaking Changes?
1212
1213-* [2024 May 26](ChangeLog/20240526.md)
1214-* [2024 Feb 25](ChangeLog/20240225.md)
1215-* [2023 Nov 26](ChangeLog/20231126.md)
1216-* [Older Breaking Changes](breaking_changes_history.md)
1217+* [2024 May 26](ChangeLog/20240526)
1218+* [2024 Feb 25](ChangeLog/20240225)
1219+* [2023 Nov 26](ChangeLog/20231126)
1220+* [Older Breaking Changes](breaking_changes_history)
1221
1222 ## When is the next Breaking Change?
1223
1224@@ -71,7 +71,7 @@ This section documents various processes we use when running the Breaking Change
1225 ### 1 Week Before Merge
1226
1227 * `develop` is now closed to PR merges, only critical bugfixes may be included
1228-* Announce that master will be closed from <2 Days Before> to <Day of Merge> -- message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
1229+* Announce that master will be closed from `<2 Days Before>` to `<Day of Merge>` -- message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
1230 * `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be merged into qmk_firmware for this breaking changes cycle is today. After that, we're handling bugfixes only.`
1231
1232 ### 2 Days Before Merge
1233@@ -136,7 +136,7 @@ This happens immediately after the previous `develop` branch is merged to `maste
1234 * Announce that both `master` and `develop` are now unlocked -- message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
1235 * `@Breaking Changes Updates -- Hey folks, develop has now been merged into master -- newest batch of changes are now available for everyone to use!`
1236
1237-* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)
1238+* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions)
1239
1240
1241 ### Set up Discord events for the next cycle
1242diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md
1243index 6f0f25be0e6d67763fdbc6a4c61ec82ac5f0f3c6..8c01e35e6889168cd62a1121c058e1739520e7df 100644
1244--- a/docs/breaking_changes_history.md
1245+++ b/docs/breaking_changes_history.md
1246@@ -2,22 +2,22 @@
1247
1248 This page links to all previous changelogs from the QMK Breaking Changes process.
1249
1250-* [2024 May 26](ChangeLog/20240526.md) - version 0.25.0
1251-* [2024 Feb 25](ChangeLog/20240225.md) - version 0.24.0
1252-* [2023 Nov 26](ChangeLog/20231126.md) - version 0.23.0
1253-* [2023 Aug 27](ChangeLog/20230827.md) - version 0.22.0
1254-* [2023 May 28](ChangeLog/20230528.md) - version 0.21.0
1255-* [2023 Feb 26](ChangeLog/20230226.md) - version 0.20.0
1256-* [2022 Nov 26](ChangeLog/20221126.md) - version 0.19.0
1257-* [2022 Aug 27](ChangeLog/20220827.md) - version 0.18.0
1258-* [2022 May 28](ChangeLog/20220528.md) - version 0.17.0
1259-* [2022 Feb 26](ChangeLog/20220226.md) - version 0.16.0
1260-* [2021 Nov 27](ChangeLog/20211127.md) - version 0.15.0
1261-* [2021 Aug 28](ChangeLog/20210828.md) - version 0.14.0
1262-* [2021 May 29](ChangeLog/20210529.md) - version 0.13.0
1263-* [2021 Feb 27](ChangeLog/20210227.md) - version 0.12.0
1264-* [2020 Nov 28](ChangeLog/20201128.md) - version 0.11.0
1265-* [2020 Aug 29](ChangeLog/20200829.md) - version 0.10.0
1266-* [2020 May 30](ChangeLog/20200530.md) - version 0.9.0
1267-* [2020 Feb 29](ChangeLog/20200229.md) - version 0.8.0
1268-* [2019 Aug 30](ChangeLog/20190830.md) - version 0.7.0
1269+* [2024 May 26](ChangeLog/20240526) - version 0.25.0
1270+* [2024 Feb 25](ChangeLog/20240225) - version 0.24.0
1271+* [2023 Nov 26](ChangeLog/20231126) - version 0.23.0
1272+* [2023 Aug 27](ChangeLog/20230827) - version 0.22.0
1273+* [2023 May 28](ChangeLog/20230528) - version 0.21.0
1274+* [2023 Feb 26](ChangeLog/20230226) - version 0.20.0
1275+* [2022 Nov 26](ChangeLog/20221126) - version 0.19.0
1276+* [2022 Aug 27](ChangeLog/20220827) - version 0.18.0
1277+* [2022 May 28](ChangeLog/20220528) - version 0.17.0
1278+* [2022 Feb 26](ChangeLog/20220226) - version 0.16.0
1279+* [2021 Nov 27](ChangeLog/20211127) - version 0.15.0
1280+* [2021 Aug 28](ChangeLog/20210828) - version 0.14.0
1281+* [2021 May 29](ChangeLog/20210529) - version 0.13.0
1282+* [2021 Feb 27](ChangeLog/20210227) - version 0.12.0
1283+* [2020 Nov 28](ChangeLog/20201128) - version 0.11.0
1284+* [2020 Aug 29](ChangeLog/20200829) - version 0.10.0
1285+* [2020 May 30](ChangeLog/20200530) - version 0.9.0
1286+* [2020 Feb 29](ChangeLog/20200229) - version 0.8.0
1287+* [2019 Aug 30](ChangeLog/20190830) - version 0.7.0
1288diff --git a/docs/cli.md b/docs/cli.md
1289index 0fa068dc7b0cd8b19a921f7b804ceed231941f27..7d4c10cedd76997d6d7e75cde38e8a6f6bf55b14 100644
1290--- a/docs/cli.md
1291+++ b/docs/cli.md
1292@@ -1,14 +1,14 @@
1293-# QMK CLI :id=qmk-cli
1294+# QMK CLI {#qmk-cli}
1295
1296-## Overview :id=overview
1297+## Overview {#overview}
1298
1299 The QMK CLI (command line interface) makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more.
1300
1301-### Requirements :id=requirements
1302+### Requirements {#requirements}
1303
1304diff --git a/docs/cli_commands.md b/docs/cli_commands.md
1305index e97af79d33f1db25ea9e2e78c2f1ada0014d8e0a..6f82d9c9de09e53921d5bd185a96d114209336e7 100644
1306--- a/docs/cli_commands.md
1307+++ b/docs/cli_commands.md
1308@@ -86,7 +86,7 @@ qmk compile -j 0 -kb <keyboard_name>
1309
1310 ## `qmk flash`
1311
1312diff --git a/docs/cli_development.md b/docs/cli_development.md
1313index 8d4ee625352f5e50560c7fe3354ee25cb2874d07..e94884de2e965efb8da0bb0b00a23c429b461e58 100644
1314--- a/docs/cli_development.md
1315+++ b/docs/cli_development.md
1316@@ -202,7 +202,9 @@ We use nose2, flake8, and yapf to test, lint, and format code. You can use the `
1317
1318 We use [yapf](https://github.com/google/yapf) to automatically format code. Our configuration is in the `[yapf]` section of `setup.cfg`.
1319
1320-?> Tip- Many editors can use yapf as a plugin to automatically format code as you type.
1321+::: tip
1322+Tip- Many editors can use yapf as a plugin to automatically format code as you type.
1323+:::
1324
1325 ## Testing Details
1326
1327diff --git a/docs/coding_conventions_python.md b/docs/coding_conventions_python.md
1328index 1ed27ee46abbef3706a0278e510bc7c1ff5bc09d..502ee9102edf4380ce5dfc390cae14e28a45e334 100644
1329--- a/docs/coding_conventions_python.md
1330+++ b/docs/coding_conventions_python.md
1331@@ -15,7 +15,7 @@ Most of our style follows PEP8 with some local modifications to make things less
1332
1333 # YAPF
1334
1335-You can use [yapf](https://github.com/google/yapf) to style your code. We provide a config in [setup.cfg](setup.cfg).
1336+You can use [yapf](https://github.com/google/yapf) to style your code. We provide a config in [setup.cfg](https://github.com/qmk/qmk_firmware/blob/master/setup.cfg).
1337
1338 # Imports
1339
1340diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md
1341index 197033f78b5768ad2868cc455050e8c7b72bbf34..785aee30d5cce1cdc4bd42eadea62d7269bd5a7e 100644
1342--- a/docs/compatible_microcontrollers.md
1343+++ b/docs/compatible_microcontrollers.md
1344@@ -73,7 +73,7 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
1345
1346 * [RP2040](https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html)
1347
1348-For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040.md).
1349+For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040).
1350
1351 ## Atmel ATSAM
1352
1353diff --git a/docs/config_options.md b/docs/config_options.md
1354index 046429a587549b0f16cd6ee42573976f606ba2d6..236649a0ea5b3fc4df336d27b904152d0018d383 100644
1355--- a/docs/config_options.md
1356+++ b/docs/config_options.md
1357@@ -6,11 +6,13 @@ There are three main types of configuration files in QMK:
1358
1359 * `config.h`, which contains various preprocessor directives (`#define`, `#ifdef`)
1360 * `rules.mk`, which contains additional variables
1361-* `info.json`, which is utilized for [data-driven configuration](https://docs.qmk.fm/#/data_driven_config)
1362+* `info.json`, which is utilized for [data-driven configuration](data_driven_config)
1363
1364 This page will only discuss the first two types, `config.h` and `rules.mk`.
1365
1366diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md
1367index 4d3c1b8f47c1e63d5891c9f14f2e1e9f98a03277..40304dc57b78cc5cdd3308f67cdfc80dbc312105 100644
1368--- a/docs/configurator_default_keymaps.md
1369+++ b/docs/configurator_default_keymaps.md
1370@@ -1,9 +1,9 @@
1371-# Adding Default Keymaps to QMK Configurator :id=adding-default-keymaps
1372+# Adding Default Keymaps to QMK Configurator {#adding-default-keymaps}
1373
1374 This page covers how to add a default keymap for a keyboard to QMK Configurator.
1375
1376
1377-## Technical Information :id=technical-information
1378+## Technical Information {#technical-information}
1379
1380 QMK Configurator uses JSON as its native file format for keymaps. As much as possible, these should be kept such that they behave the same as running `make <keyboard>:default` from `qmk_firmware`.
1381
1382@@ -27,7 +27,7 @@ f14629ed1cd7c7ec9089604d64f29a99981558e8 Remove/migrate action_get_macro()s from
1383 In this example, `f14629ed1cd7c7ec9089604d64f29a99981558e8` is the value that should be used for `commit`.
1384
1385
1386-## Example :id=example
1387+## Example {#example}
1388
1389 If one wished to add a default keymap for the H87a by Hineybush, one would run the `git log` command above against the H87a's default keymap in `qmk_firmware`:
1390
1391@@ -96,9 +96,9 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the
1392 The white space in the `layers` arrays have no effect on the functionality of the keymap, but are used to make these files easier for humans to read.
1393
1394
1395-## Caveats :id=caveats
1396+## Caveats {#caveats}
1397
1398-### Layers can only be referenced by number :id=layer-references
1399+### Layers can only be referenced by number {#layer-references}
1400
1401 A common QMK convention is to name layers using a series of `#define`s, or an `enum` statement:
1402
1403@@ -112,11 +112,11 @@ enum layer_names {
1404
1405 This works in C, but for Configurator, you *must* use the layer's numeric index – `MO(_FN)` would need to be `MO(2)` in the above example.
1406
1407-### No support for custom code of any kind :id=custom-code
1408+### No support for custom code of any kind {#custom-code}
1409
1410diff --git a/docs/configurator_step_by_step.md b/docs/configurator_step_by_step.md
1411index c3cc2bfcdbcb8b83a32f3bb45c164f49a711fa8e..4da9ea04a28a41c4630407a2118a15ca204034e2 100644
1412--- a/docs/configurator_step_by_step.md
1413+++ b/docs/configurator_step_by_step.md
1414@@ -6,11 +6,15 @@ This page describes the steps for building your firmware in QMK Configurator.
1415
1416 Click the drop down box and select the keyboard you want to create a keymap for.
1417
1418-?> If your keyboard has several versions, make sure you select the correct one.
1419+::: tip
1420+If your keyboard has several versions, make sure you select the correct one.
1421+:::
1422
1423 I'll say that again because it's important:
1424
1425-!> **MAKE SURE YOU SELECT THE RIGHT VERSION!**
1426+::: warning
1427+**MAKE SURE YOU SELECT THE RIGHT VERSION!**
1428+:::
1429
1430diff --git a/docs/configurator_troubleshooting.md b/docs/configurator_troubleshooting.md
1431index 80b9713b64eacf548a60f143f1b058231ddaf2d4..634b05c206598f5f1e8d697209401589875141ad 100644
1432--- a/docs/configurator_troubleshooting.md
1433+++ b/docs/configurator_troubleshooting.md
1434@@ -14,8 +14,8 @@ If you're referring to having three spots for space bar, the best course of acti
1435
1436 Please see:
1437
1438-* [Basic Keycode Reference](keycodes_basic.md)
1439-* [Advanced Keycode Reference](feature_advanced_keycodes.md)
1440+* [Basic Keycode Reference](keycodes_basic)
1441+* [Advanced Keycode Reference](feature_advanced_keycodes)
1442
1443 ## It won't compile
1444