Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

7
doc/api_assets/README.md Normal file
View File

@ -0,0 +1,7 @@
# API documentation assets
* [`api.js`](./api.js): This file contains all the JavaScript used throughout the documentation.
* [`hljs.css`](./hljs.css): This CSS file is used for syntax highlighting styles in code blocks.
* [`js-flavor-cjs.svg`](./js-flavor-cjs.svg): This SVG image represents the toggle between ESM and CJS (_CJS_)
* [`js-flavor-esm.svg`](./js-flavor-esm.svg): This SVG image represents the toggle between ESM and CJS (_ESM_)
* [`style.css`](./style.css): This CSS file contains the styling rules for the overall appearance of the API documentation.

216
doc/api_assets/api.js Normal file
View File

@ -0,0 +1,216 @@
'use strict';
{
function setupTheme() {
const storedTheme = localStorage.getItem('theme');
const themeToggleButton = document.getElementById('theme-toggle-btn');
// Follow operating system theme preference
if (storedTheme === null && window.matchMedia) {
const mq = window.matchMedia('(prefers-color-scheme: dark)');
if ('onchange' in mq) {
function mqChangeListener(e) {
document.documentElement.classList.toggle('dark-mode', e.matches);
}
mq.addEventListener('change', mqChangeListener);
if (themeToggleButton) {
themeToggleButton.addEventListener(
'click',
function() {
mq.removeEventListener('change', mqChangeListener);
},
{ once: true },
);
}
}
}
if (themeToggleButton) {
themeToggleButton.hidden = false;
themeToggleButton.addEventListener('click', function() {
localStorage.setItem(
'theme',
document.documentElement.classList.toggle('dark-mode') ? 'dark' : 'light',
);
});
}
}
function setupPickers() {
function closeAllPickers() {
for (const picker of pickers) {
picker.parentNode.classList.remove('expanded');
picker.ariaExpanded = false;
}
window.removeEventListener('click', closeAllPickers);
window.removeEventListener('keydown', onKeyDown);
}
function onKeyDown(e) {
if (e.key === 'Escape') {
closeAllPickers();
}
}
const pickers = document.querySelectorAll('.picker-header > a');
for (const picker of pickers) {
const parentNode = picker.parentNode;
picker.ariaExpanded = parentNode.classList.contains('expanded');
picker.addEventListener('click', function(e) {
e.preventDefault();
/*
closeAllPickers as window event trigger already closed all the pickers,
if it already closed there is nothing else to do here
*/
if (picker.ariaExpanded === 'true') {
return;
}
/*
In the next frame reopen the picker if needed and also setup events
to close pickers if needed.
*/
requestAnimationFrame(function() {
picker.ariaExpanded = true;
parentNode.classList.add('expanded');
window.addEventListener('click', closeAllPickers);
window.addEventListener('keydown', onKeyDown);
parentNode.querySelector('.picker a').focus();
});
});
}
}
function setupStickyHeaders() {
const header = document.querySelector('.header');
let ignoreNextIntersection = false;
new IntersectionObserver(
function(e) {
const currentStatus = header.classList.contains('is-pinned');
const newStatus = e[0].intersectionRatio < 1;
// Same status, do nothing
if (currentStatus === newStatus) {
return;
} else if (ignoreNextIntersection) {
ignoreNextIntersection = false;
return;
}
/*
To avoid flickering, ignore the next changes event that is triggered
as the visible elements in the header change once we pin it.
The timer is reset anyway after few milliseconds.
*/
ignoreNextIntersection = true;
setTimeout(function() {
ignoreNextIntersection = false;
}, 50);
header.classList.toggle('is-pinned', newStatus);
},
{ threshold: [1] },
).observe(header);
}
function setupAltDocsLink() {
const linkWrapper = document.getElementById('alt-docs');
function updateHashes() {
for (const link of linkWrapper.querySelectorAll('a')) {
link.hash = location.hash;
}
}
addEventListener('hashchange', updateHashes);
updateHashes();
}
function setupFlavorToggles() {
const kFlavorPreference = 'customFlavor';
const flavorSetting = localStorage.getItem(kFlavorPreference) === 'true';
const flavorToggles = document.querySelectorAll('.js-flavor-toggle');
flavorToggles.forEach((toggleElement) => {
toggleElement.checked = flavorSetting;
toggleElement.addEventListener('change', (e) => {
const checked = e.target.checked;
if (checked) {
localStorage.setItem(kFlavorPreference, true);
} else {
localStorage.removeItem(kFlavorPreference);
}
flavorToggles.forEach((el) => {
el.checked = checked;
});
});
});
}
function setupCopyButton() {
const buttons = document.querySelectorAll('.copy-button');
buttons.forEach((button) => {
button.addEventListener('click', (el) => {
const parentNode = el.target.parentNode;
const flavorToggle = parentNode.querySelector('.js-flavor-toggle');
let code = '';
if (flavorToggle) {
if (flavorToggle.checked) {
code = parentNode.querySelector('.mjs').textContent;
} else {
code = parentNode.querySelector('.cjs').textContent;
}
} else {
code = parentNode.querySelector('code').textContent;
}
button.textContent = 'Copied';
navigator.clipboard.writeText(code);
setTimeout(() => {
button.textContent = 'Copy';
}, 2500);
});
});
}
function bootstrap() {
// Check if we have JavaScript support.
document.documentElement.classList.add('has-js');
// Restore user mode preferences.
setupTheme();
// Handle pickers with click/taps rather than hovers.
setupPickers();
// Track when the header is in sticky position.
setupStickyHeaders();
// Make link to other versions of the doc open to the same hash target (if it exists).
setupAltDocsLink();
setupFlavorToggles();
setupCopyButton();
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', bootstrap, { once: true });
} else {
bootstrap();
}
}

