Deploying to gh-pages from @ qmk/qmk_firmware@93cc3f58b1 🚀

This commit is contained in:
QMK Bot 2024-09-24 08:56:37 +00:00
parent 59280e79bb
commit 3325918acf
590 changed files with 1386 additions and 1397 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2019 Aug 30","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20190830.md","filePath":"ChangeLog/20190830.md"}');
const _sfc_main = { name: "ChangeLog/20190830.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 19);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 Feb 29 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20200229.md","filePath":"ChangeLog/20200229.md"}');
const _sfc_main = { name: "ChangeLog/20200229.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 20);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 May 30 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20200530.md","filePath":"ChangeLog/20200530.md"}');
const _sfc_main = { name: "ChangeLog/20200530.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 84);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 Aug 29 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20200829.md","filePath":"ChangeLog/20200829.md"}');
const _sfc_main = { name: "ChangeLog/20200829.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 29);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 Nov 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20201128.md","filePath":"ChangeLog/20201128.md"}');
const _sfc_main = { name: "ChangeLog/20201128.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 30);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 February 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20210227.md","filePath":"ChangeLog/20210227.md"}');
const _sfc_main = { name: "ChangeLog/20210227.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 29);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 May 29 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20210529.md","filePath":"ChangeLog/20210529.md"}');
const _sfc_main = { name: "ChangeLog/20210529.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 44);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 August 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20210828.md","filePath":"ChangeLog/20210828.md"}');
const _sfc_main = { name: "ChangeLog/20210828.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 65);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 November 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20211127.md","filePath":"ChangeLog/20211127.md"}');
const _sfc_main = { name: "ChangeLog/20211127.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 83);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 February 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20220226.md","filePath":"ChangeLog/20220226.md"}');
const _sfc_main = { name: "ChangeLog/20220226.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 43);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 May 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20220528.md","filePath":"ChangeLog/20220528.md"}');
const _sfc_main = { name: "ChangeLog/20220528.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 47);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 August 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20220827.md","filePath":"ChangeLog/20220827.md"}');
const _sfc_main = { name: "ChangeLog/20220827.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 54);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 November 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20221126.md","filePath":"ChangeLog/20221126.md"}');
const _sfc_main = { name: "ChangeLog/20221126.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 66);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 February 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20230226.md","filePath":"ChangeLog/20230226.md"}');
const _sfc_main = { name: "ChangeLog/20230226.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 47);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 May 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20230528.md","filePath":"ChangeLog/20230528.md"}');
const _sfc_main = { name: "ChangeLog/20230528.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 46);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 Aug 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20230827.md","filePath":"ChangeLog/20230827.md"}');
const _sfc_main = { name: "ChangeLog/20230827.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 49);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 November 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20231126.md","filePath":"ChangeLog/20231126.md"}');
const _sfc_main = { name: "ChangeLog/20231126.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 51);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 February 25 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20240225.md","filePath":"ChangeLog/20240225.md"}');
const _sfc_main = { name: "ChangeLog/20240225.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 43);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 May 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20240526.md","filePath":"ChangeLog/20240526.md"}');
const _sfc_main = { name: "ChangeLog/20240526.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 54);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 August 25 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20240825.md","filePath":"ChangeLog/20240825.md"}');
const _sfc_main = { name: "ChangeLog/20240825.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 46);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode, a as createTextVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode, a as createTextVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"Development Environment Setup","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_environment.md","filePath":"api_development_environment.md"}');
const _sfc_main = { name: "api_development_environment.md" };
const _hoisted_1 = /* @__PURE__ */ createBaseVNode("h1", {

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode, a as createTextVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode, a as createTextVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"Development Environment Setup","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_environment.md","filePath":"api_development_environment.md"}');
const _sfc_main = { name: "api_development_environment.md" };
const _hoisted_1 = /* @__PURE__ */ createBaseVNode("h1", {

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Compiler Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_overview.md","filePath":"api_development_overview.md"}');
const _sfc_main = { name: "api_development_overview.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="qmk-compiler-development-guide" tabindex="-1">QMK Compiler Development Guide <a class="header-anchor" href="#qmk-compiler-development-guide" aria-label="Permalink to &quot;QMK Compiler Development Guide&quot;"></a></h1><p>This page attempts to introduce developers to the QMK Compiler. It does not go into nitty gritty details- for that you should read code. What this will give you is a framework to hang your understanding on as you read the code.</p><h1 id="overview" tabindex="-1">Overview <a class="header-anchor" href="#overview" aria-label="Permalink to &quot;Overview&quot;"></a></h1><p>The QMK Compile API consists of a few movings parts:</p><p><img src="https://raw.githubusercontent.com/qmk/qmk_api/master/docs/architecture.svg" alt="Architecture Diagram"></p><p>API Clients interact exclusively with the API service. This is where they submit jobs, check status, and download results. The API service inserts compile jobs into <a href="https://python-rq.org" target="_blank" rel="noreferrer">Redis Queue</a> and checks both RQ and S3 for the results of those jobs.</p><p>Workers fetch new compile jobs from RQ, compile them, and then upload the source and the binary to an S3 compatible storage engine.</p><h1 id="workers" tabindex="-1">Workers <a class="header-anchor" href="#workers" aria-label="Permalink to &quot;Workers&quot;"></a></h1><p>QMK Compiler Workers are responsible for doing the actual building. When a worker pulls a job from RQ it does several things to complete that job:</p><ul><li>Make a fresh qmk_firmware checkout</li><li>Use the supplied layers and keyboard metadata to build a <code>keymap.c</code></li><li>Build the firmware</li><li>Zip a copy of the source</li><li>Upload the firmware, source zip, and a metadata file to S3.</li><li>Report the status of the job to RQ</li></ul><h1 id="api-service" tabindex="-1">API Service <a class="header-anchor" href="#api-service" aria-label="Permalink to &quot;API Service&quot;"></a></h1><p>The API service is a relatively simple Flask application. There are a few main views you should understand.</p><h2 id="app-route-v1-compile-methods-post" tabindex="-1">@app.route(&#39;/v1/compile&#39;, methods=[&#39;POST&#39;]) <a class="header-anchor" href="#app-route-v1-compile-methods-post" aria-label="Permalink to &quot;@app.route(&#39;/v1/compile&#39;, methods=[&#39;POST&#39;])&quot;"></a></h2><p>This is the main entrypoint for the API. A client&#39;s interaction starts here. The client POST&#39;s a JSON document describing their keyboard, and the API does some (very) basic validation of that JSON before submitting the compile job.</p><h2 id="app-route-v1-compile-string-job-id-methods-get" tabindex="-1">@app.route(&#39;/v1/compile/&lt;string:job_id&gt;&#39;, methods=[&#39;GET&#39;]) <a class="header-anchor" href="#app-route-v1-compile-string-job-id-methods-get" aria-label="Permalink to &quot;@app.route(&#39;/v1/compile/&amp;lt;string:job_id&amp;gt;&#39;, methods=[&#39;GET&#39;])&quot;"></a></h2><p>This is the most frequently called endpoint. It pulls the job details from redis, if they&#39;re still available, or the cached job details on S3 if they&#39;re not.</p><h2 id="app-route-v1-compile-string-job-id-download-methods-get" tabindex="-1">@app.route(&#39;/v1/compile/&lt;string:job_id&gt;/download&#39;, methods=[&#39;GET&#39;]) <a class="header-anchor" href="#app-route-v1-compile-string-job-id-download-methods-get" aria-label="Permalink to &quot;@app.route(&#39;/v1/compile/&amp;lt;string:job_id&amp;gt;/download&#39;, methods=[&#39;GET&#39;])&quot;"></a></h2><p>This method allows users to download the compiled firmware file.</p><h2 id="app-route-v1-compile-string-job-id-source-methods-get" tabindex="-1">@app.route(&#39;/v1/compile/&lt;string:job_id&gt;/source&#39;, methods=[&#39;GET&#39;]) <a class="header-anchor" href="#app-route-v1-compile-string-job-id-source-methods-get" aria-label="Permalink to &quot;@app.route(&#39;/v1/compile/&amp;lt;string:job_id&amp;gt;/source&#39;, methods=[&#39;GET&#39;])&quot;"></a></h2><p>This method allows users to download the source for their firmware.</p>', 20);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Compiler Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_overview.md","filePath":"api_development_overview.md"}');
const _sfc_main = { name: "api_development_overview.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 20);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK API","description":"","frontmatter":{},"headers":[],"relativePath":"api_docs.md","filePath":"api_docs.md"}');
const _sfc_main = { name: "api_docs.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 28);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK API","description":"","frontmatter":{},"headers":[],"relativePath":"api_overview.md","filePath":"api_overview.md"}');
const _sfc_main = { name: "api_overview.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="qmk-api" tabindex="-1">QMK API <a class="header-anchor" href="#qmk-api" aria-label="Permalink to &quot;QMK API&quot;"></a></h1><p>The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by <a href="https://qmk.fm/" target="_blank" rel="noreferrer">QMK</a>. The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality.</p><h2 id="app-developers" tabindex="-1">App Developers <a class="header-anchor" href="#app-developers" aria-label="Permalink to &quot;App Developers&quot;"></a></h2><p>If you are an app developer interested in using this API in your application you should head over to <a href="./api_docs">Using The API</a>.</p><h2 id="keyboard-maintainers" tabindex="-1">Keyboard Maintainers <a class="header-anchor" href="#keyboard-maintainers" aria-label="Permalink to &quot;Keyboard Maintainers&quot;"></a></h2><p>If you would like to enhance your keyboard&#39;s support in the QMK Compiler API head over to the <a href="./reference_configurator_support">Keyboard Support</a> section.</p><h2 id="backend-developers" tabindex="-1">Backend Developers <a class="header-anchor" href="#backend-developers" aria-label="Permalink to &quot;Backend Developers&quot;"></a></h2><p>If you are interested in working on the API itself you should start by setting up a <a href="./api_development_environment">Development Environment</a>, then check out <a href="./api_development_overview">Hacking On The API</a>.</p>', 8);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK API","description":"","frontmatter":{},"headers":[],"relativePath":"api_overview.md","filePath":"api_overview.md"}');
const _sfc_main = { name: "api_overview.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 8);

View File

@ -1,5 +1,5 @@
import { R as RawTheme } from "./chunks/theme.C3XzTLSh.js";
import { V as inBrowser, a9 as useUpdateHead, aa as RouterSymbol, ab as initData, ac as dataSymbol, ad as Content, ae as ClientOnly, af as siteDataRef, ag as createSSRApp, ah as createRouter, ai as pathToFile, d as defineComponent, u as useData, k as onMounted, y as watchEffect, aj as usePrefetch, ak as useCopyCode, al as useCodeGroups, am as h } from "./chunks/framework.Clpp4x2N.js";
import { R as RawTheme } from "./chunks/theme.CNkOOuO0.js";
import { V as inBrowser, a9 as useUpdateHead, aa as RouterSymbol, ab as initData, ac as dataSymbol, ad as Content, ae as ClientOnly, af as siteDataRef, ag as createSSRApp, ah as createRouter, ai as pathToFile, d as defineComponent, u as useData, k as onMounted, y as watchEffect, aj as usePrefetch, ak as useCopyCode, al as useCodeGroups, am as h } from "./chunks/framework.B9AX-CPi.js";
function resolveThemeExtends(theme) {
if (theme.extends) {
const base = resolveThemeExtends(theme.extends);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"ARM Debugging using Eclipse","description":"","frontmatter":{},"headers":[],"relativePath":"arm_debugging.md","filePath":"arm_debugging.md"}');
const _sfc_main = { name: "arm_debugging.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 43);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"Breaking Changes","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes.md","filePath":"breaking_changes.md"}');
const _sfc_main = { name: "breaking_changes.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 37);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"Past Breaking Changes","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes_history.md","filePath":"breaking_changes_history.md"}');
const _sfc_main = { name: "breaking_changes_history.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="past-breaking-changes" tabindex="-1">Past Breaking Changes <a class="header-anchor" href="#past-breaking-changes" aria-label="Permalink to &quot;Past Breaking Changes&quot;"></a></h1><p>This page links to all previous changelogs from the QMK Breaking Changes process.</p><ul><li><a href="./ChangeLog/20240825">2024 Aug 25</a> - version 0.26.0</li><li><a href="./ChangeLog/20240526">2024 May 26</a> - version 0.25.0</li><li><a href="./ChangeLog/20240225">2024 Feb 25</a> - version 0.24.0</li><li><a href="./ChangeLog/20231126">2023 Nov 26</a> - version 0.23.0</li><li><a href="./ChangeLog/20230827">2023 Aug 27</a> - version 0.22.0</li><li><a href="./ChangeLog/20230528">2023 May 28</a> - version 0.21.0</li><li><a href="./ChangeLog/20230226">2023 Feb 26</a> - version 0.20.0</li><li><a href="./ChangeLog/20221126">2022 Nov 26</a> - version 0.19.0</li><li><a href="./ChangeLog/20220827">2022 Aug 27</a> - version 0.18.0</li><li><a href="./ChangeLog/20220528">2022 May 28</a> - version 0.17.0</li><li><a href="./ChangeLog/20220226">2022 Feb 26</a> - version 0.16.0</li><li><a href="./ChangeLog/20211127">2021 Nov 27</a> - version 0.15.0</li><li><a href="./ChangeLog/20210828">2021 Aug 28</a> - version 0.14.0</li><li><a href="./ChangeLog/20210529">2021 May 29</a> - version 0.13.0</li><li><a href="./ChangeLog/20210227">2021 Feb 27</a> - version 0.12.0</li><li><a href="./ChangeLog/20201128">2020 Nov 28</a> - version 0.11.0</li><li><a href="./ChangeLog/20200829">2020 Aug 29</a> - version 0.10.0</li><li><a href="./ChangeLog/20200530">2020 May 30</a> - version 0.9.0</li><li><a href="./ChangeLog/20200229">2020 Feb 29</a> - version 0.8.0</li><li><a href="./ChangeLog/20190830">2019 Aug 30</a> - version 0.7.0</li></ul>', 3);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"Past Breaking Changes","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes_history.md","filePath":"breaking_changes_history.md"}');
const _sfc_main = { name: "breaking_changes_history.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 3);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"Breaking Changes: My Pull Request Was Flagged","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes_instructions.md","filePath":"breaking_changes_instructions.md"}');
const _sfc_main = { name: "breaking_changes_instructions.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="breaking-changes-my-pull-request-was-flagged" tabindex="-1">Breaking Changes: My Pull Request Was Flagged <a class="header-anchor" href="#breaking-changes-my-pull-request-was-flagged" aria-label="Permalink to &quot;Breaking Changes: My Pull Request Was Flagged&quot;"></a></h1><p>A QMK member may have replied to your pull request stating that your submission is a breaking change. In their judgment, the changes you have proposed have greater implications for either QMK, or its users.</p><p>Some things that may cause a pull request to be flagged are:</p><ul><li><strong>Edits to User Keymaps</strong> A user may submit their keymap to QMK, then some time later open a pull request with further updates, only to find it can&#39;t be merged because it was edited in the <code>qmk/qmk_firmware</code> repository. As not all users are proficient at using Git or GitHub, the user may find themself unable to fix the issue on their own.</li><li><strong>Changes to Expected Behavior</strong> Changes to QMK behavior may cause users to believe their hardware or QMK is broken if they flash new firmware that incorporates changes to existing QMK features, and find themselves without a means to restore the desired behavior.</li><li><strong>Changes Requiring User Action</strong> Changes may also require action to be taken by users, such as updating a toolchain or taking some action in Git.</li><li><strong>Changes Necessitating Increased Scrutiny</strong> On occasion, a submission may have implications for QMK as a project. This could be copyright/licensing issues, coding conventions, large feature overhauls, &quot;high-risk&quot; changes that need wider testing by our community, or something else entirely.</li><li><strong>Changes Requiring Communication to End Users</strong> This includes warnings about future deprecations, outdated practices, and anything else that needs to be communicated but doesn&#39;t fit into one of the above categories.</li></ul><h2 id="what-do-i-do" tabindex="-1">What Do I Do? <a class="header-anchor" href="#what-do-i-do" aria-label="Permalink to &quot;What Do I Do?&quot;"></a></h2><p>If it is determined that your submission is a breaking change, there are a few things you can do to smooth the process:</p><h3 id="consider-splitting-up-your-pr" tabindex="-1">Consider Splitting Up Your PR <a class="header-anchor" href="#consider-splitting-up-your-pr" aria-label="Permalink to &quot;Consider Splitting Up Your PR&quot;"></a></h3><p>If you are contributing core code, and the only reason it needs to go through breaking changes is that you are updating keymaps to match your change, consider whether you can submit your feature in a way that the old keymaps continue to work. Then submit a separate PR that goes through the breaking changes process to remove the old code.</p><h3 id="document-your-changes" tabindex="-1">Document Your Changes <a class="header-anchor" href="#document-your-changes" aria-label="Permalink to &quot;Document Your Changes&quot;"></a></h3><p>Understanding the purpose for your submission, and possible implications or actions it will require can make the review process more straightforward. A changelog may suffice for this purpose, but more extensive changes may require a level of detail that is ill-suited for a changelog.</p><p>Commenting on your pull request and being responsive to questions, comments, and change requests is much appreciated.</p><h3 id="ask-for-help" tabindex="-1">Ask for Help <a class="header-anchor" href="#ask-for-help" aria-label="Permalink to &quot;Ask for Help&quot;"></a></h3><p>Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or <a href="https://discord.gg/qmk" target="_blank" rel="noreferrer">reach out to the QMK team on Discord</a>.</p>', 13);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"Breaking Changes: My Pull Request Was Flagged","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes_instructions.md","filePath":"breaking_changes_instructions.md"}');
const _sfc_main = { name: "breaking_changes_instructions.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 13);

View File

@ -1,5 +1,5 @@
import { _ as _imports_0$1 } from "./chunks/color-wheel.DIUCmfNZ.js";
import { _ as _export_sfc, D as resolveComponent, c as createElementBlock, I as createVNode, w as withCtx, a8 as createStaticVNode, o as openBlock, l as createBaseVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, I as createVNode, w as withCtx, a8 as createStaticVNode, D as resolveComponent, o as openBlock, l as createBaseVNode } from "./chunks/framework.B9AX-CPi.js";
const _imports_0 = "/assets/badge-community-light.DoYC_YjC.svg";
const _imports_1 = "/assets/badge-community-dark.PWO_temo.svg";
const __pageData = JSON.parse('{"title":"Documentation Capabilities","description":"","frontmatter":{},"headers":[],"relativePath":"__capabilities.md","filePath":"__capabilities.md"}');

View File

@ -1,5 +1,5 @@
import { _ as _imports_0$1 } from "./chunks/color-wheel.DIUCmfNZ.js";
import { _ as _export_sfc, D as resolveComponent, c as createElementBlock, I as createVNode, w as withCtx, a8 as createStaticVNode, o as openBlock, l as createBaseVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, I as createVNode, w as withCtx, a8 as createStaticVNode, D as resolveComponent, o as openBlock, l as createBaseVNode } from "./chunks/framework.B9AX-CPi.js";
const _imports_0 = "/assets/badge-community-light.DoYC_YjC.svg";
const _imports_1 = "/assets/badge-community-dark.PWO_temo.svg";
const __pageData = JSON.parse('{"title":"Documentation Capabilities","description":"","frontmatter":{},"headers":[],"relativePath":"__capabilities.md","filePath":"__capabilities.md"}');

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"__capabilities_inc.md","filePath":"__capabilities_inc.md"}');
const _sfc_main = { name: "__capabilities_inc.md" };
const _hoisted_1 = /* @__PURE__ */ createBaseVNode("p", null, "Lorem ipsum dolor sit amet.", -1);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"__capabilities_inc.md","filePath":"__capabilities_inc.md"}');
const _sfc_main = { name: "__capabilities_inc.md" };
const _hoisted_1 = /* @__PURE__ */ createBaseVNode("p", null, "Lorem ipsum dolor sit amet.", -1);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"ChibiOS Upgrade Procedure","description":"","frontmatter":{},"headers":[],"relativePath":"chibios_upgrade_instructions.md","filePath":"chibios_upgrade_instructions.md"}');
const _sfc_main = { name: "chibios_upgrade_instructions.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="chibios-upgrade-procedure" tabindex="-1">ChibiOS Upgrade Procedure <a class="header-anchor" href="#chibios-upgrade-procedure" aria-label="Permalink to &quot;ChibiOS Upgrade Procedure&quot;"></a></h1><p>ChibiOS and ChibiOS-Contrib need to be updated in tandem -- the latter has a branch tied to the ChibiOS version in use and should not be mixed with different versions.</p><h2 id="getting-chibios" tabindex="-1">Getting ChibiOS <a class="header-anchor" href="#getting-chibios" aria-label="Permalink to &quot;Getting ChibiOS&quot;"></a></h2><ul><li><code>svn</code> Initialization: <ul><li>Only needed to be done once</li><li>You might need to separately install <code>git-svn</code> package in your OS&#39;s package manager</li><li><code>git svn init --stdlayout --prefix=&#39;svn/&#39; http://svn.osdn.net/svnroot/chibios/</code></li><li><code>git remote add qmk git@github.com:qmk/ChibiOS.git</code></li></ul></li><li>Updating: <ul><li><code>git svn fetch</code></li><li>First time around this will take several hours</li><li>Subsequent updates will be incremental only</li></ul></li><li>Tagging example (work out which version first!): <ul><li><code>git tag -a ver20.3.4 -m ver20.3.4 svn/tags/ver20.3.4</code></li><li><code>git push qmk ver20.3.4</code></li><li><code>git tag -a develop_YYYY_qN -m develop_YYYY_qN svn/tags/ver20.3.4</code></li><li><code>git push qmk develop_YYYY_qN</code></li></ul></li></ul><h2 id="getting-chibios-contrib" tabindex="-1">Getting ChibiOS-Contrib <a class="header-anchor" href="#getting-chibios-contrib" aria-label="Permalink to &quot;Getting ChibiOS-Contrib&quot;"></a></h2><ul><li><code>git</code> Initialization: <ul><li><code>git clone git@github.com:qmk/ChibiOS-Contrib</code></li><li><code>git remote add upstream https://github.com/ChibiOS/ChibiOS-Contrib</code></li><li><code>git checkout -b chibios-20.3.x upstream/chibios-20.3.x</code></li></ul></li><li>Updating: <ul><li><code>git fetch --all --tags --prune</code></li><li><code>git checkout chibios-20.3.x</code></li><li><code>git pull --ff-only</code></li><li><code>git push origin chibios-20.3.x</code></li><li><code>git tag -a develop_YYYY_qN -m develop_YYYY_qN chibios-20.3.x</code></li><li><code>git push origin develop_YYYY_qN</code></li></ul></li></ul><h2 id="updating-submodules" tabindex="-1">Updating submodules <a class="header-anchor" href="#updating-submodules" aria-label="Permalink to &quot;Updating submodules&quot;"></a></h2><ul><li>Update the submodules <ul><li><code>cd $QMK_FIRMWARE</code></li><li><code>git checkout develop</code></li><li><code>git pull --ff-only</code></li><li><code>git checkout -b chibios-version-bump</code></li><li><code>cd lib/chibios</code></li><li><code>git fetch --all --tags --prune</code></li><li><code>git checkout develop_YYYY_qN</code></li><li><code>cd ../chibios-contrib</code></li><li><code>git fetch --all --tags --prune</code></li><li><code>git checkout develop_YYYY_qN</code></li></ul></li><li>Update ChibiOS configs within QMK <ul><li><code>cd $QMK_FIRMWARE</code></li><li><code>./util/chibios_conf_updater.sh</code></li></ul></li><li>Build everything <ul><li><code>cd $QMK_FIRMWARE</code></li><li><code>qmk mass-compile -j 4</code></li><li>Make sure there are no errors</li></ul></li><li>Push to the repo <ul><li><code>git commit -am &#39;Update ChibiOS to 99.9.9&#39;</code></li><li><code>git push --set-upstream origin chibios-version-bump</code></li></ul></li><li>Make a PR to qmk_firmware with the new branch</li></ul><h2 id="when-merging-a-pr-containing-an-upgrade-of-chibios-chibios-contrib" tabindex="-1">When merging a PR containing an upgrade of ChibiOS/ChibiOS-Contrib: <a class="header-anchor" href="#when-merging-a-pr-containing-an-upgrade-of-chibios-chibios-contrib" aria-label="Permalink to &quot;When merging a PR containing an upgrade of ChibiOS/ChibiOS-Contrib:&quot;"></a></h2><ul><li>Update the target branch if the merge target was <code>master</code>: <ul><li><code>git checkout qmk-master</code></li><li><code>git reset --hard develop_YYYY_qN</code></li><li><code>git push origin qmk-master --force-with-lease</code></li></ul></li><li>Update the target branch if the merge target was <code>develop</code>: <ul><li><code>git checkout qmk-develop</code></li><li><code>git reset --hard develop_YYYY_qN</code></li><li><code>git push origin qmk-develop --force-with-lease</code></li></ul></li></ul><p>Note that when merging <code>develop</code> to <code>master</code>, the first workflow should still be followed.</p>', 11);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"ChibiOS Upgrade Procedure","description":"","frontmatter":{},"headers":[],"relativePath":"chibios_upgrade_instructions.md","filePath":"chibios_upgrade_instructions.md"}');
const _sfc_main = { name: "chibios_upgrade_instructions.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 11);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4,9 +4,9 @@ var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
import { Y as __vitePreload, j as ref, x as watch, an as unrefElement, ao as tryOnScopeDispose, d as defineComponent, G as shallowRef, ap as computedAsync, h as computed, aq as useSessionStorage, ar as useLocalStorage, y as watchEffect, as as watchDebounced, k as onMounted, S as nextTick, R as onKeyStroke, a6 as useRouter, at as useEventListener, Z as useScrollLock, V as inBrowser, au as onBeforeUnmount, o as openBlock, b as createBlock, l as createBaseVNode, a2 as withModifiers, m as unref, av as withDirectives, aw as vModelText, ax as isRef, c as createElementBlock, n as normalizeClass, e as createCommentVNode, E as renderList, F as Fragment, a as createTextVNode, t as toDisplayString, ay as Teleport, p as pushScopeId, q as popScopeId, az as markRaw, aA as createApp, ac as dataSymbol, ai as pathToFile, aB as escapeRegExp, _ as _export_sfc } from "./framework.Clpp4x2N.js";
import { u as useData, c as createSearchTranslate } from "./theme.C3XzTLSh.js";
const localSearchIndex = { "root": () => __vitePreload(() => import("./@localSearchIndexroot.POAM_Nwc.js"), true ? [] : void 0) };
import { Y as __vitePreload, j as ref, x as watch, an as unrefElement, ao as tryOnScopeDispose, d as defineComponent, G as shallowRef, ap as computedAsync, h as computed, aq as useSessionStorage, ar as useLocalStorage, y as watchEffect, as as watchDebounced, k as onMounted, S as nextTick, R as onKeyStroke, a6 as useRouter, at as useEventListener, Z as useScrollLock, V as inBrowser, au as onBeforeUnmount, o as openBlock, b as createBlock, l as createBaseVNode, a2 as withModifiers, m as unref, av as withDirectives, aw as vModelText, ax as isRef, c as createElementBlock, n as normalizeClass, e as createCommentVNode, E as renderList, F as Fragment, a as createTextVNode, t as toDisplayString, ay as Teleport, p as pushScopeId, q as popScopeId, az as markRaw, aA as createApp, ac as dataSymbol, ai as pathToFile, aB as escapeRegExp, _ as _export_sfc } from "./framework.B9AX-CPi.js";
import { u as useData, c as createSearchTranslate } from "./theme.CNkOOuO0.js";
const localSearchIndex = { "root": () => __vitePreload(() => import("./@localSearchIndexroot.Bs0p5udY.js"), true ? [] : void 0) };
/*!
* tabbable 6.2.0
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
@ -2768,7 +2768,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
step((generator = generator.apply(thisArg, [])).next());
});
}
function __generator(thisArg, body) {

View File

@ -7,7 +7,7 @@
// @__NO_SIDE_EFFECTS__
function makeMap(str, expectsLowerCase) {
const set2 = new Set(str.split(","));
return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val);
return (val) => set2.has(val);
}
const EMPTY_OBJ = {};
const EMPTY_ARR = [];
@ -1906,7 +1906,7 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
const instance = currentRenderingInstance || currentInstance;
if (instance) {
const Component = instance.type;
if (type === COMPONENTS) {
{
const selfName = getComponentName(
Component,
false
@ -2760,37 +2760,34 @@ function onErrorCaptured(hook, target = currentInstance) {
}
function renderList(source, renderItem, cache, index) {
let ret;
const cached = cache && cache[index];
const cached = cache;
if (isArray(source) || isString(source)) {
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);
ret[i] = renderItem(source[i], i, void 0, cached);
}
} else if (typeof source === "number") {
ret = new Array(source);
for (let i = 0; i < source; i++) {
ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
ret[i] = renderItem(i + 1, i, void 0, cached);
}
} else if (isObject$1(source)) {
if (source[Symbol.iterator]) {
ret = Array.from(
source,
(item, i) => renderItem(item, i, void 0, cached && cached[i])
(item, i) => renderItem(item, i, void 0, cached)
);
} else {
const keys = Object.keys(source);
ret = new Array(keys.length);
for (let i = 0, l = keys.length; i < l; i++) {
const key = keys[i];
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
ret[i] = renderItem(source[key], key, i, cached);
}
}
} else {
ret = [];
}
if (cache) {
cache[index] = ret;
}
return ret;
}
function renderSlot(slots, name, props = {}, fallback, noSlotted) {
@ -2837,7 +2834,7 @@ function ensureValidVNode(vnodes) {
function toHandlers(obj, preserveCaseIfNecessary) {
const ret = {};
for (const key in obj) {
ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];
ret[/[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];
}
return ret;
}
@ -7671,7 +7668,7 @@ function pausableFilter(extendFilter = bypassFilter) {
return { isActive: readonly(isActive2), pause, resume, eventFilter };
}
function getLifeCycleTarget(target) {
return target || getCurrentInstance();
return getCurrentInstance();
}
function toRef(...args) {
if (args.length !== 1)
@ -7740,7 +7737,7 @@ function computedAsync(evaluationCallback, initialState, optionsOrRef) {
evaluating: optionsOrRef
};
} else {
options = optionsOrRef || {};
options = {};
}
const {
lazy = false,
@ -8876,7 +8873,7 @@ const seen = {};
const __vitePreload = function preload(baseModule, deps, importerUrl) {
let promise = Promise.resolve();
if (deps && deps.length > 0) {
const links = document.getElementsByTagName("link");
document.getElementsByTagName("link");
const cspNonceMeta = document.querySelector("meta[property=csp-nonce]");
const cspNonce = (cspNonceMeta == null ? void 0 : cspNonceMeta.nonce) || (cspNonceMeta == null ? void 0 : cspNonceMeta.getAttribute("nonce"));
promise = Promise.all(deps.map((dep) => {
@ -8886,15 +8883,7 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
seen[dep] = true;
const isCss = dep.endsWith(".css");
const cssSelector = isCss ? '[rel="stylesheet"]' : "";
const isBaseRelative = !!importerUrl;
if (isBaseRelative) {
for (let i = links.length - 1; i >= 0; i--) {
const link3 = links[i];
if (link3.href === dep && (!isCss || link3.rel === "stylesheet")) {
return;
}
}
} else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
return;
}
const link2 = document.createElement("link");

View File

@ -1,5 +1,5 @@
const __vite__fileDeps=["assets/chunks/VPLocalSearchBox.Zn_9PaKP.js","assets/chunks/framework.Clpp4x2N.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
import { d as defineComponent, o as openBlock, c as createElementBlock, r as renderSlot, n as normalizeClass, a as createTextVNode, t as toDisplayString, b as createBlock, w as withCtx, e as createCommentVNode, T as Transition, _ as _export_sfc, u as useData$1, i as isExternal, f as treatAsHtml, g as withBase, h as computed, j as ref, k as onMounted, l as createBaseVNode, m as unref, p as pushScopeId, q as popScopeId, s as isActive, v as useMediaQuery, x as watch, y as watchEffect, z as onUnmounted, A as watchPostEffect, B as onUpdated, C as getScrollOffset, D as resolveComponent, F as Fragment, E as renderList, G as shallowRef, H as onContentUpdated, I as createVNode, J as resolveDynamicComponent, K as EXTERNAL_URL_RE, L as useRoute, M as mergeProps, N as inject, O as useWindowSize, P as normalizeStyle, Q as onClickOutside, R as onKeyStroke, S as nextTick, U as useWindowScroll, V as inBrowser, W as readonly, X as defineAsyncComponent, Y as __vitePreload, Z as useScrollLock, $ as provide, a0 as toHandlers, a1 as withKeys, a2 as withModifiers, a3 as useSlots, a4 as reactive, a5 as toRef, a6 as useRouter, a7 as onBeforeMount } from "./framework.Clpp4x2N.js";
const __vite__fileDeps=["assets/chunks/VPLocalSearchBox.DOZjjyMj.js","assets/chunks/framework.B9AX-CPi.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
import { d as defineComponent, o as openBlock, c as createElementBlock, r as renderSlot, n as normalizeClass, a as createTextVNode, t as toDisplayString, b as createBlock, w as withCtx, e as createCommentVNode, T as Transition, _ as _export_sfc, u as useData$1, i as isExternal, f as treatAsHtml, g as withBase, h as computed, j as ref, k as onMounted, l as createBaseVNode, m as unref, p as pushScopeId, q as popScopeId, s as isActive, v as useMediaQuery, x as watch, y as watchEffect, z as onUnmounted, A as watchPostEffect, B as onUpdated, C as getScrollOffset, D as resolveComponent, F as Fragment, E as renderList, G as shallowRef, H as onContentUpdated, I as createVNode, J as resolveDynamicComponent, K as EXTERNAL_URL_RE, L as useRoute, M as mergeProps, N as inject, O as useWindowSize, P as normalizeStyle, Q as onClickOutside, R as onKeyStroke, S as nextTick, U as useWindowScroll, V as inBrowser, W as readonly, X as defineAsyncComponent, Y as __vitePreload, Z as useScrollLock, $ as provide, a0 as toHandlers, a1 as withKeys, a2 as withModifiers, a3 as useSlots, a4 as reactive, a5 as toRef, a6 as useRouter, a7 as onBeforeMount } from "./framework.B9AX-CPi.js";
const _sfc_main$Z = /* @__PURE__ */ defineComponent({
__name: "VPBadge",
props: {
@ -2225,7 +2225,7 @@ const _hoisted_3$6 = {
const _sfc_main$l = /* @__PURE__ */ defineComponent({
__name: "VPNavBarSearch",
setup(__props) {
const VPLocalSearchBox = defineAsyncComponent(() => __vitePreload(() => import("./VPLocalSearchBox.Zn_9PaKP.js"), true ? __vite__mapDeps([0,1]) : void 0));
const VPLocalSearchBox = defineAsyncComponent(() => __vitePreload(() => import("./VPLocalSearchBox.DOZjjyMj.js"), true ? __vite__mapDeps([0,1]) : void 0));
const VPAlgoliaSearchBox = () => null;
const { theme: theme2 } = useData();
const loaded = ref(false);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK CLI","description":"","frontmatter":{},"headers":[],"relativePath":"cli.md","filePath":"cli.md"}');
const _sfc_main = { name: "cli.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="qmk-cli" tabindex="-1">QMK CLI <a class="header-anchor" href="#qmk-cli" aria-label="Permalink to &quot;QMK CLI {#qmk-cli}&quot;"></a></h1><h2 id="overview" tabindex="-1">Overview <a class="header-anchor" href="#overview" aria-label="Permalink to &quot;Overview {#overview}&quot;"></a></h2><p>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.</p><h3 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements {#requirements}&quot;"></a></h3><p>QMK requires Python 3.7 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in <a href="https://github.com/qmk/qmk_firmware/blob/master/requirements.txt" target="_blank" rel="noreferrer"><code>requirements.txt</code></a>. These are installed automatically when you install the QMK CLI.</p><h3 id="install-using-homebrew" tabindex="-1">Install Using Homebrew (macOS, some Linux) <a class="header-anchor" href="#install-using-homebrew" aria-label="Permalink to &quot;Install Using Homebrew (macOS, some Linux) {#install-using-homebrew}&quot;"></a></h3><p>If you have installed <a href="https://brew.sh" target="_blank" rel="noreferrer">Homebrew</a> you can tap and install QMK:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>brew install qmk/qmk/qmk</span></span>\n<span class="line"><span>export QMK_HOME=&#39;~/qmk_firmware&#39; # Optional, set the location for `qmk_firmware`</span></span>\n<span class="line"><span>qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment</span></span></code></pre></div><h3 id="install-using-easy_install-or-pip" tabindex="-1">Install Using pip <a class="header-anchor" href="#install-using-easy_install-or-pip" aria-label="Permalink to &quot;Install Using pip {#install-using-easy_install-or-pip}&quot;"></a></h3><p>If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>python3 -m pip install qmk</span></span>\n<span class="line"><span>export QMK_HOME=&#39;~/qmk_firmware&#39; # Optional, set the location for `qmk_firmware`</span></span>\n<span class="line"><span>qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment</span></span></code></pre></div><h3 id="packaging-for-other-operating-systems" tabindex="-1">Packaging For Other Operating Systems <a class="header-anchor" href="#packaging-for-other-operating-systems" aria-label="Permalink to &quot;Packaging For Other Operating Systems {#packaging-for-other-operating-systems}&quot;"></a></h3><p>We are looking for people to create and maintain a <code>qmk</code> package for more operating systems. If you would like to create a package for your OS please follow these guidelines:</p><ul><li>Follow best practices for your OS when they conflict with these guidelines <ul><li>Document why in a comment when you do deviate</li></ul></li><li>Install using a virtualenv</li><li>Instruct the user to set the environment variable <code>QMK_HOME</code> to have the firmware source checked out somewhere other than <code>~/qmk_firmware</code>.</li></ul>', 14);

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK CLI","description":"","frontmatter":{},"headers":[],"relativePath":"cli.md","filePath":"cli.md"}');
const _sfc_main = { name: "cli.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 14);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK CLI Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli_commands.md","filePath":"cli_commands.md"}');
const _sfc_main = { name: "cli_commands.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 296);

Some files were not shown because too many files have changed in this diff Show More