263 lines
17 KiB
HTML
263 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>{{ page_title }}</title>
|
|
<meta name="theme-color" content="#eff1f5" media="(prefers-color-scheme: light)"/>
|
|
<meta name="theme-color" content="#1e1e2e" media="(prefers-color-scheme: dark)"/>
|
|
<link rel="icon" type="image/svg+xml" sizes="any" href="{{ breadcrumbs }}/favicon.svg"/>
|
|
<link rel="stylesheet" href="{{ breadcrumbs }}/css/index.css?v={{ aiken_version }}" type="text/css"/>
|
|
<link id="syntax-theme" rel="stylesheet" href="{{ breadcrumbs }}/css/atom-one-light.min.css?v={{ aiken_version }}"/>
|
|
</head>
|
|
<body class="prewrap-off theme-light drawer-closed">
|
|
<script>
|
|
"use strict";
|
|
window.breadcrumbs = '{{ breadcrumbs }}';
|
|
const aikenConfig = {
|
|
theme: {
|
|
values: (() => {
|
|
const dark = {
|
|
value: "dark",
|
|
label: "Switch to light mode",
|
|
icons: ["moon"],
|
|
};
|
|
const light = {
|
|
value: "light",
|
|
label: "Switch to dark mode",
|
|
icons: ["sun"],
|
|
};
|
|
return (
|
|
window.matchMedia("(prefers-color-scheme: dark)").matches
|
|
? [dark, light]
|
|
: [light, dark]
|
|
).map((item, index) => {
|
|
item.icons.push(`toggle-${0 === index ? "left" : "right"}`);
|
|
return item;
|
|
});
|
|
})(),
|
|
|
|
update: () => "light" === Aiken.getProperty("theme") ? "dark" : "light",
|
|
|
|
callback: function(value) {
|
|
const syntaxThemes = {
|
|
dark: "atom-one-dark",
|
|
light: "atom-one-light",
|
|
};
|
|
const syntaxTheme = document.querySelector("#syntax-theme");
|
|
const hrefParts = syntaxTheme.href.match(
|
|
/^(.*?)([^/\\#?]+?)((?:\.min)?\.css.*)$/i
|
|
);
|
|
if (syntaxThemes[value] !== hrefParts[2]) {
|
|
hrefParts[2] = syntaxThemes[value];
|
|
hrefParts.shift();
|
|
syntaxTheme.href = hrefParts.join("");
|
|
}
|
|
},
|
|
},
|
|
prewrap: {
|
|
values: [
|
|
{
|
|
value: "off",
|
|
label: "Switch to line-wrapped snippets",
|
|
icons: ["more-horizontal", "toggle-left"],
|
|
},
|
|
{
|
|
value: "on",
|
|
label: "Switch to non-wrapped snippets",
|
|
icons: ["more-vertical", "toggle-right"],
|
|
},
|
|
],
|
|
|
|
update: () => "off" === Aiken.getProperty("prewrap") ? "on" : "off",
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<script>
|
|
"use strict";
|
|
|
|
/* Initialise options before any content loads */
|
|
void function() {
|
|
for (const property in aikenConfig) {
|
|
const name = `Aiken.${property}`;
|
|
|
|
let value;
|
|
|
|
try {
|
|
value = localStorage.getItem(name);
|
|
if (value.startsWith('"') && value.endsWith('"')) {
|
|
localStorage.setItem(name, value.slice(1, value.length - 1));
|
|
}
|
|
}
|
|
catch (_error) {}
|
|
|
|
const defaultValue = aikenConfig[property].values[0].value;
|
|
try {
|
|
value = localStorage.getItem(name);
|
|
}
|
|
catch(_error) {}
|
|
if (-1 < [null, undefined].indexOf(value)) {
|
|
value = defaultValue;
|
|
}
|
|
const bodyClasses = document.body.classList;
|
|
bodyClasses.remove(`${property}-${defaultValue}`);
|
|
bodyClasses.add(`${property}-${value}`);
|
|
try {
|
|
aikenConfig[property].callback(value);
|
|
}
|
|
catch(_error) {}
|
|
}
|
|
}();
|
|
</script>
|
|
|
|
<header class="page-header">
|
|
<button class="sidebar-toggle" tabindex="0">
|
|
<svg class="label label-closed icon icon-menu" alt="Open Menu" title="Open Menu"><use xlink:href="#icon-menu"></use></svg>
|
|
<svg class="label label-open icon icon-x-circle" alt="Close Menu" title="Close Menu"><use xlink:href="#icon-x-circle"></use></svg>
|
|
</button>
|
|
|
|
<h2>
|
|
<a href="{{ breadcrumbs }}/">{{ project_name }}</a>
|
|
<span id="project-version">
|
|
<span>v{{ project_version }} </span>
|
|
</span>
|
|
<script>
|
|
"use strict";
|
|
|
|
if ("undefined" !== typeof versionNodes) {
|
|
const currentVersion = "v{{ project_version }}";
|
|
if (! versionNodes.find(element => element.version === currentVersion)) {
|
|
versionNodes.unshift({ version: currentVersion, url: "#" });
|
|
}
|
|
document.querySelector("#project-version").innerHTML =
|
|
versionNodes.reduce(
|
|
(acc, element) => {
|
|
const status =
|
|
currentVersion === element.version ? "selected disabled" : "";
|
|
return `
|
|
${acc}
|
|
<option value="${element.url}" ${status}>
|
|
${element.version}
|
|
</option>
|
|
`;
|
|
},
|
|
`
|
|
<form autocomplete="off">
|
|
<select onchange="window.location.href = this.value">
|
|
`
|
|
) + `
|
|
</select>
|
|
<svg class="icon icon-chevrons-down"><use xlink:href="#icon-chevrons-down"></use></svg>
|
|
</form>
|
|
`;
|
|
}
|
|
</script>
|
|
</h2>
|
|
<div class="search">
|
|
<div class="search-input-wrap">
|
|
<input type="text" id="search-input" class="search-input" tabindex="0" aria-label="Search {{ project_name }}" autocomplete="off">
|
|
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#icon-svg-search"></use></svg></label>
|
|
</div>
|
|
<div id="search-results" class="search-results"></div>
|
|
</div>
|
|
|
|
<button class="search-nav-button" id="search-nav-button" tabindex="0">
|
|
<svg class="label icon icon-x-circle" alt="Open Search" title="Open Search"><use xlink:href="#icon-svg-search"></use></svg>
|
|
</button>
|
|
|
|
</header>
|
|
|
|
<div class="page">
|
|
<nav class="sidebar">
|
|
<button class="sidebar-toggle" tabindex="1">
|
|
<svg class="label icon icon-x-circle" alt="Close Menu" title="Close Menu"><use xlink:href="#icon-x-circle"></use></svg>
|
|
</button>
|
|
|
|
{% if !source.is_empty() %}
|
|
<h2>Source code</h2>
|
|
<ul>
|
|
<li><a href="{{ source.path }}">{{ source.name }}</a></li>
|
|
</ul>
|
|
{% endif %}
|
|
|
|
<h2>Modules</h2>
|
|
{% if !modules_prefix.is_empty() %}
|
|
<h3 class="modules-prefix">{{ modules_prefix }}/</h3>
|
|
{% endif %}
|
|
<ul>
|
|
{% for module in modules %}
|
|
<li><a href="{{ breadcrumbs }}/{{ module.path }}">
|
|
{% if self.is_current_module(module) %}
|
|
<strong>{{ module.name }}</strong>
|
|
{% else %}
|
|
{{ module.name }}
|
|
{% endif %}
|
|
</a></li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
{% block sidebar_content %}{% endblock %}
|
|
</nav>
|
|
|
|
<main class="content">
|
|
{% block content %}{% endblock %}
|
|
</main>
|
|
<div class="search-overlay"></div>
|
|
</div>
|
|
|
|
<svg class="svg-lib" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<defs>
|
|
<symbol id="icon-chevrons-down" viewBox="0 0 24 24"><path d="M6.293 13.707l5 5c0.391 0.391 1.024 0.391 1.414 0l5-5c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-4.293 4.293-4.293-4.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414zM6.293 6.707l5 5c0.391 0.391 1.024 0.391 1.414 0l5-5c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-4.293 4.293-4.293-4.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"></path></symbol>
|
|
|
|
<symbol id="icon-menu" viewBox="0 0 24 24"><path d="M3 13h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1zM3 7h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1zM3 19h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1z"></path></symbol>
|
|
|
|
<symbol id="icon-moon" viewBox="0 0 24 24"><path d="M21.996 12.882c0.022-0.233-0.038-0.476-0.188-0.681-0.325-0.446-0.951-0.544-1.397-0.219-0.95 0.693-2.060 1.086-3.188 1.162-1.368 0.092-2.765-0.283-3.95-1.158-1.333-0.985-2.139-2.415-2.367-3.935s0.124-3.124 1.109-4.456c0.142-0.191 0.216-0.435 0.191-0.691-0.053-0.55-0.542-0.952-1.092-0.898-2.258 0.22-4.314 1.18-5.895 2.651-1.736 1.615-2.902 3.847-3.137 6.386-0.254 2.749 0.631 5.343 2.266 7.311s4.022 3.313 6.772 3.567 5.343-0.631 7.311-2.266 3.313-4.022 3.567-6.772zM19.567 14.674c-0.49 1.363-1.335 2.543-2.416 3.441-1.576 1.309-3.648 2.016-5.848 1.813s-4.108-1.278-5.417-2.854-2.016-3.648-1.813-5.848c0.187-2.032 1.117-3.814 2.507-5.106 0.782-0.728 1.71-1.3 2.731-1.672-0.456 1.264-0.577 2.606-0.384 3.899 0.303 2.023 1.38 3.934 3.156 5.247 1.578 1.167 3.448 1.668 5.272 1.545 0.752-0.050 1.496-0.207 2.21-0.465z"></path></symbol>
|
|
|
|
<symbol id="icon-more-horizontal" viewBox="0 0 24 24"><path d="M14 12c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM21 12c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM7 12c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414z"></path></symbol>
|
|
|
|
<symbol id="icon-more-vertical" viewBox="0 0 24 24"><path d="M14 12c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM14 5c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM14 19c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414z"></path></symbol>
|
|
|
|
<symbol id="icon-star" viewBox="0 0 24 24"><path d="M12.897 1.557c-0.092-0.189-0.248-0.352-0.454-0.454-0.495-0.244-1.095-0.041-1.339 0.454l-2.858 5.789-6.391 0.935c-0.208 0.029-0.411 0.127-0.571 0.291-0.386 0.396-0.377 1.029 0.018 1.414l4.623 4.503-1.091 6.362c-0.036 0.207-0.006 0.431 0.101 0.634 0.257 0.489 0.862 0.677 1.351 0.42l5.714-3.005 5.715 3.005c0.186 0.099 0.408 0.139 0.634 0.101 0.544-0.093 0.91-0.61 0.817-1.155l-1.091-6.362 4.623-4.503c0.151-0.146 0.259-0.344 0.292-0.572 0.080-0.546-0.298-1.054-0.845-1.134l-6.39-0.934zM12 4.259l2.193 4.444c0.151 0.305 0.436 0.499 0.752 0.547l4.906 0.717-3.549 3.457c-0.244 0.238-0.341 0.569-0.288 0.885l0.837 4.883-4.386-2.307c-0.301-0.158-0.647-0.148-0.931 0l-4.386 2.307 0.837-4.883c0.058-0.336-0.059-0.661-0.288-0.885l-3.549-3.457 4.907-0.718c0.336-0.049 0.609-0.26 0.752-0.546z"></path></symbol>
|
|
|
|
<symbol id="icon-sun" viewBox="0 0 24 24"><path d="M18 12c0-1.657-0.673-3.158-1.757-4.243s-2.586-1.757-4.243-1.757-3.158 0.673-4.243 1.757-1.757 2.586-1.757 4.243 0.673 3.158 1.757 4.243 2.586 1.757 4.243 1.757 3.158-0.673 4.243-1.757 1.757-2.586 1.757-4.243zM16 12c0 1.105-0.447 2.103-1.172 2.828s-1.723 1.172-2.828 1.172-2.103-0.447-2.828-1.172-1.172-1.723-1.172-2.828 0.447-2.103 1.172-2.828 1.723-1.172 2.828-1.172 2.103 0.447 2.828 1.172 1.172 1.723 1.172 2.828zM11 1v2c0 0.552 0.448 1 1 1s1-0.448 1-1v-2c0-0.552-0.448-1-1-1s-1 0.448-1 1zM11 21v2c0 0.552 0.448 1 1 1s1-0.448 1-1v-2c0-0.552-0.448-1-1-1s-1 0.448-1 1zM3.513 4.927l1.42 1.42c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-1.42-1.42c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414zM17.653 19.067l1.42 1.42c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-1.42-1.42c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414zM1 13h2c0.552 0 1-0.448 1-1s-0.448-1-1-1h-2c-0.552 0-1 0.448-1 1s0.448 1 1 1zM21 13h2c0.552 0 1-0.448 1-1s-0.448-1-1-1h-2c-0.552 0-1 0.448-1 1s0.448 1 1 1zM4.927 20.487l1.42-1.42c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-1.42 1.42c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0zM19.067 6.347l1.42-1.42c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-1.42 1.42c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0z"></path></symbol>
|
|
|
|
<symbol id="icon-toggle-left" viewBox="0 0 24 24"><path d="M8 4c-2.209 0-4.21 0.897-5.657 2.343s-2.343 3.448-2.343 5.657 0.897 4.21 2.343 5.657 3.448 2.343 5.657 2.343h8c2.209 0 4.21-0.897 5.657-2.343s2.343-3.448 2.343-5.657-0.897-4.21-2.343-5.657-3.448-2.343-5.657-2.343zM8 6h8c1.657 0 3.156 0.67 4.243 1.757s1.757 2.586 1.757 4.243-0.67 3.156-1.757 4.243-2.586 1.757-4.243 1.757h-8c-1.657 0-3.156-0.67-4.243-1.757s-1.757-2.586-1.757-4.243 0.67-3.156 1.757-4.243 2.586-1.757 4.243-1.757zM12 12c0-1.104-0.449-2.106-1.172-2.828s-1.724-1.172-2.828-1.172-2.106 0.449-2.828 1.172-1.172 1.724-1.172 2.828 0.449 2.106 1.172 2.828 1.724 1.172 2.828 1.172 2.106-0.449 2.828-1.172 1.172-1.724 1.172-2.828zM10 12c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414z"></path></symbol>
|
|
|
|
<symbol id="icon-toggle-right" viewBox="0 0 24 24"><path d="M8 4c-2.209 0-4.21 0.897-5.657 2.343s-2.343 3.448-2.343 5.657 0.897 4.21 2.343 5.657 3.448 2.343 5.657 2.343h8c2.209 0 4.21-0.897 5.657-2.343s2.343-3.448 2.343-5.657-0.897-4.21-2.343-5.657-3.448-2.343-5.657-2.343zM8 6h8c1.657 0 3.156 0.67 4.243 1.757s1.757 2.586 1.757 4.243-0.67 3.156-1.757 4.243-2.586 1.757-4.243 1.757h-8c-1.657 0-3.156-0.67-4.243-1.757s-1.757-2.586-1.757-4.243 0.67-3.156 1.757-4.243 2.586-1.757 4.243-1.757zM20 12c0-1.104-0.449-2.106-1.172-2.828s-1.724-1.172-2.828-1.172-2.106 0.449-2.828 1.172-1.172 1.724-1.172 2.828 0.449 2.106 1.172 2.828 1.724 1.172 2.828 1.172 2.106-0.449 2.828-1.172 1.172-1.724 1.172-2.828zM18 12c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414z"></path></symbol>
|
|
|
|
<symbol id="icon-x-circle" viewBox="0 0 24 24"><path d="M23 12c0-3.037-1.232-5.789-3.222-7.778s-4.741-3.222-7.778-3.222-5.789 1.232-7.778 3.222-3.222 4.741-3.222 7.778 1.232 5.789 3.222 7.778 4.741 3.222 7.778 3.222 5.789-1.232 7.778-3.222 3.222-4.741 3.222-7.778zM21 12c0 2.486-1.006 4.734-2.636 6.364s-3.878 2.636-6.364 2.636-4.734-1.006-6.364-2.636-2.636-3.878-2.636-6.364 1.006-4.734 2.636-6.364 3.878-2.636 6.364-2.636 4.734 1.006 6.364 2.636 2.636 3.878 2.636 6.364zM8.293 9.707l2.293 2.293-2.293 2.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l2.293-2.293 2.293 2.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-2.293-2.293 2.293-2.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-2.293 2.293-2.293-2.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"></path></symbol>
|
|
|
|
<symbol id="icon-svg-search" viewBox="0 0 24 24">
|
|
<title>Search</title>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
|
|
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
|
</svg>
|
|
</symbol>
|
|
|
|
<symbol id="icon-svg-doc" viewBox="0 0 24 24">
|
|
<title>Document</title>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
|
|
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
|
|
</svg>
|
|
</symbol>
|
|
</defs>
|
|
</svg>
|
|
|
|
<script src="{{ breadcrumbs }}/js/highlight.min.js?v={{ aiken_version }}"></script>
|
|
<script src="{{ breadcrumbs }}/js/highlightjs-aiken.js?v={{ aiken_version }}"></script>
|
|
<script>
|
|
document.querySelectorAll("pre code").forEach((elem) => {
|
|
if (elem.className === "") {
|
|
elem.classList.add("aiken");
|
|
}
|
|
});
|
|
hljs.highlightAll();
|
|
</script>
|
|
<script src="{{ breadcrumbs }}/js/lunr.min.js?v={{ aiken_version }}"></script>
|
|
<script src="{{ breadcrumbs }}/js/index.js?v={{ timestamp }}"></script>
|
|
<!-- Load the search index using JSONP to avoid CORS issues -->
|
|
<script src="{{ breadcrumbs }}/search-data.js?v={{ timestamp }}"></script>
|
|
</body>
|
|
</html>
|