Compare commits
No commits in common. "6e03629ebacdc5633acc98a321ea773e1b2fa341" and "e77ecf8c8521ad7a3df4212ada3fa40081008d4e" have entirely different histories.
6e03629eba
...
e77ecf8c85
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
# Sphinx build info version 1
|
# Sphinx build info version 1
|
||||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: a5515a6cd53f0d2a1fdff39f937866af
|
config: d46b0678c8f738d7c9c9f1776b28e194
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
@ -5,35 +5,31 @@ Ithamar's Agenda
|
|||||||
Tabel van opdrachten
|
Tabel van opdrachten
|
||||||
|
|
||||||
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Wat | Wanneer | Opmerking | Status |
|
| Wat | Wanneer | Opmerking |
|
||||||
+================================================+=================+==============================================================================+========+
|
+================================================+=================+==============================================================================+
|
||||||
|| || || || |
|
|| verslag arduino bluetooth || 24 december || kan digitaal worden opgestuurd |
|
||||||
|| || || || |
|
|| Opdracht 14: afstandsmeter met leds || ASAP rdm || moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| verslag arduino bluetooth | 24 december | kan digitaal worden opgestuurd | |
|
| Opdracht 21: Sensor uitlezen met Ardutooth | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 21: Sensor uitlezen met Ardutooth | 24 december | moet worden gepresenteerd | |
|
| Opdracht 22: Onderzoek Security wireless comm. | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Elevator pitch zelfreflectie verslag | 23 november | Inleveren via teams | |
|
| Opdracht 23 IR control | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 22: Onderzoek Security wireless comm. | 24 december | moet worden gepresenteerd | |
|
| Opdracht 24a - b Ventilator met 433mhz | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 23 IR control | 24 december | moet worden gepresenteerd | |
|
| Opdracht 25 - tempverloop op SD (thuis) | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 24a - b Ventilator met 433mhz | 24 december | moet worden gepresenteerd | |
|
| Opdracht 27 - ESP8266 - webserver | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 25 - tempverloop op SD (thuis) | 24 december | moet worden gepresenteerd | |
|
| Opdracht 28 - ESP8266 - client - data-analyse. | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 27 - ESP8266 - webserver | 24 december | moet worden gepresenteerd | |
|
| python 2 rgb ledstrip opdracth 2 | 10 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 28 - ESP8266 - client - data-analyse. | 24 december | moet worden gepresenteerd | |
|
| Cisco week opdrachten | 24 december | alle opdrachten moeten gezipt worden ingeleverd aan het einde van de periode |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| python 2 rgb ledstrip opdracht 2 | 10 december | moet worden gepresenteerd | |
|
| workshop escaperoom | 18 januari 2023 | de escaperoom moet worden verwerkt in een presentatie tijdens te toetsweek |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Cisco week opdrachten | 24 december | alle opdrachten moeten gezipt worden ingeleverd aan het einde van de periode | |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
|
||||||
| workshop escaperoom | 18 januari 2023 | de escaperoom moet worden verwerkt in een presentatie tijdens te toetsweek | |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
***********
|
|
||||||
Cijferlijst
|
|
||||||
***********
|
|
||||||
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Vak | Cijfer | studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Python 1 | 8.8 | 2 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Cisco 1 | 9.0 | 2 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Werkplaats arduino 1A | 9.0 | 2 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Werkplaats arduino 1B | Nog niet beschikbaar | 4 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Proffesionele vorming | Voldoende | NvT | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
@ -1,10 +0,0 @@
|
|||||||
*******************
|
|
||||||
escape-room ithamar
|
|
||||||
*******************
|
|
||||||
Documentatie voor ithamar's escaperoom.
|
|
||||||
|
|
||||||
Voor jaar 1 periode 2 van mijn studie IoT moet ik een escaperoom maken met een arduino in een groepje. deze escaperoom
|
|
||||||
moet gemaakt worden via de kennis die is opgedaan met de opdrachten van de werkplaats arduino.
|
|
||||||
|
|
||||||
Het groepje waarbij ik zit heeft als thema: horror, ondanks dit theme is de echte horror een doos vinden om de escaperoom uit te maken
|
|
||||||
en op tijd de puzzles te maken en te kunnen verwerken in deze doos.
|
|
@ -11,5 +11,12 @@ Welcome to Ithamar's AD's documentation!
|
|||||||
:caption: Contents:
|
:caption: Contents:
|
||||||
|
|
||||||
agenda.rst
|
agenda.rst
|
||||||
cijfers.rst
|
|
||||||
escape_room.rst
|
|
||||||
|
|
||||||
|
Indices and tables
|
||||||
|
==================
|
||||||
|
|
||||||
|
* :ref:`genindex`
|
||||||
|
* :ref:`modindex`
|
||||||
|
* :ref:`search`
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
****************
|
|
||||||
Ithamar's Agenda
|
|
||||||
****************
|
|
||||||
|
|
||||||
Tabel van opdrachten
|
|
||||||
|
|
||||||
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Wat | Wanneer | Opmerking |
|
|
||||||
+================================================+=================+==============================================================================+
|
|
||||||
|| verslag arduino bluetooth || 24 december || kan digitaal worden opgestuurd |
|
|
||||||
|| Opdracht 14: afstandsmeter met leds || ASAP rdm || moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Opdracht 21: Sensor uitlezen met Ardutooth | 24 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Opdracht 22: Onderzoek Security wireless comm. | 24 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Opdracht 23 IR control | 24 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Opdracht 24a - b Ventilator met 433mhz | 24 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Opdracht 25 - tempverloop op SD (thuis) | 24 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Opdracht 27 - ESP8266 - webserver | 24 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Opdracht 28 - ESP8266 - client - data-analyse. | 24 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| python 2 rgb ledstrip opdracth 2 | 10 december | moet worden gepresenteerd |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| Cisco week opdrachten | 24 december | alle opdrachten moeten gezipt worden ingeleverd aan het einde van de periode |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
| workshop escaperoom | 18 januari 2023 | de escaperoom moet worden verwerkt in een presentatie tijdens te toetsweek |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* Sphinx stylesheet -- basic theme.
|
* Sphinx stylesheet -- basic theme.
|
||||||
*
|
*
|
||||||
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
|
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -222,7 +222,7 @@ table.modindextable td {
|
|||||||
/* -- general body styles --------------------------------------------------- */
|
/* -- general body styles --------------------------------------------------- */
|
||||||
|
|
||||||
div.body {
|
div.body {
|
||||||
min-width: 450px;
|
min-width: 360px;
|
||||||
max-width: 800px;
|
max-width: 800px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,7 +236,6 @@ div.body p, div.body dd, div.body li, div.body blockquote {
|
|||||||
a.headerlink {
|
a.headerlink {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.brackets:before,
|
a.brackets:before,
|
||||||
span.brackets > a:before{
|
span.brackets > a:before{
|
||||||
content: "[";
|
content: "[";
|
||||||
@ -247,6 +246,7 @@ span.brackets > a:after {
|
|||||||
content: "]";
|
content: "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
h1:hover > a.headerlink,
|
h1:hover > a.headerlink,
|
||||||
h2:hover > a.headerlink,
|
h2:hover > a.headerlink,
|
||||||
h3:hover > a.headerlink,
|
h3:hover > a.headerlink,
|
||||||
@ -334,13 +334,11 @@ aside.sidebar {
|
|||||||
p.sidebar-title {
|
p.sidebar-title {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition, div.topic, blockquote {
|
div.admonition, div.topic, blockquote {
|
||||||
clear: left;
|
clear: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -- topics ---------------------------------------------------------------- */
|
/* -- topics ---------------------------------------------------------------- */
|
||||||
|
|
||||||
div.topic {
|
div.topic {
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
padding: 7px;
|
padding: 7px;
|
||||||
@ -428,10 +426,6 @@ table.docutils td, table.docutils th {
|
|||||||
border-bottom: 1px solid #aaa;
|
border-bottom: 1px solid #aaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.footnote td, table.footnote th {
|
|
||||||
border: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
th {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
@ -614,7 +608,6 @@ ol.simple p,
|
|||||||
ul.simple p {
|
ul.simple p {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
dl.footnote > dt,
|
dl.footnote > dt,
|
||||||
dl.citation > dt {
|
dl.citation > dt {
|
||||||
float: left;
|
float: left;
|
||||||
@ -643,11 +636,11 @@ dl.field-list > dt {
|
|||||||
padding-left: 0.5em;
|
padding-left: 0.5em;
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
dl.field-list > dt:after {
|
dl.field-list > dt:after {
|
||||||
content: ":";
|
content: ":";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dl.field-list > dd {
|
dl.field-list > dd {
|
||||||
padding-left: 0.5em;
|
padding-left: 0.5em;
|
||||||
margin-top: 0em;
|
margin-top: 0em;
|
||||||
@ -757,6 +750,7 @@ span.pre {
|
|||||||
-ms-hyphens: none;
|
-ms-hyphens: none;
|
||||||
-webkit-hyphens: none;
|
-webkit-hyphens: none;
|
||||||
hyphens: none;
|
hyphens: none;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
div[class*="highlight-"] {
|
div[class*="highlight-"] {
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
# Configuration file for the Sphinx documentation builder.
|
|
||||||
#
|
|
||||||
# For the full list of built-in configuration values, see the documentation:
|
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
||||||
|
|
||||||
# -- Project information -----------------------------------------------------
|
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
||||||
|
|
||||||
project = "Ithamar's AD"
|
|
||||||
copyright = '2022, Ithamar'
|
|
||||||
author = 'Ithamar'
|
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
||||||
|
|
||||||
extensions = []
|
|
||||||
|
|
||||||
templates_path = ['_templates']
|
|
||||||
exclude_patterns = []
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for HTML output -------------------------------------------------
|
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
||||||
|
|
||||||
html_theme = 'sphinx_rtd_theme'
|
|
||||||
html_static_path = ['']
|
|
@ -2,322 +2,155 @@
|
|||||||
* doctools.js
|
* doctools.js
|
||||||
* ~~~~~~~~~~~
|
* ~~~~~~~~~~~
|
||||||
*
|
*
|
||||||
* Sphinx JavaScript utilities for all documentation.
|
* Base JavaScript utilities for all Sphinx HTML documentation.
|
||||||
*
|
*
|
||||||
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
|
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
"use strict";
|
||||||
|
|
||||||
/**
|
const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
|
||||||
* select a different prefix for underscore
|
"TEXTAREA",
|
||||||
*/
|
"INPUT",
|
||||||
$u = _.noConflict();
|
"SELECT",
|
||||||
|
"BUTTON",
|
||||||
|
]);
|
||||||
|
|
||||||
/**
|
const _ready = (callback) => {
|
||||||
* make the code below compatible with browsers without
|
if (document.readyState !== "loading") {
|
||||||
* an installed firebug like debugger
|
callback();
|
||||||
if (!window.console || !console.firebug) {
|
} else {
|
||||||
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
|
document.addEventListener("DOMContentLoaded", callback);
|
||||||
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
|
|
||||||
"profile", "profileEnd"];
|
|
||||||
window.console = {};
|
|
||||||
for (var i = 0; i < names.length; ++i)
|
|
||||||
window.console[names[i]] = function() {};
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* small helper function to urldecode strings
|
|
||||||
*
|
|
||||||
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
|
|
||||||
*/
|
|
||||||
jQuery.urldecode = function(x) {
|
|
||||||
if (!x) {
|
|
||||||
return x
|
|
||||||
}
|
}
|
||||||
return decodeURIComponent(x.replace(/\+/g, ' '));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* small helper function to urlencode strings
|
|
||||||
*/
|
|
||||||
jQuery.urlencode = encodeURIComponent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns the parsed url parameters of the
|
|
||||||
* current request. Multiple values per key are supported,
|
|
||||||
* it will always return arrays of strings for the value parts.
|
|
||||||
*/
|
|
||||||
jQuery.getQueryParameters = function(s) {
|
|
||||||
if (typeof s === 'undefined')
|
|
||||||
s = document.location.search;
|
|
||||||
var parts = s.substr(s.indexOf('?') + 1).split('&');
|
|
||||||
var result = {};
|
|
||||||
for (var i = 0; i < parts.length; i++) {
|
|
||||||
var tmp = parts[i].split('=', 2);
|
|
||||||
var key = jQuery.urldecode(tmp[0]);
|
|
||||||
var value = jQuery.urldecode(tmp[1]);
|
|
||||||
if (key in result)
|
|
||||||
result[key].push(value);
|
|
||||||
else
|
|
||||||
result[key] = [value];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* highlight a given string on a jquery object by wrapping it in
|
|
||||||
* span elements with the given class name.
|
|
||||||
*/
|
|
||||||
jQuery.fn.highlightText = function(text, className) {
|
|
||||||
function highlight(node, addItems) {
|
|
||||||
if (node.nodeType === 3) {
|
|
||||||
var val = node.nodeValue;
|
|
||||||
var pos = val.toLowerCase().indexOf(text);
|
|
||||||
if (pos >= 0 &&
|
|
||||||
!jQuery(node.parentNode).hasClass(className) &&
|
|
||||||
!jQuery(node.parentNode).hasClass("nohighlight")) {
|
|
||||||
var span;
|
|
||||||
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
|
|
||||||
if (isInSVG) {
|
|
||||||
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
|
|
||||||
} else {
|
|
||||||
span = document.createElement("span");
|
|
||||||
span.className = className;
|
|
||||||
}
|
|
||||||
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
|
||||||
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
|
|
||||||
document.createTextNode(val.substr(pos + text.length)),
|
|
||||||
node.nextSibling));
|
|
||||||
node.nodeValue = val.substr(0, pos);
|
|
||||||
if (isInSVG) {
|
|
||||||
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
|
|
||||||
var bbox = node.parentElement.getBBox();
|
|
||||||
rect.x.baseVal.value = bbox.x;
|
|
||||||
rect.y.baseVal.value = bbox.y;
|
|
||||||
rect.width.baseVal.value = bbox.width;
|
|
||||||
rect.height.baseVal.value = bbox.height;
|
|
||||||
rect.setAttribute('class', className);
|
|
||||||
addItems.push({
|
|
||||||
"parent": node.parentNode,
|
|
||||||
"target": rect});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!jQuery(node).is("button, select, textarea")) {
|
|
||||||
jQuery.each(node.childNodes, function() {
|
|
||||||
highlight(this, addItems);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var addItems = [];
|
|
||||||
var result = this.each(function() {
|
|
||||||
highlight(this, addItems);
|
|
||||||
});
|
|
||||||
for (var i = 0; i < addItems.length; ++i) {
|
|
||||||
jQuery(addItems[i].parent).before(addItems[i].target);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* backward compatibility for jQuery.browser
|
|
||||||
* This will be supported until firefox bug is fixed.
|
|
||||||
*/
|
|
||||||
if (!jQuery.browser) {
|
|
||||||
jQuery.uaMatch = function(ua) {
|
|
||||||
ua = ua.toLowerCase();
|
|
||||||
|
|
||||||
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
|
||||||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
|
|
||||||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
|
|
||||||
/(msie) ([\w.]+)/.exec(ua) ||
|
|
||||||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
|
|
||||||
[];
|
|
||||||
|
|
||||||
return {
|
|
||||||
browser: match[ 1 ] || "",
|
|
||||||
version: match[ 2 ] || "0"
|
|
||||||
};
|
|
||||||
};
|
|
||||||
jQuery.browser = {};
|
|
||||||
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Small JavaScript module for the documentation.
|
* Small JavaScript module for the documentation.
|
||||||
*/
|
*/
|
||||||
var Documentation = {
|
const Documentation = {
|
||||||
|
init: () => {
|
||||||
init : function() {
|
Documentation.initDomainIndexTable();
|
||||||
this.fixFirefoxAnchorBug();
|
Documentation.initOnKeyListeners();
|
||||||
this.highlightSearchWords();
|
|
||||||
this.initIndexTable();
|
|
||||||
if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
|
|
||||||
this.initOnKeyListeners();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* i18n support
|
* i18n support
|
||||||
*/
|
*/
|
||||||
TRANSLATIONS : {},
|
TRANSLATIONS: {},
|
||||||
PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
|
PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
|
||||||
LOCALE : 'unknown',
|
LOCALE: "unknown",
|
||||||
|
|
||||||
// gettext and ngettext don't access this so that the functions
|
// gettext and ngettext don't access this so that the functions
|
||||||
// can safely bound to a different name (_ = Documentation.gettext)
|
// can safely bound to a different name (_ = Documentation.gettext)
|
||||||
gettext : function(string) {
|
gettext: (string) => {
|
||||||
var translated = Documentation.TRANSLATIONS[string];
|
const translated = Documentation.TRANSLATIONS[string];
|
||||||
if (typeof translated === 'undefined')
|
switch (typeof translated) {
|
||||||
return string;
|
case "undefined":
|
||||||
return (typeof translated === 'string') ? translated : translated[0];
|
return string; // no translation
|
||||||
|
case "string":
|
||||||
|
return translated; // translation exists
|
||||||
|
default:
|
||||||
|
return translated[0]; // (singular, plural) translation tuple exists
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
ngettext : function(singular, plural, n) {
|
ngettext: (singular, plural, n) => {
|
||||||
var translated = Documentation.TRANSLATIONS[singular];
|
const translated = Documentation.TRANSLATIONS[singular];
|
||||||
if (typeof translated === 'undefined')
|
if (typeof translated !== "undefined")
|
||||||
return (n == 1) ? singular : plural;
|
return translated[Documentation.PLURAL_EXPR(n)];
|
||||||
return translated[Documentation.PLURALEXPR(n)];
|
return n === 1 ? singular : plural;
|
||||||
},
|
},
|
||||||
|
|
||||||
addTranslations : function(catalog) {
|
addTranslations: (catalog) => {
|
||||||
for (var key in catalog.messages)
|
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
|
||||||
this.TRANSLATIONS[key] = catalog.messages[key];
|
Documentation.PLURAL_EXPR = new Function(
|
||||||
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
|
"n",
|
||||||
this.LOCALE = catalog.locale;
|
`return (${catalog.plural_expr})`
|
||||||
|
);
|
||||||
|
Documentation.LOCALE = catalog.locale;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* add context elements like header anchor links
|
* helper function to focus on search bar
|
||||||
*/
|
*/
|
||||||
addContextElements : function() {
|
focusSearchBar: () => {
|
||||||
$('div[id] > :header:first').each(function() {
|
document.querySelectorAll("input[name=q]")[0]?.focus();
|
||||||
$('<a class="headerlink">\u00B6</a>').
|
|
||||||
attr('href', '#' + this.id).
|
|
||||||
attr('title', _('Permalink to this headline')).
|
|
||||||
appendTo(this);
|
|
||||||
});
|
|
||||||
$('dt[id]').each(function() {
|
|
||||||
$('<a class="headerlink">\u00B6</a>').
|
|
||||||
attr('href', '#' + this.id).
|
|
||||||
attr('title', _('Permalink to this definition')).
|
|
||||||
appendTo(this);
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* workaround a firefox stupidity
|
* Initialise the domain index toggle buttons
|
||||||
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
|
|
||||||
*/
|
*/
|
||||||
fixFirefoxAnchorBug : function() {
|
initDomainIndexTable: () => {
|
||||||
if (document.location.hash && $.browser.mozilla)
|
const toggler = (el) => {
|
||||||
window.setTimeout(function() {
|
const idNumber = el.id.substr(7);
|
||||||
document.location.href += '';
|
const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
|
||||||
}, 10);
|
if (el.src.substr(-9) === "minus.png") {
|
||||||
},
|
el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
|
||||||
|
toggledRows.forEach((el) => (el.style.display = "none"));
|
||||||
/**
|
} else {
|
||||||
* highlight the search words provided in the url in the text
|
el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
|
||||||
*/
|
toggledRows.forEach((el) => (el.style.display = ""));
|
||||||
highlightSearchWords : function() {
|
|
||||||
var params = $.getQueryParameters();
|
|
||||||
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
|
|
||||||
if (terms.length) {
|
|
||||||
var body = $('div.body');
|
|
||||||
if (!body.length) {
|
|
||||||
body = $('body');
|
|
||||||
}
|
}
|
||||||
window.setTimeout(function() {
|
};
|
||||||
$.each(terms, function() {
|
|
||||||
body.highlightText(this.toLowerCase(), 'highlighted');
|
const togglerElements = document.querySelectorAll("img.toggler");
|
||||||
});
|
togglerElements.forEach((el) =>
|
||||||
}, 10);
|
el.addEventListener("click", (event) => toggler(event.currentTarget))
|
||||||
$('<p class="highlight-link"><a href="javascript:Documentation.' +
|
);
|
||||||
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
|
togglerElements.forEach((el) => (el.style.display = ""));
|
||||||
.appendTo($('#searchbox'));
|
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
initOnKeyListeners: () => {
|
||||||
* init the domain index toggle buttons
|
// only install a listener if it is really needed
|
||||||
*/
|
if (
|
||||||
initIndexTable : function() {
|
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
|
||||||
var togglers = $('img.toggler').click(function() {
|
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
|
||||||
var src = $(this).attr('src');
|
)
|
||||||
var idnum = $(this).attr('id').substr(7);
|
return;
|
||||||
$('tr.cg-' + idnum).toggle();
|
|
||||||
if (src.substr(-9) === 'minus.png')
|
|
||||||
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
|
|
||||||
else
|
|
||||||
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
|
|
||||||
}).css('display', '');
|
|
||||||
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
|
|
||||||
togglers.click();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
document.addEventListener("keydown", (event) => {
|
||||||
* helper function to hide the search marks again
|
// bail for input elements
|
||||||
*/
|
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
|
||||||
hideSearchWords : function() {
|
// bail with special keys
|
||||||
$('#searchbox .highlight-link').fadeOut(300);
|
if (event.altKey || event.ctrlKey || event.metaKey) return;
|
||||||
$('span.highlighted').removeClass('highlighted');
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
if (!event.shiftKey) {
|
||||||
* make the url absolute
|
switch (event.key) {
|
||||||
*/
|
case "ArrowLeft":
|
||||||
makeURL : function(relativeURL) {
|
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
||||||
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
const prevLink = document.querySelector('link[rel="prev"]');
|
||||||
* get the current relative url
|
if (prevLink && prevLink.href) {
|
||||||
*/
|
window.location.href = prevLink.href;
|
||||||
getCurrentURL : function() {
|
event.preventDefault();
|
||||||
var path = document.location.pathname;
|
|
||||||
var parts = path.split(/\//);
|
|
||||||
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
|
|
||||||
if (this === '..')
|
|
||||||
parts.pop();
|
|
||||||
});
|
|
||||||
var url = parts.join('/');
|
|
||||||
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
|
|
||||||
},
|
|
||||||
|
|
||||||
initOnKeyListeners: function() {
|
|
||||||
$(document).keydown(function(event) {
|
|
||||||
var activeElementType = document.activeElement.tagName;
|
|
||||||
// don't navigate when in search box, textarea, dropdown or button
|
|
||||||
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
|
|
||||||
&& activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey
|
|
||||||
&& !event.shiftKey) {
|
|
||||||
switch (event.keyCode) {
|
|
||||||
case 37: // left
|
|
||||||
var prevHref = $('link[rel="prev"]').prop('href');
|
|
||||||
if (prevHref) {
|
|
||||||
window.location.href = prevHref;
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 39: // right
|
case "ArrowRight":
|
||||||
var nextHref = $('link[rel="next"]').prop('href');
|
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
||||||
if (nextHref) {
|
|
||||||
window.location.href = nextHref;
|
const nextLink = document.querySelector('link[rel="next"]');
|
||||||
return false;
|
if (nextLink && nextLink.href) {
|
||||||
|
window.location.href = nextLink.href;
|
||||||
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// some keyboard layouts may need Shift to get /
|
||||||
|
switch (event.key) {
|
||||||
|
case "/":
|
||||||
|
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
|
||||||
|
Documentation.focusSearchBar();
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// quick alias for translations
|
// quick alias for translations
|
||||||
_ = Documentation.gettext;
|
const _ = Documentation.gettext;
|
||||||
|
|
||||||
$(document).ready(function() {
|
_ready(Documentation.init);
|
||||||
Documentation.init();
|
|
||||||
});
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||||
VERSION: '',
|
VERSION: '',
|
||||||
LANGUAGE: 'None',
|
LANGUAGE: 'en',
|
||||||
COLLAPSE_INDEX: false,
|
COLLAPSE_INDEX: false,
|
||||||
BUILDER: 'html',
|
BUILDER: 'html',
|
||||||
FILE_SUFFIX: '.html',
|
FILE_SUFFIX: '.html',
|
||||||
LINK_SUFFIX: '.html',
|
LINK_SUFFIX: '.html',
|
||||||
HAS_SOURCE: true,
|
HAS_SOURCE: true,
|
||||||
SOURCELINK_SUFFIX: '.txt',
|
SOURCELINK_SUFFIX: '.txt',
|
||||||
NAVIGATION_WITH_KEYS: false
|
NAVIGATION_WITH_KEYS: false,
|
||||||
|
SHOW_SEARCH_SUMMARY: true,
|
||||||
|
ENABLE_SEARCH_SHORTCUTS: true,
|
||||||
};
|
};
|
@ -1,22 +0,0 @@
|
|||||||
.. Ithamar's AD documentation master file, created by
|
|
||||||
sphinx-quickstart on Sat Nov 19 21:09:44 2022.
|
|
||||||
You can adapt this file completely to your liking, but it should at least
|
|
||||||
contain the root `toctree` directive.
|
|
||||||
|
|
||||||
Welcome to Ithamar's AD's documentation!
|
|
||||||
========================================
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 2
|
|
||||||
:caption: Contents:
|
|
||||||
|
|
||||||
agenda.rst
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Indices and tables
|
|
||||||
==================
|
|
||||||
|
|
||||||
* :ref:`genindex`
|
|
||||||
* :ref:`modindex`
|
|
||||||
* :ref:`search`
|
|
10881
documentation/build/html/_static/jquery.js
vendored
10881
documentation/build/html/_static/jquery.js
vendored
File diff suppressed because one or more lines are too long
@ -5,12 +5,12 @@
|
|||||||
* This script contains the language-specific data used by searchtools.js,
|
* This script contains the language-specific data used by searchtools.js,
|
||||||
* namely the list of stopwords, stemmer, scorer and splitter.
|
* namely the list of stopwords, stemmer, scorer and splitter.
|
||||||
*
|
*
|
||||||
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
|
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
|
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
|
||||||
|
|
||||||
|
|
||||||
/* Non-minified version is copied as a separate JS file, is available */
|
/* Non-minified version is copied as a separate JS file, is available */
|
||||||
@ -197,101 +197,3 @@ var Stemmer = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var splitChars = (function() {
|
|
||||||
var result = {};
|
|
||||||
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
|
|
||||||
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
|
|
||||||
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
|
|
||||||
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
|
|
||||||
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
|
|
||||||
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
|
|
||||||
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
|
|
||||||
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
|
|
||||||
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
|
|
||||||
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
|
|
||||||
var i, j, start, end;
|
|
||||||
for (i = 0; i < singles.length; i++) {
|
|
||||||
result[singles[i]] = true;
|
|
||||||
}
|
|
||||||
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
|
|
||||||
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
|
|
||||||
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
|
|
||||||
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
|
|
||||||
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
|
|
||||||
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
|
|
||||||
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
|
|
||||||
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
|
|
||||||
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
|
|
||||||
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
|
|
||||||
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
|
|
||||||
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
|
|
||||||
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
|
|
||||||
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
|
|
||||||
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
|
|
||||||
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
|
|
||||||
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
|
|
||||||
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
|
|
||||||
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
|
|
||||||
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
|
|
||||||
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
|
|
||||||
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
|
|
||||||
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
|
|
||||||
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
|
|
||||||
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
|
|
||||||
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
|
|
||||||
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
|
|
||||||
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
|
|
||||||
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
|
|
||||||
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
|
|
||||||
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
|
|
||||||
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
|
|
||||||
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
|
|
||||||
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
|
|
||||||
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
|
|
||||||
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
|
|
||||||
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
|
|
||||||
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
|
|
||||||
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
|
|
||||||
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
|
|
||||||
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
|
|
||||||
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
|
|
||||||
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
|
|
||||||
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
|
|
||||||
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
|
|
||||||
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
|
|
||||||
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
|
|
||||||
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
|
|
||||||
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
|
|
||||||
for (i = 0; i < ranges.length; i++) {
|
|
||||||
start = ranges[i][0];
|
|
||||||
end = ranges[i][1];
|
|
||||||
for (j = start; j <= end; j++) {
|
|
||||||
result[j] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
})();
|
|
||||||
|
|
||||||
function splitQuery(query) {
|
|
||||||
var result = [];
|
|
||||||
var start = -1;
|
|
||||||
for (var i = 0; i < query.length; i++) {
|
|
||||||
if (splitChars[query.charCodeAt(i)]) {
|
|
||||||
if (start !== -1) {
|
|
||||||
result.push(query.slice(start, i));
|
|
||||||
start = -1;
|
|
||||||
}
|
|
||||||
} else if (start === -1) {
|
|
||||||
start = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (start !== -1) {
|
|
||||||
result.push(query.slice(start));
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,22 +4,24 @@
|
|||||||
*
|
*
|
||||||
* Sphinx JavaScript utilities for the full-text search.
|
* Sphinx JavaScript utilities for the full-text search.
|
||||||
*
|
*
|
||||||
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
|
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if (!Scorer) {
|
/**
|
||||||
/**
|
* Simple result scoring code.
|
||||||
* Simple result scoring code.
|
*/
|
||||||
*/
|
if (typeof Scorer === "undefined") {
|
||||||
var Scorer = {
|
var Scorer = {
|
||||||
// Implement the following function to further tweak the score for each result
|
// Implement the following function to further tweak the score for each result
|
||||||
// The function takes a result array [filename, title, anchor, descr, score]
|
// The function takes a result array [docname, title, anchor, descr, score, filename]
|
||||||
// and returns the new score.
|
// and returns the new score.
|
||||||
/*
|
/*
|
||||||
score: function(result) {
|
score: result => {
|
||||||
return result[4];
|
const [docname, title, anchor, descr, score, filename] = result
|
||||||
|
return score
|
||||||
},
|
},
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -28,9 +30,11 @@ if (!Scorer) {
|
|||||||
// or matches in the last dotted part of the object name
|
// or matches in the last dotted part of the object name
|
||||||
objPartialMatch: 6,
|
objPartialMatch: 6,
|
||||||
// Additive scores depending on the priority of the object
|
// Additive scores depending on the priority of the object
|
||||||
objPrio: {0: 15, // used to be importantResults
|
objPrio: {
|
||||||
1: 5, // used to be objectResults
|
0: 15, // used to be importantResults
|
||||||
2: -5}, // used to be unimportantResults
|
1: 5, // used to be objectResults
|
||||||
|
2: -5, // used to be unimportantResults
|
||||||
|
},
|
||||||
// Used when the priority is not in the mapping.
|
// Used when the priority is not in the mapping.
|
||||||
objPrioDefault: 0,
|
objPrioDefault: 0,
|
||||||
|
|
||||||
@ -39,459 +43,495 @@ if (!Scorer) {
|
|||||||
partialTitle: 7,
|
partialTitle: 7,
|
||||||
// query found in terms
|
// query found in terms
|
||||||
term: 5,
|
term: 5,
|
||||||
partialTerm: 2
|
partialTerm: 2,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!splitQuery) {
|
const _removeChildren = (element) => {
|
||||||
function splitQuery(query) {
|
while (element && element.lastChild) element.removeChild(element.lastChild);
|
||||||
return query.split(/\s+/);
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
|
||||||
|
*/
|
||||||
|
const _escapeRegExp = (string) =>
|
||||||
|
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
|
||||||
|
|
||||||
|
const _displayItem = (item, searchTerms) => {
|
||||||
|
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
|
||||||
|
const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
|
||||||
|
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
|
||||||
|
const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
|
||||||
|
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
|
||||||
|
|
||||||
|
const [docName, title, anchor, descr, score, _filename] = item;
|
||||||
|
|
||||||
|
let listItem = document.createElement("li");
|
||||||
|
let requestUrl;
|
||||||
|
let linkUrl;
|
||||||
|
if (docBuilder === "dirhtml") {
|
||||||
|
// dirhtml builder
|
||||||
|
let dirname = docName + "/";
|
||||||
|
if (dirname.match(/\/index\/$/))
|
||||||
|
dirname = dirname.substring(0, dirname.length - 6);
|
||||||
|
else if (dirname === "index/") dirname = "";
|
||||||
|
requestUrl = docUrlRoot + dirname;
|
||||||
|
linkUrl = requestUrl;
|
||||||
|
} else {
|
||||||
|
// normal html builders
|
||||||
|
requestUrl = docUrlRoot + docName + docFileSuffix;
|
||||||
|
linkUrl = docName + docLinkSuffix;
|
||||||
}
|
}
|
||||||
|
let linkEl = listItem.appendChild(document.createElement("a"));
|
||||||
|
linkEl.href = linkUrl + anchor;
|
||||||
|
linkEl.dataset.score = score;
|
||||||
|
linkEl.innerHTML = title;
|
||||||
|
if (descr)
|
||||||
|
listItem.appendChild(document.createElement("span")).innerHTML =
|
||||||
|
" (" + descr + ")";
|
||||||
|
else if (showSearchSummary)
|
||||||
|
fetch(requestUrl)
|
||||||
|
.then((responseData) => responseData.text())
|
||||||
|
.then((data) => {
|
||||||
|
if (data)
|
||||||
|
listItem.appendChild(
|
||||||
|
Search.makeSearchSummary(data, searchTerms)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
Search.output.appendChild(listItem);
|
||||||
|
};
|
||||||
|
const _finishSearch = (resultCount) => {
|
||||||
|
Search.stopPulse();
|
||||||
|
Search.title.innerText = _("Search Results");
|
||||||
|
if (!resultCount)
|
||||||
|
Search.status.innerText = Documentation.gettext(
|
||||||
|
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
|
||||||
|
);
|
||||||
|
else
|
||||||
|
Search.status.innerText = _(
|
||||||
|
`Search finished, found ${resultCount} page(s) matching the search query.`
|
||||||
|
);
|
||||||
|
};
|
||||||
|
const _displayNextItem = (
|
||||||
|
results,
|
||||||
|
resultCount,
|
||||||
|
searchTerms
|
||||||
|
) => {
|
||||||
|
// results left, load the summary and display it
|
||||||
|
// this is intended to be dynamic (don't sub resultsCount)
|
||||||
|
if (results.length) {
|
||||||
|
_displayItem(results.pop(), searchTerms);
|
||||||
|
setTimeout(
|
||||||
|
() => _displayNextItem(results, resultCount, searchTerms),
|
||||||
|
5
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// search finished, update title and status message
|
||||||
|
else _finishSearch(resultCount);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a
|
||||||
|
* custom function per language.
|
||||||
|
*
|
||||||
|
* The regular expression works by splitting the string on consecutive characters
|
||||||
|
* that are not Unicode letters, numbers, underscores, or emoji characters.
|
||||||
|
* This is the same as ``\W+`` in Python, preserving the surrogate pair area.
|
||||||
|
*/
|
||||||
|
if (typeof splitQuery === "undefined") {
|
||||||
|
var splitQuery = (query) => query
|
||||||
|
.split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
|
||||||
|
.filter(term => term) // remove remaining empty strings
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search Module
|
* Search Module
|
||||||
*/
|
*/
|
||||||
var Search = {
|
const Search = {
|
||||||
|
_index: null,
|
||||||
|
_queued_query: null,
|
||||||
|
_pulse_status: -1,
|
||||||
|
|
||||||
_index : null,
|
htmlToText: (htmlString) => {
|
||||||
_queued_query : null,
|
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
|
||||||
_pulse_status : -1,
|
htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() });
|
||||||
|
const docContent = htmlElement.querySelector('[role="main"]');
|
||||||
htmlToText : function(htmlString) {
|
if (docContent !== undefined) return docContent.textContent;
|
||||||
var virtualDocument = document.implementation.createHTMLDocument('virtual');
|
console.warn(
|
||||||
var htmlElement = $(htmlString, virtualDocument);
|
"Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template."
|
||||||
htmlElement.find('.headerlink').remove();
|
);
|
||||||
docContent = htmlElement.find('[role=main]')[0];
|
return "";
|
||||||
if(docContent === undefined) {
|
|
||||||
console.warn("Content block not found. Sphinx search tries to obtain it " +
|
|
||||||
"via '[role=main]'. Could you check your theme or template.");
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
return docContent.textContent || docContent.innerText;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
init : function() {
|
init: () => {
|
||||||
var params = $.getQueryParameters();
|
const query = new URLSearchParams(window.location.search).get("q");
|
||||||
if (params.q) {
|
document
|
||||||
var query = params.q[0];
|
.querySelectorAll('input[name="q"]')
|
||||||
$('input[name="q"]')[0].value = query;
|
.forEach((el) => (el.value = query));
|
||||||
this.performSearch(query);
|
if (query) Search.performSearch(query);
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
loadIndex : function(url) {
|
loadIndex: (url) =>
|
||||||
$.ajax({type: "GET", url: url, data: null,
|
(document.body.appendChild(document.createElement("script")).src = url),
|
||||||
dataType: "script", cache: true,
|
|
||||||
complete: function(jqxhr, textstatus) {
|
|
||||||
if (textstatus != "success") {
|
|
||||||
document.getElementById("searchindexloader").src = url;
|
|
||||||
}
|
|
||||||
}});
|
|
||||||
},
|
|
||||||
|
|
||||||
setIndex : function(index) {
|
setIndex: (index) => {
|
||||||
var q;
|
Search._index = index;
|
||||||
this._index = index;
|
if (Search._queued_query !== null) {
|
||||||
if ((q = this._queued_query) !== null) {
|
const query = Search._queued_query;
|
||||||
this._queued_query = null;
|
Search._queued_query = null;
|
||||||
Search.query(q);
|
Search.query(query);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
hasIndex : function() {
|
hasIndex: () => Search._index !== null,
|
||||||
return this._index !== null;
|
|
||||||
},
|
|
||||||
|
|
||||||
deferQuery : function(query) {
|
deferQuery: (query) => (Search._queued_query = query),
|
||||||
this._queued_query = query;
|
|
||||||
},
|
|
||||||
|
|
||||||
stopPulse : function() {
|
stopPulse: () => (Search._pulse_status = -1),
|
||||||
this._pulse_status = 0;
|
|
||||||
},
|
|
||||||
|
|
||||||
startPulse : function() {
|
startPulse: () => {
|
||||||
if (this._pulse_status >= 0)
|
if (Search._pulse_status >= 0) return;
|
||||||
return;
|
|
||||||
function pulse() {
|
const pulse = () => {
|
||||||
var i;
|
|
||||||
Search._pulse_status = (Search._pulse_status + 1) % 4;
|
Search._pulse_status = (Search._pulse_status + 1) % 4;
|
||||||
var dotString = '';
|
Search.dots.innerText = ".".repeat(Search._pulse_status);
|
||||||
for (i = 0; i < Search._pulse_status; i++)
|
if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
|
||||||
dotString += '.';
|
};
|
||||||
Search.dots.text(dotString);
|
|
||||||
if (Search._pulse_status > -1)
|
|
||||||
window.setTimeout(pulse, 500);
|
|
||||||
}
|
|
||||||
pulse();
|
pulse();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* perform a search for something (or wait until index is loaded)
|
* perform a search for something (or wait until index is loaded)
|
||||||
*/
|
*/
|
||||||
performSearch : function(query) {
|
performSearch: (query) => {
|
||||||
// create the required interface elements
|
// create the required interface elements
|
||||||
this.out = $('#search-results');
|
const searchText = document.createElement("h2");
|
||||||
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
|
searchText.textContent = _("Searching");
|
||||||
this.dots = $('<span></span>').appendTo(this.title);
|
const searchSummary = document.createElement("p");
|
||||||
this.status = $('<p class="search-summary"> </p>').appendTo(this.out);
|
searchSummary.classList.add("search-summary");
|
||||||
this.output = $('<ul class="search"/>').appendTo(this.out);
|
searchSummary.innerText = "";
|
||||||
|
const searchList = document.createElement("ul");
|
||||||
|
searchList.classList.add("search");
|
||||||
|
|
||||||
$('#search-progress').text(_('Preparing search...'));
|
const out = document.getElementById("search-results");
|
||||||
this.startPulse();
|
Search.title = out.appendChild(searchText);
|
||||||
|
Search.dots = Search.title.appendChild(document.createElement("span"));
|
||||||
|
Search.status = out.appendChild(searchSummary);
|
||||||
|
Search.output = out.appendChild(searchList);
|
||||||
|
|
||||||
|
const searchProgress = document.getElementById("search-progress");
|
||||||
|
// Some themes don't use the search progress node
|
||||||
|
if (searchProgress) {
|
||||||
|
searchProgress.innerText = _("Preparing search...");
|
||||||
|
}
|
||||||
|
Search.startPulse();
|
||||||
|
|
||||||
// index already loaded, the browser was quick!
|
// index already loaded, the browser was quick!
|
||||||
if (this.hasIndex())
|
if (Search.hasIndex()) Search.query(query);
|
||||||
this.query(query);
|
else Search.deferQuery(query);
|
||||||
else
|
|
||||||
this.deferQuery(query);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* execute search (requires search index to be loaded)
|
* execute search (requires search index to be loaded)
|
||||||
*/
|
*/
|
||||||
query : function(query) {
|
query: (query) => {
|
||||||
var i;
|
const filenames = Search._index.filenames;
|
||||||
|
const docNames = Search._index.docnames;
|
||||||
|
const titles = Search._index.titles;
|
||||||
|
const allTitles = Search._index.alltitles;
|
||||||
|
const indexEntries = Search._index.indexentries;
|
||||||
|
|
||||||
// stem the searchterms and add them to the correct list
|
// stem the search terms and add them to the correct list
|
||||||
var stemmer = new Stemmer();
|
const stemmer = new Stemmer();
|
||||||
var searchterms = [];
|
const searchTerms = new Set();
|
||||||
var excluded = [];
|
const excludedTerms = new Set();
|
||||||
var hlterms = [];
|
const highlightTerms = new Set();
|
||||||
var tmp = splitQuery(query);
|
const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
|
||||||
var objectterms = [];
|
splitQuery(query.trim()).forEach((queryTerm) => {
|
||||||
for (i = 0; i < tmp.length; i++) {
|
const queryTermLower = queryTerm.toLowerCase();
|
||||||
if (tmp[i] !== "") {
|
|
||||||
objectterms.push(tmp[i].toLowerCase());
|
// maybe skip this "word"
|
||||||
}
|
// stopwords array is from language_data.js
|
||||||
|
if (
|
||||||
|
stopwords.indexOf(queryTermLower) !== -1 ||
|
||||||
|
queryTerm.match(/^\d+$/)
|
||||||
|
)
|
||||||
|
return;
|
||||||
|
|
||||||
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
|
|
||||||
// skip this "word"
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// stem the word
|
// stem the word
|
||||||
var word = stemmer.stemWord(tmp[i].toLowerCase());
|
let word = stemmer.stemWord(queryTermLower);
|
||||||
// prevent stemmer from cutting word smaller than two chars
|
|
||||||
if(word.length < 3 && tmp[i].length >= 3) {
|
|
||||||
word = tmp[i];
|
|
||||||
}
|
|
||||||
var toAppend;
|
|
||||||
// select the correct list
|
// select the correct list
|
||||||
if (word[0] == '-') {
|
if (word[0] === "-") excludedTerms.add(word.substr(1));
|
||||||
toAppend = excluded;
|
|
||||||
word = word.substr(1);
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
toAppend = searchterms;
|
searchTerms.add(word);
|
||||||
hlterms.push(tmp[i].toLowerCase());
|
highlightTerms.add(queryTermLower);
|
||||||
}
|
}
|
||||||
// only add if not already in the list
|
});
|
||||||
if (!$u.contains(toAppend, word))
|
|
||||||
toAppend.push(word);
|
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
|
||||||
|
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
|
||||||
}
|
}
|
||||||
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
|
|
||||||
|
|
||||||
// console.debug('SEARCH: searching for:');
|
// console.debug("SEARCH: searching for:");
|
||||||
// console.info('required: ', searchterms);
|
// console.info("required: ", [...searchTerms]);
|
||||||
// console.info('excluded: ', excluded);
|
// console.info("excluded: ", [...excludedTerms]);
|
||||||
|
|
||||||
// prepare search
|
// array of [docname, title, anchor, descr, score, filename]
|
||||||
var terms = this._index.terms;
|
let results = [];
|
||||||
var titleterms = this._index.titleterms;
|
_removeChildren(document.getElementById("search-progress"));
|
||||||
|
|
||||||
// array of [filename, title, anchor, descr, score]
|
const queryLower = query.toLowerCase();
|
||||||
var results = [];
|
for (const [title, foundTitles] of Object.entries(allTitles)) {
|
||||||
$('#search-progress').empty();
|
if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) {
|
||||||
|
for (const [file, id] of foundTitles) {
|
||||||
|
let score = Math.round(100 * queryLower.length / title.length)
|
||||||
|
results.push([
|
||||||
|
docNames[file],
|
||||||
|
titles[file] !== title ? `${titles[file]} > ${title}` : title,
|
||||||
|
id !== null ? "#" + id : "",
|
||||||
|
null,
|
||||||
|
score,
|
||||||
|
filenames[file],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// search for explicit entries in index directives
|
||||||
|
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
|
||||||
|
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
|
||||||
|
for (const [file, id] of foundEntries) {
|
||||||
|
let score = Math.round(100 * queryLower.length / entry.length)
|
||||||
|
results.push([
|
||||||
|
docNames[file],
|
||||||
|
titles[file],
|
||||||
|
id ? "#" + id : "",
|
||||||
|
null,
|
||||||
|
score,
|
||||||
|
filenames[file],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// lookup as object
|
// lookup as object
|
||||||
for (i = 0; i < objectterms.length; i++) {
|
objectTerms.forEach((term) =>
|
||||||
var others = [].concat(objectterms.slice(0, i),
|
results.push(...Search.performObjectSearch(term, objectTerms))
|
||||||
objectterms.slice(i+1, objectterms.length));
|
);
|
||||||
results = results.concat(this.performObjectSearch(objectterms[i], others));
|
|
||||||
}
|
|
||||||
|
|
||||||
// lookup as search terms in fulltext
|
// lookup as search terms in fulltext
|
||||||
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
|
results.push(...Search.performTermsSearch(searchTerms, excludedTerms));
|
||||||
|
|
||||||
// let the scorer override scores with a custom scoring function
|
// let the scorer override scores with a custom scoring function
|
||||||
if (Scorer.score) {
|
if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item)));
|
||||||
for (i = 0; i < results.length; i++)
|
|
||||||
results[i][4] = Scorer.score(results[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// now sort the results by score (in opposite order of appearance, since the
|
// now sort the results by score (in opposite order of appearance, since the
|
||||||
// display function below uses pop() to retrieve items) and then
|
// display function below uses pop() to retrieve items) and then
|
||||||
// alphabetically
|
// alphabetically
|
||||||
results.sort(function(a, b) {
|
results.sort((a, b) => {
|
||||||
var left = a[4];
|
const leftScore = a[4];
|
||||||
var right = b[4];
|
const rightScore = b[4];
|
||||||
if (left > right) {
|
if (leftScore === rightScore) {
|
||||||
return 1;
|
|
||||||
} else if (left < right) {
|
|
||||||
return -1;
|
|
||||||
} else {
|
|
||||||
// same score: sort alphabetically
|
// same score: sort alphabetically
|
||||||
left = a[1].toLowerCase();
|
const leftTitle = a[1].toLowerCase();
|
||||||
right = b[1].toLowerCase();
|
const rightTitle = b[1].toLowerCase();
|
||||||
return (left > right) ? -1 : ((left < right) ? 1 : 0);
|
if (leftTitle === rightTitle) return 0;
|
||||||
|
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
|
||||||
}
|
}
|
||||||
|
return leftScore > rightScore ? 1 : -1;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// remove duplicate search results
|
||||||
|
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
|
||||||
|
let seen = new Set();
|
||||||
|
results = results.reverse().reduce((acc, result) => {
|
||||||
|
let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
|
||||||
|
if (!seen.has(resultStr)) {
|
||||||
|
acc.push(result);
|
||||||
|
seen.add(resultStr);
|
||||||
|
}
|
||||||
|
return acc;
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
results = results.reverse();
|
||||||
|
|
||||||
// for debugging
|
// for debugging
|
||||||
//Search.lastresults = results.slice(); // a copy
|
//Search.lastresults = results.slice(); // a copy
|
||||||
//console.info('search results:', Search.lastresults);
|
// console.info("search results:", Search.lastresults);
|
||||||
|
|
||||||
// print the results
|
// print the results
|
||||||
var resultCount = results.length;
|
_displayNextItem(results, results.length, searchTerms);
|
||||||
function displayNextItem() {
|
|
||||||
// results left, load the summary and display it
|
|
||||||
if (results.length) {
|
|
||||||
var item = results.pop();
|
|
||||||
var listItem = $('<li></li>');
|
|
||||||
var requestUrl = "";
|
|
||||||
var linkUrl = "";
|
|
||||||
if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
|
|
||||||
// dirhtml builder
|
|
||||||
var dirname = item[0] + '/';
|
|
||||||
if (dirname.match(/\/index\/$/)) {
|
|
||||||
dirname = dirname.substring(0, dirname.length-6);
|
|
||||||
} else if (dirname == 'index/') {
|
|
||||||
dirname = '';
|
|
||||||
}
|
|
||||||
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
|
|
||||||
linkUrl = requestUrl;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// normal html builders
|
|
||||||
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
|
|
||||||
linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
|
|
||||||
}
|
|
||||||
listItem.append($('<a/>').attr('href',
|
|
||||||
linkUrl +
|
|
||||||
highlightstring + item[2]).html(item[1]));
|
|
||||||
if (item[3]) {
|
|
||||||
listItem.append($('<span> (' + item[3] + ')</span>'));
|
|
||||||
Search.output.append(listItem);
|
|
||||||
setTimeout(function() {
|
|
||||||
displayNextItem();
|
|
||||||
}, 5);
|
|
||||||
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
|
|
||||||
$.ajax({url: requestUrl,
|
|
||||||
dataType: "text",
|
|
||||||
complete: function(jqxhr, textstatus) {
|
|
||||||
var data = jqxhr.responseText;
|
|
||||||
if (data !== '' && data !== undefined) {
|
|
||||||
var summary = Search.makeSearchSummary(data, searchterms, hlterms);
|
|
||||||
if (summary) {
|
|
||||||
listItem.append(summary);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Search.output.append(listItem);
|
|
||||||
setTimeout(function() {
|
|
||||||
displayNextItem();
|
|
||||||
}, 5);
|
|
||||||
}});
|
|
||||||
} else {
|
|
||||||
// no source available, just display title
|
|
||||||
Search.output.append(listItem);
|
|
||||||
setTimeout(function() {
|
|
||||||
displayNextItem();
|
|
||||||
}, 5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// search finished, update title and status message
|
|
||||||
else {
|
|
||||||
Search.stopPulse();
|
|
||||||
Search.title.text(_('Search Results'));
|
|
||||||
if (!resultCount)
|
|
||||||
Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
|
|
||||||
else
|
|
||||||
Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
|
|
||||||
Search.status.fadeIn(500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
displayNextItem();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* search for object names
|
* search for object names
|
||||||
*/
|
*/
|
||||||
performObjectSearch : function(object, otherterms) {
|
performObjectSearch: (object, objectTerms) => {
|
||||||
var filenames = this._index.filenames;
|
const filenames = Search._index.filenames;
|
||||||
var docnames = this._index.docnames;
|
const docNames = Search._index.docnames;
|
||||||
var objects = this._index.objects;
|
const objects = Search._index.objects;
|
||||||
var objnames = this._index.objnames;
|
const objNames = Search._index.objnames;
|
||||||
var titles = this._index.titles;
|
const titles = Search._index.titles;
|
||||||
|
|
||||||
var i;
|
const results = [];
|
||||||
var results = [];
|
|
||||||
|
|
||||||
for (var prefix in objects) {
|
const objectSearchCallback = (prefix, match) => {
|
||||||
if (!(objects[prefix] instanceof Array)) {
|
const name = match[4]
|
||||||
objects[prefix] = Object.entries(objects[prefix]).map(([name, match]) => [...match, name]);
|
const fullname = (prefix ? prefix + "." : "") + name;
|
||||||
|
const fullnameLower = fullname.toLowerCase();
|
||||||
|
if (fullnameLower.indexOf(object) < 0) return;
|
||||||
|
|
||||||
|
let score = 0;
|
||||||
|
const parts = fullnameLower.split(".");
|
||||||
|
|
||||||
|
// check for different match types: exact matches of full name or
|
||||||
|
// "last name" (i.e. last dotted part)
|
||||||
|
if (fullnameLower === object || parts.slice(-1)[0] === object)
|
||||||
|
score += Scorer.objNameMatch;
|
||||||
|
else if (parts.slice(-1)[0].indexOf(object) > -1)
|
||||||
|
score += Scorer.objPartialMatch; // matches in last name
|
||||||
|
|
||||||
|
const objName = objNames[match[1]][2];
|
||||||
|
const title = titles[match[0]];
|
||||||
|
|
||||||
|
// If more than one term searched for, we require other words to be
|
||||||
|
// found in the name/title/description
|
||||||
|
const otherTerms = new Set(objectTerms);
|
||||||
|
otherTerms.delete(object);
|
||||||
|
if (otherTerms.size > 0) {
|
||||||
|
const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
|
||||||
|
if (
|
||||||
|
[...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
|
||||||
|
)
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) {
|
|
||||||
var match = objects[prefix][iMatch];
|
|
||||||
var name = match[4];
|
|
||||||
var fullname = (prefix ? prefix + '.' : '') + name;
|
|
||||||
var fullnameLower = fullname.toLowerCase()
|
|
||||||
if (fullnameLower.indexOf(object) > -1) {
|
|
||||||
var score = 0;
|
|
||||||
var parts = fullnameLower.split('.');
|
|
||||||
// check for different match types: exact matches of full name or
|
|
||||||
// "last name" (i.e. last dotted part)
|
|
||||||
if (fullnameLower == object || parts[parts.length - 1] == object) {
|
|
||||||
score += Scorer.objNameMatch;
|
|
||||||
// matches in last name
|
|
||||||
} else if (parts[parts.length - 1].indexOf(object) > -1) {
|
|
||||||
score += Scorer.objPartialMatch;
|
|
||||||
}
|
|
||||||
var objname = objnames[match[1]][2];
|
|
||||||
var title = titles[match[0]];
|
|
||||||
// If more than one term searched for, we require other words to be
|
|
||||||
// found in the name/title/description
|
|
||||||
if (otherterms.length > 0) {
|
|
||||||
var haystack = (prefix + ' ' + name + ' ' +
|
|
||||||
objname + ' ' + title).toLowerCase();
|
|
||||||
var allfound = true;
|
|
||||||
for (i = 0; i < otherterms.length; i++) {
|
|
||||||
if (haystack.indexOf(otherterms[i]) == -1) {
|
|
||||||
allfound = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!allfound) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var descr = objname + _(', in ') + title;
|
|
||||||
|
|
||||||
var anchor = match[3];
|
let anchor = match[3];
|
||||||
if (anchor === '')
|
if (anchor === "") anchor = fullname;
|
||||||
anchor = fullname;
|
else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
|
||||||
else if (anchor == '-')
|
|
||||||
anchor = objnames[match[1]][1] + '-' + fullname;
|
|
||||||
// add custom score for some objects according to scorer
|
|
||||||
if (Scorer.objPrio.hasOwnProperty(match[2])) {
|
|
||||||
score += Scorer.objPrio[match[2]];
|
|
||||||
} else {
|
|
||||||
score += Scorer.objPrioDefault;
|
|
||||||
}
|
|
||||||
results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
const descr = objName + _(", in ") + title;
|
||||||
|
|
||||||
|
// add custom score for some objects according to scorer
|
||||||
|
if (Scorer.objPrio.hasOwnProperty(match[2]))
|
||||||
|
score += Scorer.objPrio[match[2]];
|
||||||
|
else score += Scorer.objPrioDefault;
|
||||||
|
|
||||||
|
results.push([
|
||||||
|
docNames[match[0]],
|
||||||
|
fullname,
|
||||||
|
"#" + anchor,
|
||||||
|
descr,
|
||||||
|
score,
|
||||||
|
filenames[match[0]],
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
Object.keys(objects).forEach((prefix) =>
|
||||||
|
objects[prefix].forEach((array) =>
|
||||||
|
objectSearchCallback(prefix, array)
|
||||||
|
)
|
||||||
|
);
|
||||||
return results;
|
return results;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
|
|
||||||
*/
|
|
||||||
escapeRegExp : function(string) {
|
|
||||||
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* search for full-text terms in the index
|
* search for full-text terms in the index
|
||||||
*/
|
*/
|
||||||
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
|
performTermsSearch: (searchTerms, excludedTerms) => {
|
||||||
var docnames = this._index.docnames;
|
// prepare search
|
||||||
var filenames = this._index.filenames;
|
const terms = Search._index.terms;
|
||||||
var titles = this._index.titles;
|
const titleTerms = Search._index.titleterms;
|
||||||
|
const filenames = Search._index.filenames;
|
||||||
|
const docNames = Search._index.docnames;
|
||||||
|
const titles = Search._index.titles;
|
||||||
|
|
||||||
var i, j, file;
|
const scoreMap = new Map();
|
||||||
var fileMap = {};
|
const fileMap = new Map();
|
||||||
var scoreMap = {};
|
|
||||||
var results = [];
|
|
||||||
|
|
||||||
// perform the search on the required terms
|
// perform the search on the required terms
|
||||||
for (i = 0; i < searchterms.length; i++) {
|
searchTerms.forEach((word) => {
|
||||||
var word = searchterms[i];
|
const files = [];
|
||||||
var files = [];
|
const arr = [
|
||||||
var _o = [
|
{ files: terms[word], score: Scorer.term },
|
||||||
{files: terms[word], score: Scorer.term},
|
{ files: titleTerms[word], score: Scorer.title },
|
||||||
{files: titleterms[word], score: Scorer.title}
|
|
||||||
];
|
];
|
||||||
// add support for partial matches
|
// add support for partial matches
|
||||||
if (word.length > 2) {
|
if (word.length > 2) {
|
||||||
var word_regex = this.escapeRegExp(word);
|
const escapedWord = _escapeRegExp(word);
|
||||||
for (var w in terms) {
|
Object.keys(terms).forEach((term) => {
|
||||||
if (w.match(word_regex) && !terms[word]) {
|
if (term.match(escapedWord) && !terms[word])
|
||||||
_o.push({files: terms[w], score: Scorer.partialTerm})
|
arr.push({ files: terms[term], score: Scorer.partialTerm });
|
||||||
}
|
});
|
||||||
}
|
Object.keys(titleTerms).forEach((term) => {
|
||||||
for (var w in titleterms) {
|
if (term.match(escapedWord) && !titleTerms[word])
|
||||||
if (w.match(word_regex) && !titleterms[word]) {
|
arr.push({ files: titleTerms[word], score: Scorer.partialTitle });
|
||||||
_o.push({files: titleterms[w], score: Scorer.partialTitle})
|
});
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// no match but word was a required one
|
// no match but word was a required one
|
||||||
if ($u.every(_o, function(o){return o.files === undefined;})) {
|
if (arr.every((record) => record.files === undefined)) return;
|
||||||
break;
|
|
||||||
}
|
|
||||||
// found search word in contents
|
// found search word in contents
|
||||||
$u.each(_o, function(o) {
|
arr.forEach((record) => {
|
||||||
var _files = o.files;
|
if (record.files === undefined) return;
|
||||||
if (_files === undefined)
|
|
||||||
return
|
|
||||||
|
|
||||||
if (_files.length === undefined)
|
let recordFiles = record.files;
|
||||||
_files = [_files];
|
if (recordFiles.length === undefined) recordFiles = [recordFiles];
|
||||||
files = files.concat(_files);
|
files.push(...recordFiles);
|
||||||
|
|
||||||
// set score for the word in each file to Scorer.term
|
// set score for the word in each file
|
||||||
for (j = 0; j < _files.length; j++) {
|
recordFiles.forEach((file) => {
|
||||||
file = _files[j];
|
if (!scoreMap.has(file)) scoreMap.set(file, {});
|
||||||
if (!(file in scoreMap))
|
scoreMap.get(file)[word] = record.score;
|
||||||
scoreMap[file] = {};
|
});
|
||||||
scoreMap[file][word] = o.score;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// create the mapping
|
// create the mapping
|
||||||
for (j = 0; j < files.length; j++) {
|
files.forEach((file) => {
|
||||||
file = files[j];
|
if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1)
|
||||||
if (file in fileMap && fileMap[file].indexOf(word) === -1)
|
fileMap.get(file).push(word);
|
||||||
fileMap[file].push(word);
|
else fileMap.set(file, [word]);
|
||||||
else
|
});
|
||||||
fileMap[file] = [word];
|
});
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// now check if the files don't contain excluded terms
|
// now check if the files don't contain excluded terms
|
||||||
for (file in fileMap) {
|
const results = [];
|
||||||
var valid = true;
|
for (const [file, wordList] of fileMap) {
|
||||||
|
|
||||||
// check if all requirements are matched
|
// check if all requirements are matched
|
||||||
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
|
|
||||||
searchterms.filter(function(term){return term.length > 2}).length
|
// as search terms with length < 3 are discarded
|
||||||
|
const filteredTermCount = [...searchTerms].filter(
|
||||||
|
(term) => term.length > 2
|
||||||
|
).length;
|
||||||
if (
|
if (
|
||||||
fileMap[file].length != searchterms.length &&
|
wordList.length !== searchTerms.size &&
|
||||||
fileMap[file].length != filteredTermCount
|
wordList.length !== filteredTermCount
|
||||||
) continue;
|
)
|
||||||
|
continue;
|
||||||
|
|
||||||
// ensure that none of the excluded terms is in the search result
|
// ensure that none of the excluded terms is in the search result
|
||||||
for (i = 0; i < excluded.length; i++) {
|
if (
|
||||||
if (terms[excluded[i]] == file ||
|
[...excludedTerms].some(
|
||||||
titleterms[excluded[i]] == file ||
|
(term) =>
|
||||||
$u.contains(terms[excluded[i]] || [], file) ||
|
terms[term] === file ||
|
||||||
$u.contains(titleterms[excluded[i]] || [], file)) {
|
titleTerms[term] === file ||
|
||||||
valid = false;
|
(terms[term] || []).includes(file) ||
|
||||||
break;
|
(titleTerms[term] || []).includes(file)
|
||||||
}
|
)
|
||||||
}
|
)
|
||||||
|
break;
|
||||||
|
|
||||||
// if we have still a valid result we can add it to the result list
|
// select one (max) score for the file.
|
||||||
if (valid) {
|
const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
|
||||||
// select one (max) score for the file.
|
// add result to the result list
|
||||||
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
|
results.push([
|
||||||
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
|
docNames[file],
|
||||||
results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
|
titles[file],
|
||||||
}
|
"",
|
||||||
|
null,
|
||||||
|
score,
|
||||||
|
filenames[file],
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
},
|
},
|
||||||
@ -499,34 +539,28 @@ var Search = {
|
|||||||
/**
|
/**
|
||||||
* helper function to return a node containing the
|
* helper function to return a node containing the
|
||||||
* search summary for a given text. keywords is a list
|
* search summary for a given text. keywords is a list
|
||||||
* of stemmed words, hlwords is the list of normal, unstemmed
|
* of stemmed words.
|
||||||
* words. the first one is used to find the occurrence, the
|
|
||||||
* latter for highlighting it.
|
|
||||||
*/
|
*/
|
||||||
makeSearchSummary : function(htmlText, keywords, hlwords) {
|
makeSearchSummary: (htmlText, keywords) => {
|
||||||
var text = Search.htmlToText(htmlText);
|
const text = Search.htmlToText(htmlText);
|
||||||
if (text == "") {
|
if (text === "") return null;
|
||||||
return null;
|
|
||||||
}
|
const textLower = text.toLowerCase();
|
||||||
var textLower = text.toLowerCase();
|
const actualStartPosition = [...keywords]
|
||||||
var start = 0;
|
.map((k) => textLower.indexOf(k.toLowerCase()))
|
||||||
$.each(keywords, function() {
|
.filter((i) => i > -1)
|
||||||
var i = textLower.indexOf(this.toLowerCase());
|
.slice(-1)[0];
|
||||||
if (i > -1)
|
const startWithContext = Math.max(actualStartPosition - 120, 0);
|
||||||
start = i;
|
|
||||||
});
|
const top = startWithContext === 0 ? "" : "...";
|
||||||
start = Math.max(start - 120, 0);
|
const tail = startWithContext + 240 < text.length ? "..." : "";
|
||||||
var excerpt = ((start > 0) ? '...' : '') +
|
|
||||||
$.trim(text.substr(start, 240)) +
|
let summary = document.createElement("p");
|
||||||
((start + 240 - text.length) ? '...' : '');
|
summary.classList.add("context");
|
||||||
var rv = $('<p class="context"></p>').text(excerpt);
|
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
|
||||||
$.each(hlwords, function() {
|
|
||||||
rv = rv.highlightText(this, 'highlighted');
|
return summary;
|
||||||
});
|
},
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(function() {
|
_ready(Search.init);
|
||||||
Search.init();
|
|
||||||
});
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,8 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" >
|
<html class="writer-html5" lang="en" >
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
<meta charset="utf-8" />
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Ithamar’s Agenda — Ithamar's AD documentation</title>
|
<title>Ithamar’s Agenda — Ithamar's AD documentation</title>
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
@ -14,11 +13,12 @@
|
|||||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||||||
<script src="_static/jquery.js"></script>
|
<script src="_static/jquery.js"></script>
|
||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<link rel="next" title="Cijferlijst" href="cijfers.html" />
|
|
||||||
<link rel="prev" title="Welcome to Ithamar’s AD’s documentation!" href="index.html" />
|
<link rel="prev" title="Welcome to Ithamar’s AD’s documentation!" href="index.html" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -40,8 +40,6 @@
|
|||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Ithamar’s Agenda</a></li>
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Ithamar’s Agenda</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="cijfers.html">Cijferlijst</a></li>
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="escape_room.html">escape-room ithamar</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -68,115 +66,87 @@
|
|||||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
<div itemprop="articleBody">
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
<section id="ithamar-s-agenda">
|
<div class="section" id="ithamar-s-agenda">
|
||||||
<h1>Ithamar’s Agenda<a class="headerlink" href="#ithamar-s-agenda" title="Permalink to this headline"></a></h1>
|
<h1>Ithamar’s Agenda<a class="headerlink" href="#ithamar-s-agenda" title="Permalink to this heading"></a></h1>
|
||||||
<p>Tabel van opdrachten</p>
|
<p>Tabel van opdrachten</p>
|
||||||
<table class="docutils align-default">
|
<table class="docutils align-default">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 32%" />
|
<col style="width: 34%" />
|
||||||
<col style="width: 11%" />
|
<col style="width: 12%" />
|
||||||
<col style="width: 52%" />
|
<col style="width: 55%" />
|
||||||
<col style="width: 5%" />
|
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="row-odd"><th class="head"><p>Wat</p></th>
|
<tr class="row-odd"><th class="head"><p>Wat</p></th>
|
||||||
<th class="head"><p>Wanneer</p></th>
|
<th class="head"><p>Wanneer</p></th>
|
||||||
<th class="head"><p>Opmerking</p></th>
|
<th class="head"><p>Opmerking</p></th>
|
||||||
<th class="head"><p>Status</p></th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="row-even"><td><div class="line-block">
|
<tr class="row-even"><td><div class="line-block">
|
||||||
<div class="line"><br /></div>
|
<div class="line">verslag arduino bluetooth</div>
|
||||||
<div class="line"><br /></div>
|
<div class="line">Opdracht 14: afstandsmeter met leds</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><div class="line-block">
|
<td><div class="line-block">
|
||||||
<div class="line"><br /></div>
|
<div class="line">24 december</div>
|
||||||
<div class="line"><br /></div>
|
<div class="line">ASAP rdm</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><div class="line-block">
|
<td><div class="line-block">
|
||||||
<div class="line"><br /></div>
|
<div class="line">kan digitaal worden opgestuurd</div>
|
||||||
<div class="line"><br /></div>
|
<div class="line">moet worden gepresenteerd</div>
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><div class="line-block">
|
|
||||||
<div class="line"><br /></div>
|
|
||||||
<div class="line"><br /></div>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-odd"><td><p>verslag arduino bluetooth</p></td>
|
<tr class="row-odd"><td><p>Opdracht 21: Sensor uitlezen met Ardutooth</p></td>
|
||||||
<td><p>24 december</p></td>
|
|
||||||
<td><p>kan digitaal worden opgestuurd</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row-even"><td><p>Opdracht 21: Sensor uitlezen met Ardutooth</p></td>
|
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row-odd"><td><p>Elevator pitch zelfreflectie verslag</p></td>
|
|
||||||
<td><p>23 november</p></td>
|
|
||||||
<td><p>Inleveren via teams</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-even"><td><p>Opdracht 22: Onderzoek Security wireless comm.</p></td>
|
<tr class="row-even"><td><p>Opdracht 22: Onderzoek Security wireless comm.</p></td>
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-odd"><td><p>Opdracht 23 IR control</p></td>
|
<tr class="row-odd"><td><p>Opdracht 23 IR control</p></td>
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-even"><td><p>Opdracht 24a - b Ventilator met 433mhz</p></td>
|
<tr class="row-even"><td><p>Opdracht 24a - b Ventilator met 433mhz</p></td>
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-odd"><td><p>Opdracht 25 - tempverloop op SD (thuis)</p></td>
|
<tr class="row-odd"><td><p>Opdracht 25 - tempverloop op SD (thuis)</p></td>
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-even"><td><p>Opdracht 27 - ESP8266 - webserver</p></td>
|
<tr class="row-even"><td><p>Opdracht 27 - ESP8266 - webserver</p></td>
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-odd"><td><p>Opdracht 28 - ESP8266 - client - data-analyse.</p></td>
|
<tr class="row-odd"><td><p>Opdracht 28 - ESP8266 - client - data-analyse.</p></td>
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-even"><td><p>python 2 rgb ledstrip opdracht 2</p></td>
|
<tr class="row-even"><td><p>python 2 rgb ledstrip opdracth 2</p></td>
|
||||||
<td><p>10 december</p></td>
|
<td><p>10 december</p></td>
|
||||||
<td><p>moet worden gepresenteerd</p></td>
|
<td><p>moet worden gepresenteerd</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-odd"><td><p>Cisco week opdrachten</p></td>
|
<tr class="row-odd"><td><p>Cisco week opdrachten</p></td>
|
||||||
<td><p>24 december</p></td>
|
<td><p>24 december</p></td>
|
||||||
<td><p>alle opdrachten moeten gezipt worden ingeleverd aan het einde van de periode</p></td>
|
<td><p>alle opdrachten moeten gezipt worden ingeleverd aan het einde van de periode</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-even"><td><p>workshop escaperoom</p></td>
|
<tr class="row-even"><td><p>workshop escaperoom</p></td>
|
||||||
<td><p>18 januari 2023</p></td>
|
<td><p>18 januari 2023</p></td>
|
||||||
<td><p>de escaperoom moet worden verwerkt in een presentatie tijdens te toetsweek</p></td>
|
<td><p>de escaperoom moet worden verwerkt in een presentatie tijdens te toetsweek</p></td>
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</section>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
<a href="index.html" class="btn btn-neutral float-left" title="Welcome to Ithamar’s AD’s documentation!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
<a href="index.html" class="btn btn-neutral float-left" title="Welcome to Ithamar’s AD’s documentation!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
<a href="cijfers.html" class="btn btn-neutral float-right" title="Cijferlijst" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
@ -1,145 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html class="writer-html5" lang="en" >
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>Cijferlijst — Ithamar's AD documentation</title>
|
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
|
||||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
|
||||||
<script src="_static/jquery.js"></script>
|
|
||||||
<script src="_static/underscore.js"></script>
|
|
||||||
<script src="_static/doctools.js"></script>
|
|
||||||
<script src="_static/js/theme.js"></script>
|
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
|
||||||
<link rel="search" title="Search" href="search.html" />
|
|
||||||
<link rel="next" title="escape-room ithamar" href="escape_room.html" />
|
|
||||||
<link rel="prev" title="Ithamar’s Agenda" href="agenda.html" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="wy-body-for-nav">
|
|
||||||
<div class="wy-grid-for-nav">
|
|
||||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
||||||
<div class="wy-side-scroll">
|
|
||||||
<div class="wy-side-nav-search" >
|
|
||||||
<a href="index.html" class="icon icon-home"> Ithamar's AD
|
|
||||||
</a>
|
|
||||||
<div role="search">
|
|
||||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
||||||
<input type="text" name="q" placeholder="Search docs" />
|
|
||||||
<input type="hidden" name="check_keywords" value="yes" />
|
|
||||||
<input type="hidden" name="area" value="default" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
|
||||||
<ul class="current">
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
|
||||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Cijferlijst</a></li>
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="escape_room.html">escape-room ithamar</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
||||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
||||||
<a href="index.html">Ithamar's AD</a>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<div class="wy-nav-content">
|
|
||||||
<div class="rst-content">
|
|
||||||
<div role="navigation" aria-label="Page navigation">
|
|
||||||
<ul class="wy-breadcrumbs">
|
|
||||||
<li><a href="index.html" class="icon icon-home"></a></li>
|
|
||||||
<li class="breadcrumb-item active">Cijferlijst</li>
|
|
||||||
<li class="wy-breadcrumbs-aside">
|
|
||||||
<a href="_sources/cijfers.rst.txt" rel="nofollow"> View page source</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<hr/>
|
|
||||||
</div>
|
|
||||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
||||||
<div itemprop="articleBody">
|
|
||||||
|
|
||||||
<section id="cijferlijst">
|
|
||||||
<h1>Cijferlijst<a class="headerlink" href="#cijferlijst" title="Permalink to this headline"></a></h1>
|
|
||||||
<table class="docutils align-default">
|
|
||||||
<colgroup>
|
|
||||||
<col style="width: 48%" />
|
|
||||||
<col style="width: 13%" />
|
|
||||||
<col style="width: 32%" />
|
|
||||||
<col style="width: 8%" />
|
|
||||||
</colgroup>
|
|
||||||
<tbody>
|
|
||||||
<tr class="row-odd"><td><p>Vak</p></td>
|
|
||||||
<td><p>Cijfer</p></td>
|
|
||||||
<td><p>studiepunten</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row-even"><td><p>Python 1</p></td>
|
|
||||||
<td><p>8.8</p></td>
|
|
||||||
<td><p>2 studiepunten</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row-odd"><td><p>Cisco 1</p></td>
|
|
||||||
<td><p>9.0</p></td>
|
|
||||||
<td><p>2 studiepunten</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row-even"><td><p>Werkplaats arduino 1A</p></td>
|
|
||||||
<td><p>9.0</p></td>
|
|
||||||
<td><p>2 studiepunten</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row-odd"><td><p>Werkplaats arduino 1B</p></td>
|
|
||||||
<td colspan="2"><p>Nog niet beschikbaar | 4 studiepunten</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row-even"><td><p>Proffesionele vorming</p></td>
|
|
||||||
<td><p>Voldoende</p></td>
|
|
||||||
<td><p>NvT</p></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|
||||||
<a href="agenda.html" class="btn btn-neutral float-left" title="Ithamar’s Agenda" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
|
||||||
<a href="escape_room.html" class="btn btn-neutral float-right" title="escape-room ithamar" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr/>
|
|
||||||
|
|
||||||
<div role="contentinfo">
|
|
||||||
<p>© Copyright 2022, Ithamar.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
||||||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
||||||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
||||||
|
|
||||||
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
jQuery(function () {
|
|
||||||
SphinxRtdTheme.Navigation.enable(true);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,109 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html class="writer-html5" lang="en" >
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>escape-room ithamar — Ithamar's AD documentation</title>
|
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
|
||||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="_static/js/html5shiv.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
|
||||||
<script src="_static/jquery.js"></script>
|
|
||||||
<script src="_static/underscore.js"></script>
|
|
||||||
<script src="_static/doctools.js"></script>
|
|
||||||
<script src="_static/js/theme.js"></script>
|
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
|
||||||
<link rel="search" title="Search" href="search.html" />
|
|
||||||
<link rel="prev" title="Cijferlijst" href="cijfers.html" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="wy-body-for-nav">
|
|
||||||
<div class="wy-grid-for-nav">
|
|
||||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
||||||
<div class="wy-side-scroll">
|
|
||||||
<div class="wy-side-nav-search" >
|
|
||||||
<a href="index.html" class="icon icon-home"> Ithamar's AD
|
|
||||||
</a>
|
|
||||||
<div role="search">
|
|
||||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
||||||
<input type="text" name="q" placeholder="Search docs" />
|
|
||||||
<input type="hidden" name="check_keywords" value="yes" />
|
|
||||||
<input type="hidden" name="area" value="default" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
|
||||||
<ul class="current">
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="cijfers.html">Cijferlijst</a></li>
|
|
||||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">escape-room ithamar</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
||||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
||||||
<a href="index.html">Ithamar's AD</a>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<div class="wy-nav-content">
|
|
||||||
<div class="rst-content">
|
|
||||||
<div role="navigation" aria-label="Page navigation">
|
|
||||||
<ul class="wy-breadcrumbs">
|
|
||||||
<li><a href="index.html" class="icon icon-home"></a></li>
|
|
||||||
<li class="breadcrumb-item active">escape-room ithamar</li>
|
|
||||||
<li class="wy-breadcrumbs-aside">
|
|
||||||
<a href="_sources/escape_room.rst.txt" rel="nofollow"> View page source</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<hr/>
|
|
||||||
</div>
|
|
||||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
||||||
<div itemprop="articleBody">
|
|
||||||
|
|
||||||
<section id="escape-room-ithamar">
|
|
||||||
<h1>escape-room ithamar<a class="headerlink" href="#escape-room-ithamar" title="Permalink to this headline"></a></h1>
|
|
||||||
<p>Documentatie voor ithamar’s escaperoom.</p>
|
|
||||||
<p>Voor jaar 1 periode 2 van mijn studie IoT moet ik een escaperoom maken met een arduino in een groepje. deze escaperoom
|
|
||||||
moet gemaakt worden via de kennis die is opgedaan met de opdrachten van de werkplaats arduino.</p>
|
|
||||||
<p>Het groepje waarbij ik zit heeft als thema: horror, ondanks dit theme is de echte horror een doos vinden om de escaperoom uit te maken
|
|
||||||
en op tijd de puzzles te maken en te kunnen verwerken in deze doos.</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|
||||||
<a href="cijfers.html" class="btn btn-neutral float-left" title="Cijferlijst" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr/>
|
|
||||||
|
|
||||||
<div role="contentinfo">
|
|
||||||
<p>© Copyright 2022, Ithamar.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
||||||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
||||||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
||||||
|
|
||||||
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
jQuery(function () {
|
|
||||||
SphinxRtdTheme.Navigation.enable(true);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -13,7 +13,9 @@
|
|||||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||||||
<script src="_static/jquery.js"></script>
|
<script src="_static/jquery.js"></script>
|
||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="#" />
|
<link rel="index" title="Index" href="#" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
@ -37,8 +39,6 @@
|
|||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="cijfers.html">Cijferlijst</a></li>
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="escape_room.html">escape-room ithamar</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html class="writer-html5" lang="en" >
|
<html class="writer-html5" lang="en" >
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
<meta charset="utf-8" />
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Welcome to Ithamar’s AD’s documentation! — Ithamar's AD documentation</title>
|
<title>Welcome to Ithamar’s AD’s documentation! — Ithamar's AD documentation</title>
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
@ -14,7 +13,9 @@
|
|||||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||||||
<script src="_static/jquery.js"></script>
|
<script src="_static/jquery.js"></script>
|
||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
@ -39,8 +40,6 @@
|
|||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="cijfers.html">Cijferlijst</a></li>
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="escape_room.html">escape-room ithamar</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -67,17 +66,23 @@
|
|||||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
<div itemprop="articleBody">
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
<section id="welcome-to-ithamar-s-ad-s-documentation">
|
<div class="section" id="welcome-to-ithamar-s-ad-s-documentation">
|
||||||
<h1>Welcome to Ithamar’s AD’s documentation!<a class="headerlink" href="#welcome-to-ithamar-s-ad-s-documentation" title="Permalink to this headline"></a></h1>
|
<h1>Welcome to Ithamar’s AD’s documentation!<a class="headerlink" href="#welcome-to-ithamar-s-ad-s-documentation" title="Permalink to this heading"></a></h1>
|
||||||
<div class="toctree-wrapper compound">
|
<div class="toctree-wrapper compound">
|
||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="cijfers.html">Cijferlijst</a></li>
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="escape_room.html">escape-room ithamar</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
|
<div class="section" id="indices-and-tables">
|
||||||
|
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this heading"></a></h1>
|
||||||
|
<ul class="simple">
|
||||||
|
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
|
||||||
|
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
|
||||||
|
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
Binary file not shown.
@ -14,7 +14,9 @@
|
|||||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||||||
<script src="_static/jquery.js"></script>
|
<script src="_static/jquery.js"></script>
|
||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<script src="_static/js/theme.js"></script>
|
<script src="_static/js/theme.js"></script>
|
||||||
<script src="_static/searchtools.js"></script>
|
<script src="_static/searchtools.js"></script>
|
||||||
<script src="_static/language_data.js"></script>
|
<script src="_static/language_data.js"></script>
|
||||||
@ -40,8 +42,6 @@
|
|||||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamar’s Agenda</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="cijfers.html">Cijferlijst</a></li>
|
|
||||||
<li class="toctree-l1"><a class="reference internal" href="escape_room.html">escape-room ithamar</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -1 +1 @@
|
|||||||
Search.setIndex({docnames:["agenda","cijfers","escape_room","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["agenda.rst","cijfers.rst","escape_room.rst","index.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":1,"1":[1,2],"10":0,"14":[],"18":0,"1a":1,"1b":1,"2":[0,1,2],"2023":0,"21":0,"22":0,"23":0,"24":0,"24a":0,"25":0,"27":0,"28":0,"4":1,"433mhz":0,"8":1,"9":1,aan:0,afstandsmet:[],agenda:3,al:2,all:0,analys:0,arduino:[0,1,2],ardutooth:0,asap:[],b:0,beschikbaar:1,bluetooth:0,cijfer:1,cijferlijst:3,cisco:[0,1],client:0,comm:0,control:0,data:0,de:[0,2],decemb:0,deze:2,die:2,digita:0,dit:2,documentati:2,doo:2,echt:2,een:[0,2],eind:0,elev:0,en:2,escap:3,escaperoom:[0,2],esp8266:0,gemaakt:2,gepresenteerd:0,gezipt:0,groepj:2,heeft:2,het:[0,2],horror:2,ik:2,ingeleverd:0,inleveren:0,iot:2,ir:0,jaar:2,januari:0,kan:0,kenni:2,kunnen:2,led:[],ledstrip:0,maken:2,met:[0,2],mijn:2,moet:[0,2],moeten:0,niet:1,nog:1,novemb:0,nvt:1,om:2,ondank:2,onderzoek:0,op:[0,2],opdracht:0,opdrachten:[0,2],opgedaan:2,opgestuurd:0,opmerk:0,period:[0,2],pitch:0,presentati:0,proffesionel:1,puzzl:2,python:[0,1],rdm:[],rgb:0,room:3,s:2,sd:0,secur:0,sensor:0,statu:0,studi:2,studiepunten:1,tabel:0,te:[0,2],team:0,tempverloop:0,thema:2,theme:2,thui:0,tijd:2,tijden:0,toetsweek:0,uit:2,uitlezen:0,vak:1,van:[0,2],ventil:0,verslag:0,verwerken:2,verwerkt:0,via:[0,2],vinden:2,voldoend:1,voor:2,vorm:1,waarbij:2,wanneer:0,wat:0,webserv:0,week:0,werkplaat:[1,2],wireless:0,worden:[0,2],workshop:0,zelfreflecti:0,zit:2},titles:["Ithamar\u2019s Agenda","Cijferlijst","escape-room ithamar","Welcome to Ithamar\u2019s AD\u2019s documentation!"],titleterms:{ad:3,agenda:0,cijferlijst:1,content:3,document:3,escap:2,ithamar:[0,2,3],room:2,s:[0,3],welcom:3}})
|
Search.setIndex({"docnames": ["agenda", "index"], "filenames": ["agenda.rst", "index.rst"], "titles": ["Ithamar\u2019s Agenda", "Welcome to Ithamar\u2019s AD\u2019s documentation!"], "terms": {"index": 1, "modul": 1, "search": 1, "page": 1, "tabel": 0, "van": 0, "opdrachten": 0, "wat": 0, "wanneer": 0, "opmerk": 0, "verslag": 0, "arduino": 0, "bluetooth": 0, "opdracht": 0, "21": 0, "sensor": 0, "uitlezen": 0, "met": 0, "ardutooth": 0, "24": 0, "decemb": 0, "kan": 0, "digita": 0, "worden": 0, "opgestuurd": 0, "moet": 0, "gepresenteerd": 0, "agenda": 1, "14": 0, "afstandsmet": 0, "led": 0, "asap": 0, "rdm": 0, "22": 0, "onderzoek": 0, "secur": 0, "wireless": 0, "comm": 0, "23": 0, "ir": 0, "control": 0, "24a": 0, "b": 0, "ventil": 0, "433mhz": 0, "25": 0, "tempverloop": 0, "op": 0, "sd": 0, "thui": 0, "27": 0, "esp8266": 0, "webserv": 0, "28": 0, "client": 0, "data": 0, "analys": 0, "python": 0, "2": 0, "rgb": 0, "ledstrip": 0, "opdracth": 0, "10": 0, "cisco": 0, "week": 0, "all": 0, "moeten": 0, "gezipt": 0, "ingeleverd": 0, "aan": 0, "het": 0, "eind": 0, "de": 0, "period": 0, "workshop": 0, "escaperoom": 0, "18": 0, "januari": 0, "2023": 0, "verwerkt": 0, "een": 0, "presentati": 0, "tijden": 0, "te": 0, "toetsweek": 0}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"welcom": 1, "ithamar": [0, 1], "": [0, 1], "ad": 1, "document": 1, "indic": 1, "tabl": 1, "agenda": 0, "content": 1}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Welcome to Ithamar\u2019s AD\u2019s documentation!": [[1, "welcome-to-ithamar-s-ad-s-documentation"]], "Contents:": [[1, null]], "Indices and tables": [[1, "indices-and-tables"]], "Ithamar\u2019s Agenda": [[0, "ithamar-s-agenda"]]}, "indexentries": {}})
|
@ -5,35 +5,31 @@ Ithamar's Agenda
|
|||||||
Tabel van opdrachten
|
Tabel van opdrachten
|
||||||
|
|
||||||
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Wat | Wanneer | Opmerking | Status |
|
| Wat | Wanneer | Opmerking |
|
||||||
+================================================+=================+==============================================================================+========+
|
+================================================+=================+==============================================================================+
|
||||||
|| || || || |
|
|| verslag arduino bluetooth || 24 december || kan digitaal worden opgestuurd |
|
||||||
|| || || || |
|
|| Opdracht 14: afstandsmeter met leds || ASAP rdm || moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| verslag arduino bluetooth | 24 december | kan digitaal worden opgestuurd | |
|
| Opdracht 21: Sensor uitlezen met Ardutooth | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 21: Sensor uitlezen met Ardutooth | 24 december | moet worden gepresenteerd | |
|
| Opdracht 22: Onderzoek Security wireless comm. | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Elevator pitch zelfreflectie verslag | 23 november | Inleveren via teams | |
|
| Opdracht 23 IR control | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 22: Onderzoek Security wireless comm. | 24 december | moet worden gepresenteerd | |
|
| Opdracht 24a - b Ventilator met 433mhz | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 23 IR control | 24 december | moet worden gepresenteerd | |
|
| Opdracht 25 - tempverloop op SD (thuis) | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 24a - b Ventilator met 433mhz | 24 december | moet worden gepresenteerd | |
|
| Opdracht 27 - ESP8266 - webserver | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 25 - tempverloop op SD (thuis) | 24 december | moet worden gepresenteerd | |
|
| Opdracht 28 - ESP8266 - client - data-analyse. | 24 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 27 - ESP8266 - webserver | 24 december | moet worden gepresenteerd | |
|
| python 2 rgb ledstrip opdracth 2 | 10 december | moet worden gepresenteerd |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Opdracht 28 - ESP8266 - client - data-analyse. | 24 december | moet worden gepresenteerd | |
|
| Cisco week opdrachten | 24 december | alle opdrachten moeten gezipt worden ingeleverd aan het einde van de periode |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| python 2 rgb ledstrip opdracht 2 | 10 december | moet worden gepresenteerd | |
|
| workshop escaperoom | 18 januari 2023 | de escaperoom moet worden verwerkt in een presentatie tijdens te toetsweek |
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
|
||||||
| Cisco week opdrachten | 24 december | alle opdrachten moeten gezipt worden ingeleverd aan het einde van de periode | |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
|
||||||
| workshop escaperoom | 18 januari 2023 | de escaperoom moet worden verwerkt in een presentatie tijdens te toetsweek | |
|
|
||||||
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
***********
|
|
||||||
Cijferlijst
|
|
||||||
***********
|
|
||||||
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Vak | Cijfer | studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Python 1 | 8.8 | 2 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Cisco 1 | 9.0 | 2 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Werkplaats arduino 1A | 9.0 | 2 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Werkplaats arduino 1B | Nog niet beschikbaar | 4 studiepunten | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
||||||
| Proffesionele vorming | Voldoende | NvT | |
|
|
||||||
+------------------------------------------------+-------------+--------------------------------+--------+
|
|
@ -13,7 +13,7 @@ author = 'Ithamar'
|
|||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||||
|
|
||||||
extensions = ['sphinx.ext.autosectionlabel']
|
extensions = []
|
||||||
|
|
||||||
templates_path = ['_templates']
|
templates_path = ['_templates']
|
||||||
exclude_patterns = []
|
exclude_patterns = []
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
*******************
|
|
||||||
escape-room ithamar
|
|
||||||
*******************
|
|
||||||
Documentatie voor ithamar's escaperoom.
|
|
||||||
|
|
||||||
Voor jaar 1 periode 2 van mijn studie IoT moet ik een escaperoom maken met een arduino in een groepje. deze escaperoom
|
|
||||||
moet gemaakt worden via de kennis die is opgedaan met de opdrachten van de werkplaats arduino.
|
|
||||||
|
|
||||||
Het groepje waarbij ik zit heeft als thema: horror, ondanks dit theme is de echte horror een doos vinden om de escaperoom uit te maken
|
|
||||||
en op tijd de puzzles te maken en te kunnen verwerken in deze doos.
|
|
||||||
|
|
||||||
De puzzel die ik wil maken is afgeleid van de ::ref:`https://www.youtube.com/watch?v=VaPQGiTq8Bc`<"oneshot color puzzle"
|
|
@ -11,5 +11,12 @@ Welcome to Ithamar's AD's documentation!
|
|||||||
:caption: Contents:
|
:caption: Contents:
|
||||||
|
|
||||||
agenda.rst
|
agenda.rst
|
||||||
cijfers.rst
|
|
||||||
escape_room.rst
|
|
||||||
|
|
||||||
|
Indices and tables
|
||||||
|
==================
|
||||||
|
|
||||||
|
* :ref:`genindex`
|
||||||
|
* :ref:`modindex`
|
||||||
|
* :ref:`search`
|
||||||
|
Loading…
Reference in New Issue
Block a user