189
doc/api_assets/hljs.css Normal file
View File

@ -0,0 +1,189 @@
:not(.dark-mode) {
pre code.hljs {
display: block;
overflow-x: auto;
padding: 1em;
}
code.hljs {
padding: 3px 5px;
}
/*
Visual Studio-like style based on original C# coloring by Jason Diamond <jason@diamond.name>
*/
.hljs {
background: white;
color: black;
}
.hljs-comment,
.hljs-quote,
.hljs-variable {
color: #008000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-built_in,
.hljs-name,
.hljs-tag {
color: #00f;
}
.hljs-string,
.hljs-title,
.hljs-section,
.hljs-attribute,
.hljs-literal,
.hljs-template-tag,
.hljs-template-variable,
.hljs-type,
.hljs-addition {
color: #a31515;
}
.hljs-deletion,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-meta {
color: #2b91af;
}
.hljs-doctag {
color: #808080;
}
.hljs-attr {
color: #d00;
}
.hljs-symbol,
.hljs-bullet,
.hljs-link {
color: #00b0e8;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
}
.dark-mode {
pre code.hljs {
display: block;
overflow-x: auto;
padding: 1em;
}
code.hljs {
padding: 3px 5px;
}
/*
* Visual Studio 2015 dark style
* Author: Nicolas LLOBERA <nllobera@gmail.com>
*/
.hljs {
background: #1E1E1E;
color: #DCDCDC;
}
.hljs-keyword,
.hljs-literal,
.hljs-symbol,
.hljs-name {
color: #569CD6;
}
.hljs-link {
color: #569CD6;
text-decoration: underline;
}
.hljs-built_in,
.hljs-type {
color: #4EC9B0;
}
.hljs-number,
.hljs-class {
color: #B8D7A3;
}
.hljs-string,
.hljs-meta .hljs-string {
color: #D69D85;
}
.hljs-regexp,
.hljs-template-tag {
color: #9A5334;
}
.hljs-subst,
.hljs-function,
.hljs-title,
.hljs-params,
.hljs-formula {
color: #DCDCDC;
}
.hljs-comment,
.hljs-quote {
color: #57A64A;
font-style: italic;
}
.hljs-doctag {
color: #608B4E;
}
.hljs-meta,
.hljs-meta .hljs-keyword,
.hljs-tag {
color: #9B9B9B;
}
.hljs-variable,
.hljs-template-variable {
color: #BD63C5;
}
.hljs-attr,
.hljs-attribute {
color: #9CDCFE;
}
.hljs-section {
color: gold;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
/*.hljs-code {
font-family:'Monospace';
}*/
.hljs-bullet,
.hljs-selector-tag,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #D7BA7D;
}
.hljs-addition {
background-color: #144212;
display: inline-block;
width: 100%;
}
.hljs-deletion {
background-color: #600;
display: inline-block;
width: 100%;
}
}

View File

@ -0,0 +1,5 @@
<!--
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free - CC BY 4.0
-->
<svg xmlns="http://www.w3.org/2000/svg" height="384" width="2719"><path d="M1191 384h192a192 192 0 0 0 0-384h-192a192 192 0 0 0 0 384zm0-320a128 128 0 1 1 0 256 128 128 0 0 1 0-256z"/><path d="M20 196q0-25 4-49t16-50q11-26 29-45 17-20 47-32 30-13 67-13 116 0 137 117h-46q-8-39-31-58t-66-19q-52 0-82 40-30 39-30 108 0 67 32 107 31 39 84 39 44 0 68-24 23-25 32-77h47q-16 141-147 141-37 0-66-12-29-13-47-32-17-19-29-44-11-26-15-50-4-23-4-47Zm445 147q31 0 43-21 11-20 11-58V13h46v268q0 46-27 73t-74 27q-46 0-73-25-26-26-26-69v-32h46v23q0 32 14 48 14 17 40 17zm308-2q28 0 47-6 19-7 28-17t13-20q4-10 4-22 0-40-66-57l-89-24q-70-18-70-83 0-49 34-77t93-28q62 0 96 29t35 82h-43q-1-35-24-54t-65-19q-37 0-59 17-21 16-21 43 0 21 13 33 13 11 45 20l90 24q36 10 56 34 20 23 20 56 0 14-4 28-3 14-13 29t-25 26q-15 12-41 19-25 7-57 7-20 0-38-3t-38-11q-19-9-32-22-14-14-23-37-9-22-10-52h43v3q0 15 5 28t15 26q11 13 31 21 21 7 50 7z" aria-label="CJS"/><path d="M1767 207v123h210v40h-256V13h248v40h-202v114h194v40zm393 134q27 0 46-6 19-7 28-17t13-20q4-10 4-22 0-40-66-57l-89-24q-70-18-70-83 0-49 34-77t93-28q62 0 96 29 35 29 35 82h-43q0-35-24-54-23-19-65-19-36 0-58 17-22 16-22 43 0 21 13 33 13 11 46 20l89 24q37 10 56 34 20 23 20 56 0 14-4 28-3 14-13 29t-25 26q-15 12-40 19t-57 7q-20 0-39-3-18-3-37-11-19-9-33-22-14-14-23-37-9-22-9-52h43v3q0 15 4 28 5 13 15 26 11 13 32 21 21 7 50 7zm391 29h-48L2402 71v299h-43V13h63l106 311 104-311h63v357h-43V71Z" aria-label="ESM"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,5 @@
<!--
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free - CC BY 4.0
-->
<svg xmlns="http://www.w3.org/2000/svg" width="2719" height="384"><path d="M1383 0h-192a192 192 0 0 0 0 384h192a192 192 0 0 0 0-384zm0 320a128 128 0 1 1 0-256 128 128 0 0 1 0 256z"/><path d="M20 196q0-25 4-49t16-50q11-26 29-45 17-20 47-32 30-13 67-13 116 0 137 117h-46q-8-39-31-58t-66-19q-52 0-82 40-30 39-30 108 0 67 32 107 31 39 84 39 44 0 68-24 23-25 32-77h47q-16 141-147 141-37 0-66-12-29-13-47-32-17-19-29-44-11-26-15-50-4-23-4-47Zm445 147q31 0 43-21 11-20 11-58V13h46v268q0 46-27 73t-74 27q-46 0-73-25-26-26-26-69v-32h46v23q0 32 14 48 14 17 40 17zm308-2q28 0 47-6 19-7 28-17t13-20q4-10 4-22 0-40-66-57l-89-24q-70-18-70-83 0-49 34-77t93-28q62 0 96 29t35 82h-43q-1-35-24-54t-65-19q-37 0-59 17-21 16-21 43 0 21 13 33 13 11 45 20l90 24q36 10 56 34 20 23 20 56 0 14-4 28-3 14-13 29t-25 26q-15 12-41 19-25 7-57 7-20 0-38-3t-38-11q-19-9-32-22-14-14-23-37-9-22-10-52h43v3q0 15 5 28t15 26q11 13 31 21 21 7 50 7z" aria-label="CJS"/><path d="M1767 207v123h210v40h-256V13h248v40h-202v114h194v40zm393 134q27 0 46-6 19-7 28-17t13-20q4-10 4-22 0-40-66-57l-89-24q-70-18-70-83 0-49 34-77t93-28q62 0 96 29 35 29 35 82h-43q0-35-24-54-23-19-65-19-36 0-58 17-22 16-22 43 0 21 13 33 13 11 46 20l89 24q37 10 56 34 20 23 20 56 0 14-4 28-3 14-13 29t-25 26q-15 12-40 19t-57 7q-20 0-39-3-18-3-37-11-19-9-33-22-14-14-23-37-9-22-9-52h43v3q0 15 4 28 5 13 15 26 11 13 32 21 21 7 50 7zm391 29h-48L2402 71v299h-43V13h63l106 311 104-311h63v357h-43V71Z" aria-label="ESM"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

1085
doc/api_assets/style.css Normal file

File diff suppressed because it is too large Load Diff