Deploying to gh-pages from @ qmk/qmk_firmware@ea3a968510 🚀

This commit is contained in:
QMK Bot 2025-01-29 19:22:29 +00:00
parent 3eedb5b5ec
commit 8c9c8a0988
600 changed files with 1904 additions and 2042 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

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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2019 Aug 30","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20190830.md","filePath":"ChangeLog/20190830.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 Feb 29 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20200229.md","filePath":"ChangeLog/20200229.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 May 30 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20200530.md","filePath":"ChangeLog/20200530.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 Aug 29 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20200829.md","filePath":"ChangeLog/20200829.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Change - 2020 Nov 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20201128.md","filePath":"ChangeLog/20201128.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 February 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20210227.md","filePath":"ChangeLog/20210227.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 May 29 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20210529.md","filePath":"ChangeLog/20210529.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 August 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20210828.md","filePath":"ChangeLog/20210828.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 November 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20211127.md","filePath":"ChangeLog/20211127.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 February 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20220226.md","filePath":"ChangeLog/20220226.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 May 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20220528.md","filePath":"ChangeLog/20220528.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 August 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20220827.md","filePath":"ChangeLog/20220827.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 November 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20221126.md","filePath":"ChangeLog/20221126.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 February 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20230226.md","filePath":"ChangeLog/20230226.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 May 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20230528.md","filePath":"ChangeLog/20230528.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 Aug 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20230827.md","filePath":"ChangeLog/20230827.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 November 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20231126.md","filePath":"ChangeLog/20231126.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 February 25 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20240225.md","filePath":"ChangeLog/20240225.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 May 26 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20240526.md","filePath":"ChangeLog/20240526.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 August 25 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20240825.md","filePath":"ChangeLog/20240825.md","lastUpdated":null}');
const _sfc_main = { name: "ChangeLog/20240825.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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 November 24 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20241124.md","filePath":"ChangeLog/20241124.md","lastUpdated":null}');
const _sfc_main = { name: "ChangeLog/20241124.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 31);

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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode, a as createTextVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"Development Environment Setup","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_environment.md","filePath":"api_development_environment.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode, a as createTextVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"Development Environment Setup","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_environment.md","filePath":"api_development_environment.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Compiler Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_overview.md","filePath":"api_development_overview.md","lastUpdated":null}');
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 moving 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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK Compiler Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"api_development_overview.md","filePath":"api_development_overview.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK API","description":"","frontmatter":{},"headers":[],"relativePath":"api_docs.md","filePath":"api_docs.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK API","description":"","frontmatter":{},"headers":[],"relativePath":"api_overview.md","filePath":"api_overview.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK API","description":"","frontmatter":{},"headers":[],"relativePath":"api_overview.md","filePath":"api_overview.md","lastUpdated":null}');
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.CsZ9EjsB.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";
import { R as RawTheme } from "./chunks/theme.ouUNvEiJ.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.Cauyuiy8.js";
function resolveThemeExtends(theme) {
if (theme.extends) {
const base = resolveThemeExtends(theme.extends);
@ -83,8 +83,7 @@ function newRouter() {
if (isInitialPageLoad || initialPath === pageFilePath) {
pageFilePath = pageFilePath.replace(/\.js$/, ".lean.js");
}
if (false)
;
if (false) ;
else {
pageModule = import(
/*@vite-ignore*/

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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"ARM Debugging using Eclipse","description":"","frontmatter":{},"headers":[],"relativePath":"arm_debugging.md","filePath":"arm_debugging.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"Breaking Changes","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes.md","filePath":"breaking_changes.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"Past Breaking Changes","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes_history.md","filePath":"breaking_changes_history.md","lastUpdated":null}');
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/20241124">2024 Nov 24</a> - version 0.27.0</li><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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"Past Breaking Changes","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes_history.md","filePath":"breaking_changes_history.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.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","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.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","lastUpdated":null}');
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, 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";
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.Cauyuiy8.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","lastUpdated":null}');

View File

@ -1,5 +1,5 @@
import { _ as _imports_0$1 } from "./chunks/color-wheel.DIUCmfNZ.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";
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.Cauyuiy8.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","lastUpdated":null}');

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode } from "./chunks/framework.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"__capabilities_inc.md","filePath":"__capabilities_inc.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, l as createBaseVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"__capabilities_inc.md","filePath":"__capabilities_inc.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"ChibiOS Upgrade Procedure","description":"","frontmatter":{},"headers":[],"relativePath":"chibios_upgrade_instructions.md","filePath":"chibios_upgrade_instructions.md","lastUpdated":null}');
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.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"ChibiOS Upgrade Procedure","description":"","frontmatter":{},"headers":[],"relativePath":"chibios_upgrade_instructions.md","filePath":"chibios_upgrade_instructions.md","lastUpdated":null}');
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

@ -1,12 +1,9 @@
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
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.B9AX-CPi.js";
import { u as useData, c as createSearchTranslate } from "./theme.CsZ9EjsB.js";
const localSearchIndex = { "root": () => __vitePreload(() => import("./@localSearchIndexroot.BSGLvXH7.js"), true ? [] : void 0) };
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, 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.Cauyuiy8.js";
import { u as useData, c as createSearchTranslate } from "./theme.ouUNvEiJ.js";
const localSearchIndex = { "root": () => __vitePreload(() => import("./@localSearchIndexroot.CGZtxe0v.js"), true ? [] : void 0) };
/*!
* tabbable 6.2.0
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
@ -380,13 +377,11 @@ function _defineProperty(obj, key, value) {
return obj;
}
function _toPrimitive(input, hint) {
if (typeof input !== "object" || input === null)
return input;
if (typeof input !== "object" || input === null) return input;
var prim = input[Symbol.toPrimitive];
if (prim !== void 0) {
var res = prim.call(input, hint || "default");
if (typeof res !== "object")
return res;
if (typeof res !== "object") return res;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (hint === "string" ? String : Number)(input);
@ -2736,9 +2731,7 @@ var __assign = function() {
__assign = Object.assign || function __assign2(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
@ -2773,8 +2766,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() {
if (t[0] & 1)
throw t[1];
if (t[0] & 1) throw t[1];
return t[1];
}, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
@ -2786,98 +2778,85 @@ function __generator(thisArg, body) {
};
}
function step(op) {
if (f)
throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _)
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
return t;
if (y = 0, t)
op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2])
_.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
} catch (e) {
op = [6, e];
y = 0;
} finally {
f = t = 0;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2]) _.ops.pop();
_.trys.pop();
continue;
}
if (op[0] & 5)
throw op[1];
op = body.call(thisArg, _);
} catch (e) {
op = [6, e];
y = 0;
} finally {
f = t = 0;
}
if (op[0] & 5) throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m)
return m.call(o);
if (o && typeof o.length === "number")
return {
next: function() {
if (o && i >= o.length)
o = void 0;
return { value: o && o[i++], done: !o };
}
};
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function() {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m)
return o;
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
ar.push(r.value);
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} catch (error) {
e = { error };
} finally {
try {
if (r && !r.done && (m = i["return"]))
m.call(i);
if (r && !r.done && (m = i["return"])) m.call(i);
} finally {
if (e)
throw e.error;
if (e) throw e.error;
}
}
return ar;
@ -2977,48 +2956,45 @@ var recurse = function(node, query, maxDistance, results, matrix, m, n, prefix)
var e_1, _a2;
var offset = m * n;
try {
key:
for (var _b = __values(node.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
var key = _c.value;
if (key === LEAF) {
var distance = matrix[offset - 1];
if (distance <= maxDistance) {
results.set(prefix, [node.get(key), distance]);
}
} else {
var i = m;
for (var pos = 0; pos < key.length; ++pos, ++i) {
var char = key[pos];
var thisRowOffset = n * i;
var prevRowOffset = thisRowOffset - n;
var minDistance = matrix[thisRowOffset];
var jmin = Math.max(0, i - maxDistance - 1);
var jmax = Math.min(n - 1, i + maxDistance);
for (var j = jmin; j < jmax; ++j) {
var different = char !== query[j];
var rpl = matrix[prevRowOffset + j] + +different;
var del = matrix[prevRowOffset + j + 1] + 1;
var ins = matrix[thisRowOffset + j] + 1;
var dist = matrix[thisRowOffset + j + 1] = Math.min(rpl, del, ins);
if (dist < minDistance)
minDistance = dist;
}
if (minDistance > maxDistance) {
continue key;
}
}
recurse(node.get(key), query, maxDistance, results, matrix, i, n, prefix + key);
key: for (var _b = __values(node.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
var key = _c.value;
if (key === LEAF) {
var distance = matrix[offset - 1];
if (distance <= maxDistance) {
results.set(prefix, [node.get(key), distance]);
}
} else {
var i = m;
for (var pos = 0; pos < key.length; ++pos, ++i) {
var char = key[pos];
var thisRowOffset = n * i;
var prevRowOffset = thisRowOffset - n;
var minDistance = matrix[thisRowOffset];
var jmin = Math.max(0, i - maxDistance - 1);
var jmax = Math.min(n - 1, i + maxDistance);
for (var j = jmin; j < jmax; ++j) {
var different = char !== query[j];
var rpl = matrix[prevRowOffset + j] + +different;
var del = matrix[prevRowOffset + j + 1] + 1;
var ins = matrix[thisRowOffset + j] + 1;
var dist = matrix[thisRowOffset + j + 1] = Math.min(rpl, del, ins);
if (dist < minDistance)
minDistance = dist;
}
if (minDistance > maxDistance) {
continue key;
}
}
recurse(node.get(key), query, maxDistance, results, matrix, i, n, prefix + key);
}
}
} catch (e_1_1) {
e_1 = { error: e_1_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_1)
throw e_1.error;
if (e_1) throw e_1.error;
}
}
};
@ -3057,11 +3033,9 @@ var SearchableMap = (
e_1 = { error: e_1_1 };
} finally {
try {
if (_e && !_e.done && (_a2 = _d.return))
_a2.call(_d);
if (_e && !_e.done && (_a2 = _d.return)) _a2.call(_d);
} finally {
if (e_1)
throw e_1.error;
if (e_1) throw e_1.error;
}
}
}
@ -3089,11 +3063,9 @@ var SearchableMap = (
e_2 = { error: e_2_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_2)
throw e_2.error;
if (e_2) throw e_2.error;
}
}
};
@ -3176,11 +3148,9 @@ var SearchableMap = (
e_3 = { error: e_3_1 };
} finally {
try {
if (entries_1_1 && !entries_1_1.done && (_a2 = entries_1.return))
_a2.call(entries_1);
if (entries_1_1 && !entries_1_1.done && (_a2 = entries_1.return)) _a2.call(entries_1);
} finally {
if (e_3)
throw e_3.error;
if (e_3) throw e_3.error;
}
}
return tree;
@ -3211,11 +3181,9 @@ var trackDown = function(tree, key, path) {
e_4 = { error: e_4_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_4)
throw e_4.error;
if (e_4) throw e_4.error;
}
}
path.push([tree, key]);
@ -3237,56 +3205,51 @@ var lookup = function(tree, key) {
e_5 = { error: e_5_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_5)
throw e_5.error;
if (e_5) throw e_5.error;
}
}
};
var createPath = function(node, key) {
var e_6, _a2;
var keyLength = key.length;
outer:
for (var pos = 0; node && pos < keyLength; ) {
try {
for (var _b = (e_6 = void 0, __values(node.keys())), _c = _b.next(); !_c.done; _c = _b.next()) {
var k = _c.value;
if (k !== LEAF && key[pos] === k[0]) {
var len = Math.min(keyLength - pos, k.length);
var offset = 1;
while (offset < len && key[pos + offset] === k[offset])
++offset;
var child_1 = node.get(k);
if (offset === k.length) {
node = child_1;
} else {
var intermediate = /* @__PURE__ */ new Map();
intermediate.set(k.slice(offset), child_1);
node.set(key.slice(pos, pos + offset), intermediate);
node.delete(k);
node = intermediate;
}
pos += offset;
continue outer;
outer: for (var pos = 0; node && pos < keyLength; ) {
try {
for (var _b = (e_6 = void 0, __values(node.keys())), _c = _b.next(); !_c.done; _c = _b.next()) {
var k = _c.value;
if (k !== LEAF && key[pos] === k[0]) {
var len = Math.min(keyLength - pos, k.length);
var offset = 1;
while (offset < len && key[pos + offset] === k[offset])
++offset;
var child_1 = node.get(k);
if (offset === k.length) {
node = child_1;
} else {
var intermediate = /* @__PURE__ */ new Map();
intermediate.set(k.slice(offset), child_1);
node.set(key.slice(pos, pos + offset), intermediate);
node.delete(k);
node = intermediate;
}
}
} catch (e_6_1) {
e_6 = { error: e_6_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
} finally {
if (e_6)
throw e_6.error;
pos += offset;
continue outer;
}
}
var child = /* @__PURE__ */ new Map();
node.set(key.slice(pos), child);
return child;
} catch (e_6_1) {
e_6 = { error: e_6_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_6) throw e_6.error;
}
}
var child = /* @__PURE__ */ new Map();
node.set(key.slice(pos), child);
return child;
}
return node;
};
var remove = function(tree, key) {
@ -3392,11 +3355,9 @@ var MiniSearch = (
e_3 = { error: e_3_1 };
} finally {
try {
if (processedTerm_1_1 && !processedTerm_1_1.done && (_c = processedTerm_1.return))
_c.call(processedTerm_1);
if (processedTerm_1_1 && !processedTerm_1_1.done && (_c = processedTerm_1.return)) _c.call(processedTerm_1);
} finally {
if (e_3)
throw e_3.error;
if (e_3) throw e_3.error;
}
}
} else if (processedTerm) {
@ -3407,11 +3368,9 @@ var MiniSearch = (
e_2 = { error: e_2_1 };
} finally {
try {
if (tokens_1_1 && !tokens_1_1.done && (_b = tokens_1.return))
_b.call(tokens_1);
if (tokens_1_1 && !tokens_1_1.done && (_b = tokens_1.return)) _b.call(tokens_1);
} finally {
if (e_2)
throw e_2.error;
if (e_2) throw e_2.error;
}
}
}
@ -3419,11 +3378,9 @@ var MiniSearch = (
e_1 = { error: e_1_1 };
} finally {
try {
if (fields_1_1 && !fields_1_1.done && (_a2 = fields_1.return))
_a2.call(fields_1);
if (fields_1_1 && !fields_1_1.done && (_a2 = fields_1.return)) _a2.call(fields_1);
} finally {
if (e_1)
throw e_1.error;
if (e_1) throw e_1.error;
}
}
};
@ -3438,11 +3395,9 @@ var MiniSearch = (
e_4 = { error: e_4_1 };
} finally {
try {
if (documents_1_1 && !documents_1_1.done && (_a2 = documents_1.return))
_a2.call(documents_1);
if (documents_1_1 && !documents_1_1.done && (_a2 = documents_1.return)) _a2.call(documents_1);
} finally {
if (e_4)
throw e_4.error;
if (e_4) throw e_4.error;
}
}
};
@ -3510,11 +3465,9 @@ var MiniSearch = (
e_7 = { error: e_7_1 };
} finally {
try {
if (processedTerm_2_1 && !processedTerm_2_1.done && (_c = processedTerm_2.return))
_c.call(processedTerm_2);
if (processedTerm_2_1 && !processedTerm_2_1.done && (_c = processedTerm_2.return)) _c.call(processedTerm_2);
} finally {
if (e_7)
throw e_7.error;
if (e_7) throw e_7.error;
}
}
} else if (processedTerm) {
@ -3525,11 +3478,9 @@ var MiniSearch = (
e_6 = { error: e_6_1 };
} finally {
try {
if (tokens_2_1 && !tokens_2_1.done && (_b = tokens_2.return))
_b.call(tokens_2);
if (tokens_2_1 && !tokens_2_1.done && (_b = tokens_2.return)) _b.call(tokens_2);
} finally {
if (e_6)
throw e_6.error;
if (e_6) throw e_6.error;
}
}
}
@ -3537,11 +3488,9 @@ var MiniSearch = (
e_5 = { error: e_5_1 };
} finally {
try {
if (fields_2_1 && !fields_2_1.done && (_a2 = fields_2.return))
_a2.call(fields_2);
if (fields_2_1 && !fields_2_1.done && (_a2 = fields_2.return)) _a2.call(fields_2);
} finally {
if (e_5)
throw e_5.error;
if (e_5) throw e_5.error;
}
}
this._storedFields.delete(shortId);
@ -3562,11 +3511,9 @@ var MiniSearch = (
e_8 = { error: e_8_1 };
} finally {
try {
if (documents_2_1 && !documents_2_1.done && (_a2 = documents_2.return))
_a2.call(documents_2);
if (documents_2_1 && !documents_2_1.done && (_a2 = documents_2.return)) _a2.call(documents_2);
} finally {
if (e_8)
throw e_8.error;
if (e_8) throw e_8.error;
}
}
} else if (arguments.length > 0) {
@ -3620,11 +3567,9 @@ var MiniSearch = (
e_9 = { error: e_9_1 };
} finally {
try {
if (ids_1_1 && !ids_1_1.done && (_a2 = ids_1.return))
_a2.call(ids_1);
if (ids_1_1 && !ids_1_1.done && (_a2 = ids_1.return)) _a2.call(ids_1);
} finally {
if (e_9)
throw e_9.error;
if (e_9) throw e_9.error;
}
}
} finally {
@ -3672,8 +3617,7 @@ var MiniSearch = (
switch (_j.label) {
case 0:
initialDirtCount = this._dirtCount;
if (!this.vacuumConditionsMet(conditions))
return [3, 10];
if (!this.vacuumConditionsMet(conditions)) return [3, 10];
batchSize = options.batchSize || defaultVacuumOptions.batchSize;
batchWait_1 = options.batchWait || defaultVacuumOptions.batchWait;
i = 1;
@ -3683,8 +3627,7 @@ var MiniSearch = (
_a2 = __values(this._index), _b = _a2.next();
_j.label = 2;
case 2:
if (!!_b.done)
return [3, 6];
if (!!_b.done) return [3, 6];
_c = __read(_b.value, 2), term = _c[0], fieldsData = _c[1];
try {
for (fieldsData_1 = (e_11 = void 0, __values(fieldsData)), fieldsData_1_1 = fieldsData_1.next(); !fieldsData_1_1.done; fieldsData_1_1 = fieldsData_1.next()) {
@ -3705,11 +3648,9 @@ var MiniSearch = (
e_12 = { error: e_12_1 };
} finally {
try {
if (fieldIndex_1_1 && !fieldIndex_1_1.done && (_h = fieldIndex_1.return))
_h.call(fieldIndex_1);
if (fieldIndex_1_1 && !fieldIndex_1_1.done && (_h = fieldIndex_1.return)) _h.call(fieldIndex_1);
} finally {
if (e_12)
throw e_12.error;
if (e_12) throw e_12.error;
}
}
}
@ -3717,18 +3658,15 @@ var MiniSearch = (
e_11 = { error: e_11_1 };
} finally {
try {
if (fieldsData_1_1 && !fieldsData_1_1.done && (_g = fieldsData_1.return))
_g.call(fieldsData_1);
if (fieldsData_1_1 && !fieldsData_1_1.done && (_g = fieldsData_1.return)) _g.call(fieldsData_1);
} finally {
if (e_11)
throw e_11.error;
if (e_11) throw e_11.error;
}
}
if (this._index.get(term).size === 0) {
this._index.delete(term);
}
if (!(i % batchSize === 0))
return [3, 4];
if (!(i % batchSize === 0)) return [3, 4];
return [4, new Promise(function(resolve) {
return setTimeout(resolve, batchWait_1);
})];
@ -3749,11 +3687,9 @@ var MiniSearch = (
return [3, 9];
case 8:
try {
if (_b && !_b.done && (_f = _a2.return))
_f.call(_a2);
if (_b && !_b.done && (_f = _a2.return)) _f.call(_a2);
} finally {
if (e_10)
throw e_10.error;
if (e_10) throw e_10.error;
}
return [
7
@ -3856,11 +3792,9 @@ var MiniSearch = (
e_13 = { error: e_13_1 };
} finally {
try {
if (rawResults_1_1 && !rawResults_1_1.done && (_a2 = rawResults_1.return))
_a2.call(rawResults_1);
if (rawResults_1_1 && !rawResults_1_1.done && (_a2 = rawResults_1.return)) _a2.call(rawResults_1);
} finally {
if (e_13)
throw e_13.error;
if (e_13) throw e_13.error;
}
}
if (query === MiniSearch2.wildcard && searchOptions.boostDocument == null && this._options.searchOptions.boostDocument == null) {
@ -3892,11 +3826,9 @@ var MiniSearch = (
e_14 = { error: e_14_1 };
} finally {
try {
if (_d && !_d.done && (_a2 = _c.return))
_a2.call(_c);
if (_d && !_d.done && (_a2 = _c.return)) _a2.call(_c);
} finally {
if (e_14)
throw e_14.error;
if (e_14) throw e_14.error;
}
}
var results = [];
@ -3909,11 +3841,9 @@ var MiniSearch = (
e_15 = { error: e_15_1 };
} finally {
try {
if (suggestions_1_1 && !suggestions_1_1.done && (_b = suggestions_1.return))
_b.call(suggestions_1);
if (suggestions_1_1 && !suggestions_1_1.done && (_b = suggestions_1.return)) _b.call(suggestions_1);
} finally {
if (e_15)
throw e_15.error;
if (e_15) throw e_15.error;
}
}
results.sort(byScore);
@ -3978,11 +3908,9 @@ var MiniSearch = (
e_16 = { error: e_16_1 };
} finally {
try {
if (_e && !_e.done && (_a2 = _d.return))
_a2.call(_d);
if (_e && !_e.done && (_a2 = _d.return)) _a2.call(_d);
} finally {
if (e_16)
throw e_16.error;
if (e_16) throw e_16.error;
}
}
try {
@ -4002,11 +3930,9 @@ var MiniSearch = (
e_18 = { error: e_18_1 };
} finally {
try {
if (_j && !_j.done && (_c = _h.return))
_c.call(_h);
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
} finally {
if (e_18)
throw e_18.error;
if (e_18) throw e_18.error;
}
}
miniSearch._index.set(term, dataMap);
@ -4015,11 +3941,9 @@ var MiniSearch = (
e_17 = { error: e_17_1 };
} finally {
try {
if (index_1_1 && !index_1_1.done && (_b = index_1.return))
_b.call(index_1);
if (index_1_1 && !index_1_1.done && (_b = index_1.return)) _b.call(index_1);
} finally {
if (e_17)
throw e_17.error;
if (e_17) throw e_17.error;
}
}
return miniSearch;
@ -4091,11 +4015,9 @@ var MiniSearch = (
e_19 = { error: e_19_1 };
} finally {
try {
if (prefixMatches_1_1 && !prefixMatches_1_1.done && (_a2 = prefixMatches_1.return))
_a2.call(prefixMatches_1);
if (prefixMatches_1_1 && !prefixMatches_1_1.done && (_a2 = prefixMatches_1.return)) _a2.call(prefixMatches_1);
} finally {
if (e_19)
throw e_19.error;
if (e_19) throw e_19.error;
}
}
}
@ -4114,11 +4036,9 @@ var MiniSearch = (
e_20 = { error: e_20_1 };
} finally {
try {
if (_f && !_f.done && (_b = _e.return))
_b.call(_e);
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
} finally {
if (e_20)
throw e_20.error;
if (e_20) throw e_20.error;
}
}
}
@ -4142,11 +4062,9 @@ var MiniSearch = (
e_21 = { error: e_21_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_21)
throw e_21.error;
if (e_21) throw e_21.error;
}
}
return results;
@ -4177,11 +4095,9 @@ var MiniSearch = (
e_23 = { error: e_23_1 };
} finally {
try {
if (fieldIndex_2_1 && !fieldIndex_2_1.done && (_b = fieldIndex_2.return))
_b.call(fieldIndex_2);
if (fieldIndex_2_1 && !fieldIndex_2_1.done && (_b = fieldIndex_2.return)) _b.call(fieldIndex_2);
} finally {
if (e_23)
throw e_23.error;
if (e_23) throw e_23.error;
}
}
index.push([term, data]);
@ -4190,11 +4106,9 @@ var MiniSearch = (
e_22 = { error: e_22_1 };
} finally {
try {
if (_d && !_d.done && (_a2 = _c.return))
_a2.call(_c);
if (_d && !_d.done && (_a2 = _c.return)) _a2.call(_c);
} finally {
if (e_22)
throw e_22.error;
if (e_22) throw e_22.error;
}
}
return {
@ -4264,11 +4178,9 @@ var MiniSearch = (
e_25 = { error: e_25_1 };
} finally {
try {
if (_g && !_g.done && (_b = _f.return))
_b.call(_f);
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
} finally {
if (e_25)
throw e_25.error;
if (e_25) throw e_25.error;
}
}
}
@ -4276,11 +4188,9 @@ var MiniSearch = (
e_24 = { error: e_24_1 };
} finally {
try {
if (_e && !_e.done && (_a2 = _d.return))
_a2.call(_d);
if (_e && !_e.done && (_a2 = _d.return)) _a2.call(_d);
} finally {
if (e_24)
throw e_24.error;
if (e_24) throw e_24.error;
}
}
return results;
@ -4333,11 +4243,9 @@ var MiniSearch = (
e_26 = { error: e_26_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_26)
throw e_26.error;
if (e_26) throw e_26.error;
}
}
};
@ -4391,11 +4299,9 @@ var MiniSearch = (
e_27 = { error: e_27_1 };
} finally {
try {
if (storeFields_1_1 && !storeFields_1_1.done && (_a2 = storeFields_1.return))
_a2.call(storeFields_1);
if (storeFields_1_1 && !storeFields_1_1.done && (_a2 = storeFields_1.return)) _a2.call(storeFields_1);
} finally {
if (e_27)
throw e_27.error;
if (e_27) throw e_27.error;
}
}
};
@ -4425,11 +4331,9 @@ var combinators = (_a = {}, _a[OR] = function(a, b) {
e_28 = { error: e_28_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_28)
throw e_28.error;
if (e_28) throw e_28.error;
}
}
return a;
@ -4454,11 +4358,9 @@ var combinators = (_a = {}, _a[OR] = function(a, b) {
e_29 = { error: e_29_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_29)
throw e_29.error;
if (e_29) throw e_29.error;
}
}
return combined;
@ -4473,11 +4375,9 @@ var combinators = (_a = {}, _a[OR] = function(a, b) {
e_30 = { error: e_30_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_30)
throw e_30.error;
if (e_30) throw e_30.error;
}
}
return a;
@ -4549,11 +4449,9 @@ var assignUniqueTerms = function(target, source) {
e_31 = { error: e_31_1 };
} finally {
try {
if (source_1_1 && !source_1_1.done && (_a2 = source_1.return))
_a2.call(source_1);
if (source_1_1 && !source_1_1.done && (_a2 = source_1.return)) _a2.call(source_1);
} finally {
if (e_31)
throw e_31.error;
if (e_31) throw e_31.error;
}
}
};
@ -4577,11 +4475,9 @@ var objectToNumericMap = function(object) {
e_32 = { error: e_32_1 };
} finally {
try {
if (_c && !_c.done && (_a2 = _b.return))
_a2.call(_b);
if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_32)
throw e_32.error;
if (e_32) throw e_32.error;
}
}
return map;
@ -4754,8 +4650,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
enableNoResults.value = false;
});
const mark = computedAsync(async () => {
if (!resultsEl.value)
return;
if (!resultsEl.value) return;
return markRaw(new Mark2(resultsEl.value));
}, null);
const cache = new LRUCache(16);
@ -4770,18 +4665,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
onCleanup(() => {
canceled = true;
});
if (!index)
return;
if (!index) return;
results.value = index.search(filterTextValue).slice(0, 16);
enableNoResults.value = true;
const mods = showDetailedListValue ? await Promise.all(results.value.map((r) => fetchExcerpt(r.id))) : [];
if (canceled)
return;
if (canceled) return;
for (const { id, mod } of mods) {
const mapId = id.slice(0, id.indexOf("#"));
let map = cache.get(mapId);
if (map)
continue;
if (map) continue;
map = /* @__PURE__ */ new Map();
cache.set(mapId, map);
const comp = mod.default ?? mod;
@ -4809,8 +4701,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
var _a4;
const href = (_a4 = el2.querySelector("a")) == null ? void 0 : _a4.getAttribute("href");
const anchor = (href == null ? void 0 : href.startsWith("#")) && href.slice(1);
if (!anchor)
return;
if (!anchor) return;
let html = "";
while ((el2 = el2.nextElementSibling) && !/^h[1-6]$/i.test(el2.tagName))
html += el2.outerHTML;
@ -4818,8 +4709,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
});
app.unmount();
}
if (canceled)
return;
if (canceled) return;
}
const terms = /* @__PURE__ */ new Set();
results.value = results.value.map((r) => {
@ -4832,8 +4722,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
return { ...r, text };
});
await nextTick();
if (canceled)
return;
if (canceled) return;
await new Promise((r) => {
var _a4;
(_a4 = mark.value) == null ? void 0 : _a4.unmark({
@ -4854,8 +4743,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
async function fetchExcerpt(id) {
const file = pathToFile(id.slice(0, id.indexOf("#")));
try {
if (!file)
throw new Error(`Cannot find file for id: ${id}`);
if (!file) throw new Error(`Cannot find file for id: ${id}`);
return { id, mod: await import(
/*@vite-ignore*/
file
@ -4919,8 +4807,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
});
const router = useRouter();
onKeyStroke("Enter", (e) => {
if (e.isComposing)
return;
if (e.isComposing) return;
if (e.target instanceof HTMLButtonElement && e.target.type !== "submit")
return;
const selectedPackage = results.value[selectedIndex.value];

View File

@ -1543,8 +1543,7 @@ function flushJobs(seen2) {
for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job && job.active !== false) {
if (false)
;
if (false) ;
callWithErrorHandling(job, null, 14);
}
}
@ -1747,8 +1746,7 @@ function renderComponentRoot(instance) {
fallthroughAttrs = attrs;
} else {
const render2 = Component;
if (false)
;
if (false) ;
result = normalizeVNode(
render2.length > 1 ? render2(
false ? shallowReadonly(props) : props,
@ -2002,8 +2000,7 @@ function doWatch(source, cb, {
return reactiveGetter(s);
} else if (isFunction(s)) {
return callWithErrorHandling(s, instance, 2);
} else
;
} else ;
});
} else if (isFunction(source)) {
if (cb) {
@ -2931,8 +2928,7 @@ const PublicInstanceProxyHandlers = {
{
return globalProperties[key];
}
} else
;
} else ;
},
set({ _: instance }, key, value) {
const { data, setupState, ctx } = instance;
@ -3040,8 +3036,7 @@ function applyOptions(instance) {
}
if (dataOptions) {
const data = dataOptions.call(publicThis, publicThis);
if (!isObject$1(data))
;
if (!isObject$1(data)) ;
else {
instance.data = reactive(data);
}
@ -3178,8 +3173,7 @@ function createWatcher(raw, ctx, publicThis, key) {
watch(getter, handler, raw);
}
}
} else
;
} else ;
}
function resolveMergedOptions(instance) {
const base = instance.type;
@ -3222,8 +3216,7 @@ function mergeOptions(to, from, strats, asMixin = false) {
);
}
for (const key in from) {
if (asMixin && key === "expose")
;
if (asMixin && key === "expose") ;
else {
const strat = internalOptionMergeStrats[key] || strats && strats[key];
to[key] = strat ? strat(to[key], from[key]) : from[key];
@ -3367,16 +3360,14 @@ function createAppAPI(render, hydrate) {
set config(v) {
},
use(plugin, ...options) {
if (installedPlugins.has(plugin))
;
if (installedPlugins.has(plugin)) ;
else if (plugin && isFunction(plugin.install)) {
installedPlugins.add(plugin);
plugin.install(app, ...options);
} else if (isFunction(plugin)) {
installedPlugins.add(plugin);
plugin(app, ...options);
} else
;
} else ;
return app;
},
mixin(mixin) {
@ -3446,8 +3437,7 @@ function createAppAPI(render, hydrate) {
}
let currentApp = null;
function provide(key, value) {
if (!currentInstance)
;
if (!currentInstance) ;
else {
let provides = currentInstance.provides;
const parentProvides = currentInstance.parent && currentInstance.parent.provides;
@ -3465,8 +3455,7 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
return provides[key];
} else if (arguments.length > 1) {
return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
} else
;
} else ;
}
}
const internalObjectProto = /* @__PURE__ */ Object.create(null);
@ -3769,8 +3758,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot;
}
const normalized = withCtx((...args) => {
if (false)
;
if (false) ;
return normalizeSlotValue(rawSlot(...args));
}, ctx);
normalized._c = false;
@ -3908,8 +3896,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
ref3.value = value;
if (rawRef.k)
refs[rawRef.k] = value;
} else
;
} else ;
};
if (value) {
doSet.id = -1;
@ -4595,8 +4582,7 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized,
internals
);
} else
;
} else ;
}
if (ref3 != null && parentComponent) {
setRef(ref3, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
@ -6606,7 +6592,7 @@ function setupStatefulComponent(instance, isSSR) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) {
return setupResult.then((resolvedResult) => {
handleSetupResult(instance, resolvedResult, isSSR);
handleSetupResult(instance, resolvedResult);
}).catch((e) => {
handleError(e, instance, 0);
});
@ -6614,10 +6600,10 @@ function setupStatefulComponent(instance, isSSR) {
instance.asyncDep = setupResult;
}
} else {
handleSetupResult(instance, setupResult, isSSR);
handleSetupResult(instance, setupResult);
}
} else {
finishComponentSetup(instance, isSSR);
finishComponentSetup(instance);
}
}
function handleSetupResult(instance, setupResult, isSSR) {
@ -6629,32 +6615,12 @@ function handleSetupResult(instance, setupResult, isSSR) {
}
} else if (isObject$1(setupResult)) {
instance.setupState = proxyRefs(setupResult);
} else
;
finishComponentSetup(instance, isSSR);
} else ;
finishComponentSetup(instance);
}
let compile;
function finishComponentSetup(instance, isSSR, skipOptions) {
const Component = instance.type;
if (!instance.render) {
if (!isSSR && compile && !Component.render) {
const template = Component.template || resolveMergedOptions(instance).template;
if (template) {
const { isCustomElement, compilerOptions } = instance.appContext.config;
const { delimiters, compilerOptions: componentCompilerOptions } = Component;
const finalCompilerOptions = extend(
extend(
{
isCustomElement,
delimiters
},
compilerOptions
),
componentCompilerOptions
);
Component.render = compile(template, finalCompilerOptions);
}
}
instance.render = Component.render || NOOP;
}
{
@ -8446,7 +8412,7 @@ function useWindowSize(options = {}) {
}
return { width, height };
}
var define_import_meta_env_default = { BASE_URL: "/", MODE: "production", DEV: false, PROD: true, SSR: false };
const __vite_import_meta_env__ = { "BASE_URL": "/", "DEV": false, "MODE": "production", "PROD": true, "SSR": false };
var define_process_env_default = {};
const EXTERNAL_URL_RE = /^(?:[a-z]+:|\/\/)/i;
const APPEARANCE_KEY = "vitepress-theme-appearance";
@ -8550,7 +8516,7 @@ function sanitizeFileName(name) {
const KNOWN_EXTENSIONS = /* @__PURE__ */ new Set();
function treatAsHtml(filename) {
if (KNOWN_EXTENSIONS.size === 0) {
const extraExts = typeof process === "object" && (define_process_env_default == null ? void 0 : define_process_env_default.VITE_EXTRA_EXTENSIONS) || (define_import_meta_env_default == null ? void 0 : define_import_meta_env_default.VITE_EXTRA_EXTENSIONS) || "";
const extraExts = typeof process === "object" && (define_process_env_default == null ? void 0 : define_process_env_default.VITE_EXTRA_EXTENSIONS) || (__vite_import_meta_env__ == null ? void 0 : __vite_import_meta_env__.VITE_EXTRA_EXTENSIONS) || "";
("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip" + (extraExts && typeof extraExts === "string" ? "," + extraExts : "")).split(",").forEach((ext2) => KNOWN_EXTENSIONS.add(ext2));
}
const ext = filename.split(".").pop();
@ -8874,44 +8840,59 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
let promise = Promise.resolve();
if (deps && deps.length > 0) {
document.getElementsByTagName("link");
const cspNonceMeta = document.querySelector("meta[property=csp-nonce]");
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) => {
dep = assetsURL(dep);
if (dep in seen)
return;
seen[dep] = true;
const isCss = dep.endsWith(".css");
const cssSelector = isCss ? '[rel="stylesheet"]' : "";
if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
return;
}
const link2 = document.createElement("link");
link2.rel = isCss ? "stylesheet" : scriptRel;
if (!isCss) {
link2.as = "script";
promise = Promise.allSettled(
deps.map((dep) => {
dep = assetsURL(dep);
if (dep in seen) return;
seen[dep] = true;
const isCss = dep.endsWith(".css");
const cssSelector = isCss ? '[rel="stylesheet"]' : "";
if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
return;
}
const link2 = document.createElement("link");
link2.rel = isCss ? "stylesheet" : scriptRel;
if (!isCss) {
link2.as = "script";
}
link2.crossOrigin = "";
}
link2.href = dep;
if (cspNonce) {
link2.setAttribute("nonce", cspNonce);
}
document.head.appendChild(link2);
if (isCss) {
return new Promise((res, rej) => {
link2.addEventListener("load", res);
link2.addEventListener("error", () => rej(new Error(`Unable to preload CSS for ${dep}`)));
});
}
}));
link2.href = dep;
if (cspNonce) {
link2.setAttribute("nonce", cspNonce);
}
document.head.appendChild(link2);
if (isCss) {
return new Promise((res, rej) => {
link2.addEventListener("load", res);
link2.addEventListener(
"error",
() => rej(new Error(`Unable to preload CSS for ${dep}`))
);
});
}
})
);
}
return promise.then(() => baseModule()).catch((err) => {
const e = new Event("vite:preloadError", { cancelable: true });
function handlePreloadError(err) {
const e = new Event("vite:preloadError", {
cancelable: true
});
e.payload = err;
window.dispatchEvent(e);
if (!e.defaultPrevented) {
throw err;
}
}
return promise.then((res) => {
for (const item of res || []) {
if (item.status !== "rejected") continue;
handlePreloadError(item.reason);
}
return baseModule().catch(handlePreloadError);
});
};
const ClientOnly = /* @__PURE__ */ defineComponent({

View File

@ -1,5 +1,5 @@
const __vite__fileDeps=["assets/chunks/VPLocalSearchBox.BSpt2ruj.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 __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CRBlJl53.js","assets/chunks/framework.Cauyuiy8.js"])))=>i.map(i=>d[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.Cauyuiy8.js";
const _sfc_main$Z = /* @__PURE__ */ defineComponent({
__name: "VPBadge",
props: {
@ -364,22 +364,21 @@ function resolveHeaders(headers, range) {
resolvedHeaders.push({ element, link });
}
const ret = [];
outer:
for (let i = 0; i < headers.length; i++) {
const cur = headers[i];
if (i === 0) {
ret.push(cur);
} else {
for (let j = i - 1; j >= 0; j--) {
const prev = headers[j];
if (prev.level < cur.level) {
(prev.children || (prev.children = [])).push(cur);
continue outer;
}
outer: for (let i = 0; i < headers.length; i++) {
const cur = headers[i];
if (i === 0) {
ret.push(cur);
} else {
for (let j = i - 1; j >= 0; j--) {
const prev = headers[j];
if (prev.level < cur.level) {
(prev.children || (prev.children = [])).push(cur);
continue outer;
}
ret.push(cur);
}
ret.push(cur);
}
}
return ret;
}
function useActiveAnchor(container, marker) {
@ -1903,8 +1902,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
setup(__props) {
const props = __props;
const svg = computed(() => {
if (typeof props.icon === "object")
return props.icon.svg;
if (typeof props.icon === "object") return props.icon.svg;
return `<span class="vpi-social-${props.icon}" />`;
});
return (_ctx, _cache) => {
@ -2225,7 +2223,7 @@ const _hoisted_3$6 = {
const _sfc_main$l = /* @__PURE__ */ defineComponent({
__name: "VPNavBarSearch",
setup(__props) {
const VPLocalSearchBox = defineAsyncComponent(() => __vitePreload(() => import("./VPLocalSearchBox.BSpt2ruj.js"), true ? __vite__mapDeps([0,1]) : void 0));
const VPLocalSearchBox = defineAsyncComponent(() => __vitePreload(() => import("./VPLocalSearchBox.CRBlJl53.js"), true ? __vite__mapDeps([0,1]) : void 0));
const VPAlgoliaSearchBox = () => null;
const { theme: theme2 } = useData();
const loaded = ref(false);
@ -2943,8 +2941,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
if (props.open) {
isLocked.value = true;
(_a = navEl.value) == null ? void 0 : _a.focus();
} else
isLocked.value = false;
} else isLocked.value = false;
},
{ immediate: true, flush: "post" }
);
@ -3173,8 +3170,7 @@ const useStabilizeScrollPosition = (targetEle) => {
const stabilizeScrollPosition = (func) => async (...args) => {
const result = func(...args);
const eleVal = targetEle.value;
if (!eleVal)
return result;
if (!eleVal) return result;
const offset = eleVal.offsetTop - scrollableEleVal.scrollTop;
await nextTick();
scrollableEleVal.scrollTop = eleVal.offsetTop - offset;
@ -3196,8 +3192,7 @@ const getLocalStorageValue = () => {
return {};
};
const setLocalStorageValue = (v) => {
if (!ls)
return;
if (!ls) return;
ls.setItem(localStorageKey, JSON.stringify(v));
};
const provideTabsSharedState = (app) => {

View File

@ -1,4 +1,4 @@
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Cauyuiy8.js";
const __pageData = JSON.parse('{"title":"QMK CLI","description":"","frontmatter":{},"headers":[],"relativePath":"cli.md","filePath":"cli.md","lastUpdated":null}');
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);

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