Compare commits

..

4 Commits

33 changed files with 14218 additions and 657 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
# 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.
config: d46b0678c8f738d7c9c9f1776b28e194
config: a5515a6cd53f0d2a1fdff39f937866af
tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -5,31 +5,35 @@ 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 |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| Wat | Wanneer | Opmerking | Status |
+================================================+=================+==============================================================================+========+
|| || || || |
|| || || || |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| verslag arduino bluetooth | 24 december | kan digitaal worden opgestuurd | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| Opdracht 21: Sensor uitlezen met Ardutooth | 24 december | moet worden gepresenteerd | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| Elevator pitch zelfreflectie verslag | 23 november | Inleveren via teams | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| 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 opdracht 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 | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+

View File

@ -0,0 +1,17 @@
***********
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 | |
+------------------------------------------------+-------------+--------------------------------+--------+

View File

@ -0,0 +1,10 @@
*******************
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.

View File

@ -11,12 +11,5 @@ Welcome to Ithamar's AD's documentation!
:caption: Contents:
agenda.rst
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
cijfers.rst
escape_room.rst

View File

@ -0,0 +1,35 @@
****************
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 |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+

View File

@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@ -222,7 +222,7 @@ table.modindextable td {
/* -- general body styles --------------------------------------------------- */
div.body {
min-width: 360px;
min-width: 450px;
max-width: 800px;
}
@ -236,6 +236,7 @@ div.body p, div.body dd, div.body li, div.body blockquote {
a.headerlink {
visibility: hidden;
}
a.brackets:before,
span.brackets > a:before{
content: "[";
@ -246,7 +247,6 @@ span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
@ -334,11 +334,13 @@ aside.sidebar {
p.sidebar-title {
font-weight: bold;
}
div.admonition, div.topic, blockquote {
clear: left;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px;
@ -426,6 +428,10 @@ table.docutils td, table.docutils th {
border-bottom: 1px solid #aaa;
}
table.footnote td, table.footnote th {
border: 0 !important;
}
th {
text-align: left;
padding-right: 5px;
@ -608,6 +614,7 @@ ol.simple p,
ul.simple p {
margin-bottom: 0;
}
dl.footnote > dt,
dl.citation > dt {
float: left;
@ -636,11 +643,11 @@ dl.field-list > dt {
padding-left: 0.5em;
padding-right: 5px;
}
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd {
padding-left: 0.5em;
margin-top: 0em;
@ -750,7 +757,6 @@ span.pre {
-ms-hyphens: none;
-webkit-hyphens: none;
hyphens: none;
white-space: nowrap;
}
div[class*="highlight-"] {

View File

@ -0,0 +1,27 @@
# 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 = ['']

View File

@ -2,155 +2,322 @@
* doctools.js
* ~~~~~~~~~~~
*
* Base JavaScript utilities for all Sphinx HTML documentation.
* Sphinx JavaScript utilities for all documentation.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
"use strict";
const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
"TEXTAREA",
"INPUT",
"SELECT",
"BUTTON",
]);
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
const _ready = (callback) => {
if (document.readyState !== "loading") {
callback();
} else {
document.addEventListener("DOMContentLoaded", callback);
/**
* make the code below compatible with browsers without
* an installed firebug like debugger
if (!window.console || !console.firebug) {
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
"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.
*/
const Documentation = {
init: () => {
Documentation.initDomainIndexTable();
Documentation.initOnKeyListeners();
var Documentation = {
init : function() {
this.fixFirefoxAnchorBug();
this.highlightSearchWords();
this.initIndexTable();
if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
this.initOnKeyListeners();
}
},
/**
* i18n support
*/
TRANSLATIONS: {},
PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
LOCALE: "unknown",
TRANSLATIONS : {},
PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
LOCALE : 'unknown',
// gettext and ngettext don't access this so that the functions
// can safely bound to a different name (_ = Documentation.gettext)
gettext: (string) => {
const translated = Documentation.TRANSLATIONS[string];
switch (typeof translated) {
case "undefined":
return string; // no translation
case "string":
return translated; // translation exists
default:
return translated[0]; // (singular, plural) translation tuple exists
gettext : function(string) {
var translated = Documentation.TRANSLATIONS[string];
if (typeof translated === 'undefined')
return string;
return (typeof translated === 'string') ? translated : translated[0];
},
ngettext : function(singular, plural, n) {
var translated = Documentation.TRANSLATIONS[singular];
if (typeof translated === 'undefined')
return (n == 1) ? singular : plural;
return translated[Documentation.PLURALEXPR(n)];
},
addTranslations : function(catalog) {
for (var key in catalog.messages)
this.TRANSLATIONS[key] = catalog.messages[key];
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
this.LOCALE = catalog.locale;
},
/**
* add context elements like header anchor links
*/
addContextElements : function() {
$('div[id] > :header:first').each(function() {
$('<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
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
*/
fixFirefoxAnchorBug : function() {
if (document.location.hash && $.browser.mozilla)
window.setTimeout(function() {
document.location.href += '';
}, 10);
},
/**
* highlight the search words provided in the url in the text
*/
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');
});
}, 10);
$('<p class="highlight-link"><a href="javascript:Documentation.' +
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
.appendTo($('#searchbox'));
}
},
ngettext: (singular, plural, n) => {
const translated = Documentation.TRANSLATIONS[singular];
if (typeof translated !== "undefined")
return translated[Documentation.PLURAL_EXPR(n)];
return n === 1 ? singular : plural;
},
addTranslations: (catalog) => {
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
Documentation.PLURAL_EXPR = new Function(
"n",
`return (${catalog.plural_expr})`
);
Documentation.LOCALE = catalog.locale;
/**
* init the domain index toggle buttons
*/
initIndexTable : function() {
var togglers = $('img.toggler').click(function() {
var src = $(this).attr('src');
var idnum = $(this).attr('id').substr(7);
$('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();
}
},
/**
* helper function to focus on search bar
* helper function to hide the search marks again
*/
focusSearchBar: () => {
document.querySelectorAll("input[name=q]")[0]?.focus();
hideSearchWords : function() {
$('#searchbox .highlight-link').fadeOut(300);
$('span.highlighted').removeClass('highlighted');
},
/**
* Initialise the domain index toggle buttons
* make the url absolute
*/
initDomainIndexTable: () => {
const toggler = (el) => {
const idNumber = el.id.substr(7);
const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
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 {
el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
toggledRows.forEach((el) => (el.style.display = ""));
}
};
const togglerElements = document.querySelectorAll("img.toggler");
togglerElements.forEach((el) =>
el.addEventListener("click", (event) => toggler(event.currentTarget))
);
togglerElements.forEach((el) => (el.style.display = ""));
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
makeURL : function(relativeURL) {
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
},
initOnKeyListeners: () => {
// only install a listener if it is really needed
if (
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
)
return;
/**
* get the current relative url
*/
getCurrentURL : function() {
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);
},
document.addEventListener("keydown", (event) => {
// bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
// bail with special keys
if (event.altKey || event.ctrlKey || event.metaKey) return;
if (!event.shiftKey) {
switch (event.key) {
case "ArrowLeft":
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
const prevLink = document.querySelector('link[rel="prev"]');
if (prevLink && prevLink.href) {
window.location.href = prevLink.href;
event.preventDefault();
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;
case "ArrowRight":
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
const nextLink = document.querySelector('link[rel="next"]');
if (nextLink && nextLink.href) {
window.location.href = nextLink.href;
event.preventDefault();
case 39: // right
var nextHref = $('link[rel="next"]').prop('href');
if (nextHref) {
window.location.href = nextHref;
return false;
}
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
const _ = Documentation.gettext;
_ = Documentation.gettext;
_ready(Documentation.init);
$(document).ready(function() {
Documentation.init();
});

View File

@ -1,14 +1,12 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '',
LANGUAGE: 'en',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',
FILE_SUFFIX: '.html',
LINK_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false,
SHOW_SEARCH_SUMMARY: true,
ENABLE_SEARCH_SHORTCUTS: true,
NAVIGATION_WITH_KEYS: false
};

View File

@ -0,0 +1,22 @@
.. 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`

File diff suppressed because one or more lines are too long

View File

@ -5,12 +5,12 @@
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
* :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 */
@ -197,3 +197,101 @@ 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;
}

View File

@ -4,24 +4,22 @@
*
* Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
"use strict";
/**
* Simple result scoring code.
*/
if (typeof Scorer === "undefined") {
if (!Scorer) {
/**
* Simple result scoring code.
*/
var Scorer = {
// Implement the following function to further tweak the score for each result
// The function takes a result array [docname, title, anchor, descr, score, filename]
// The function takes a result array [filename, title, anchor, descr, score]
// and returns the new score.
/*
score: result => {
const [docname, title, anchor, descr, score, filename] = result
return score
score: function(result) {
return result[4];
},
*/
@ -30,11 +28,9 @@ if (typeof Scorer === "undefined") {
// or matches in the last dotted part of the object name
objPartialMatch: 6,
// Additive scores depending on the priority of the object
objPrio: {
0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5, // used to be unimportantResults
},
objPrio: {0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5}, // used to be unimportantResults
// Used when the priority is not in the mapping.
objPrioDefault: 0,
@ -43,495 +39,459 @@ if (typeof Scorer === "undefined") {
partialTitle: 7,
// query found in terms
term: 5,
partialTerm: 2,
partialTerm: 2
};
}
const _removeChildren = (element) => {
while (element && element.lastChild) element.removeChild(element.lastChild);
};
/**
* 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;
if (!splitQuery) {
function splitQuery(query) {
return query.split(/\s+/);
}
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
*/
const Search = {
_index: null,
_queued_query: null,
_pulse_status: -1,
var Search = {
htmlToText: (htmlString) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() });
const docContent = htmlElement.querySelector('[role="main"]');
if (docContent !== undefined) return docContent.textContent;
console.warn(
"Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template."
);
return "";
_index : null,
_queued_query : null,
_pulse_status : -1,
htmlToText : function(htmlString) {
var virtualDocument = document.implementation.createHTMLDocument('virtual');
var htmlElement = $(htmlString, virtualDocument);
htmlElement.find('.headerlink').remove();
docContent = htmlElement.find('[role=main]')[0];
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: () => {
const query = new URLSearchParams(window.location.search).get("q");
document
.querySelectorAll('input[name="q"]')
.forEach((el) => (el.value = query));
if (query) Search.performSearch(query);
init : function() {
var params = $.getQueryParameters();
if (params.q) {
var query = params.q[0];
$('input[name="q"]')[0].value = query;
this.performSearch(query);
}
},
loadIndex: (url) =>
(document.body.appendChild(document.createElement("script")).src = url),
loadIndex : function(url) {
$.ajax({type: "GET", url: url, data: null,
dataType: "script", cache: true,
complete: function(jqxhr, textstatus) {
if (textstatus != "success") {
document.getElementById("searchindexloader").src = url;
}
}});
},
setIndex: (index) => {
Search._index = index;
if (Search._queued_query !== null) {
const query = Search._queued_query;
Search._queued_query = null;
Search.query(query);
setIndex : function(index) {
var q;
this._index = index;
if ((q = this._queued_query) !== null) {
this._queued_query = null;
Search.query(q);
}
},
hasIndex: () => Search._index !== null,
hasIndex : function() {
return this._index !== null;
},
deferQuery: (query) => (Search._queued_query = query),
deferQuery : function(query) {
this._queued_query = query;
},
stopPulse: () => (Search._pulse_status = -1),
stopPulse : function() {
this._pulse_status = 0;
},
startPulse: () => {
if (Search._pulse_status >= 0) return;
const pulse = () => {
startPulse : function() {
if (this._pulse_status >= 0)
return;
function pulse() {
var i;
Search._pulse_status = (Search._pulse_status + 1) % 4;
Search.dots.innerText = ".".repeat(Search._pulse_status);
if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
};
var dotString = '';
for (i = 0; i < Search._pulse_status; i++)
dotString += '.';
Search.dots.text(dotString);
if (Search._pulse_status > -1)
window.setTimeout(pulse, 500);
}
pulse();
},
/**
* perform a search for something (or wait until index is loaded)
*/
performSearch: (query) => {
performSearch : function(query) {
// create the required interface elements
const searchText = document.createElement("h2");
searchText.textContent = _("Searching");
const searchSummary = document.createElement("p");
searchSummary.classList.add("search-summary");
searchSummary.innerText = "";
const searchList = document.createElement("ul");
searchList.classList.add("search");
this.out = $('#search-results');
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
this.dots = $('<span></span>').appendTo(this.title);
this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
this.output = $('<ul class="search"/>').appendTo(this.out);
const out = document.getElementById("search-results");
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();
$('#search-progress').text(_('Preparing search...'));
this.startPulse();
// index already loaded, the browser was quick!
if (Search.hasIndex()) Search.query(query);
else Search.deferQuery(query);
if (this.hasIndex())
this.query(query);
else
this.deferQuery(query);
},
/**
* execute search (requires search index to be loaded)
*/
query: (query) => {
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;
query : function(query) {
var i;
// stem the search terms and add them to the correct list
const stemmer = new Stemmer();
const searchTerms = new Set();
const excludedTerms = new Set();
const highlightTerms = new Set();
const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
splitQuery(query.trim()).forEach((queryTerm) => {
const queryTermLower = queryTerm.toLowerCase();
// maybe skip this "word"
// stopwords array is from language_data.js
if (
stopwords.indexOf(queryTermLower) !== -1 ||
queryTerm.match(/^\d+$/)
)
return;
// stem the searchterms and add them to the correct list
var stemmer = new Stemmer();
var searchterms = [];
var excluded = [];
var hlterms = [];
var tmp = splitQuery(query);
var objectterms = [];
for (i = 0; i < tmp.length; i++) {
if (tmp[i] !== "") {
objectterms.push(tmp[i].toLowerCase());
}
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
// skip this "word"
continue;
}
// stem the word
let word = stemmer.stemWord(queryTermLower);
var word = stemmer.stemWord(tmp[i].toLowerCase());
// 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
if (word[0] === "-") excludedTerms.add(word.substr(1));
if (word[0] == '-') {
toAppend = excluded;
word = word.substr(1);
}
else {
searchTerms.add(word);
highlightTerms.add(queryTermLower);
toAppend = searchterms;
hlterms.push(tmp[i].toLowerCase());
}
});
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
// only add if not already in the list
if (!$u.contains(toAppend, word))
toAppend.push(word);
}
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
// console.debug("SEARCH: searching for:");
// console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]);
// console.debug('SEARCH: searching for:');
// console.info('required: ', searchterms);
// console.info('excluded: ', excluded);
// array of [docname, title, anchor, descr, score, filename]
let results = [];
_removeChildren(document.getElementById("search-progress"));
// prepare search
var terms = this._index.terms;
var titleterms = this._index.titleterms;
const queryLower = query.toLowerCase();
for (const [title, foundTitles] of Object.entries(allTitles)) {
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],
]);
}
}
}
// array of [filename, title, anchor, descr, score]
var results = [];
$('#search-progress').empty();
// lookup as object
objectTerms.forEach((term) =>
results.push(...Search.performObjectSearch(term, objectTerms))
);
for (i = 0; i < objectterms.length; i++) {
var others = [].concat(objectterms.slice(0, i),
objectterms.slice(i+1, objectterms.length));
results = results.concat(this.performObjectSearch(objectterms[i], others));
}
// lookup as search terms in fulltext
results.push(...Search.performTermsSearch(searchTerms, excludedTerms));
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
// let the scorer override scores with a custom scoring function
if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item)));
if (Scorer.score) {
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
// display function below uses pop() to retrieve items) and then
// alphabetically
results.sort((a, b) => {
const leftScore = a[4];
const rightScore = b[4];
if (leftScore === rightScore) {
results.sort(function(a, b) {
var left = a[4];
var right = b[4];
if (left > right) {
return 1;
} else if (left < right) {
return -1;
} else {
// same score: sort alphabetically
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
left = a[1].toLowerCase();
right = b[1].toLowerCase();
return (left > right) ? -1 : ((left < right) ? 1 : 0);
}
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
//Search.lastresults = results.slice(); // a copy
// console.info("search results:", Search.lastresults);
//console.info('search results:', Search.lastresults);
// print the results
_displayNextItem(results, results.length, searchTerms);
var resultCount = results.length;
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
*/
performObjectSearch: (object, objectTerms) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const objects = Search._index.objects;
const objNames = Search._index.objnames;
const titles = Search._index.titles;
performObjectSearch : function(object, otherterms) {
var filenames = this._index.filenames;
var docnames = this._index.docnames;
var objects = this._index.objects;
var objnames = this._index.objnames;
var titles = this._index.titles;
const results = [];
var i;
var results = [];
const objectSearchCallback = (prefix, match) => {
const name = match[4]
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 prefix in objects) {
if (!(objects[prefix] instanceof Array)) {
objects[prefix] = Object.entries(objects[prefix]).map(([name, match]) => [...match, name]);
}
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;
let anchor = match[3];
if (anchor === "") anchor = fullname;
else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
var anchor = match[3];
if (anchor === '')
anchor = 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;
},
/**
* 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
*/
performTermsSearch: (searchTerms, excludedTerms) => {
// prepare search
const terms = Search._index.terms;
const titleTerms = Search._index.titleterms;
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
var docnames = this._index.docnames;
var filenames = this._index.filenames;
var titles = this._index.titles;
const scoreMap = new Map();
const fileMap = new Map();
var i, j, file;
var fileMap = {};
var scoreMap = {};
var results = [];
// perform the search on the required terms
searchTerms.forEach((word) => {
const files = [];
const arr = [
{ files: terms[word], score: Scorer.term },
{ files: titleTerms[word], score: Scorer.title },
for (i = 0; i < searchterms.length; i++) {
var word = searchterms[i];
var files = [];
var _o = [
{files: terms[word], score: Scorer.term},
{files: titleterms[word], score: Scorer.title}
];
// add support for partial matches
if (word.length > 2) {
const escapedWord = _escapeRegExp(word);
Object.keys(terms).forEach((term) => {
if (term.match(escapedWord) && !terms[word])
arr.push({ files: terms[term], score: Scorer.partialTerm });
});
Object.keys(titleTerms).forEach((term) => {
if (term.match(escapedWord) && !titleTerms[word])
arr.push({ files: titleTerms[word], score: Scorer.partialTitle });
});
var word_regex = this.escapeRegExp(word);
for (var w in terms) {
if (w.match(word_regex) && !terms[word]) {
_o.push({files: terms[w], score: Scorer.partialTerm})
}
}
for (var w in titleterms) {
if (w.match(word_regex) && !titleterms[word]) {
_o.push({files: titleterms[w], score: Scorer.partialTitle})
}
}
}
// no match but word was a required one
if (arr.every((record) => record.files === undefined)) return;
if ($u.every(_o, function(o){return o.files === undefined;})) {
break;
}
// found search word in contents
arr.forEach((record) => {
if (record.files === undefined) return;
$u.each(_o, function(o) {
var _files = o.files;
if (_files === undefined)
return
let recordFiles = record.files;
if (recordFiles.length === undefined) recordFiles = [recordFiles];
files.push(...recordFiles);
if (_files.length === undefined)
_files = [_files];
files = files.concat(_files);
// set score for the word in each file
recordFiles.forEach((file) => {
if (!scoreMap.has(file)) scoreMap.set(file, {});
scoreMap.get(file)[word] = record.score;
});
// set score for the word in each file to Scorer.term
for (j = 0; j < _files.length; j++) {
file = _files[j];
if (!(file in scoreMap))
scoreMap[file] = {};
scoreMap[file][word] = o.score;
}
});
// create the mapping
files.forEach((file) => {
if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1)
fileMap.get(file).push(word);
else fileMap.set(file, [word]);
});
});
for (j = 0; j < files.length; j++) {
file = files[j];
if (file in fileMap && fileMap[file].indexOf(word) === -1)
fileMap[file].push(word);
else
fileMap[file] = [word];
}
}
// now check if the files don't contain excluded terms
const results = [];
for (const [file, wordList] of fileMap) {
// check if all requirements are matched
for (file in fileMap) {
var valid = true;
// as search terms with length < 3 are discarded
const filteredTermCount = [...searchTerms].filter(
(term) => term.length > 2
).length;
// 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
if (
wordList.length !== searchTerms.size &&
wordList.length !== filteredTermCount
)
continue;
fileMap[file].length != searchterms.length &&
fileMap[file].length != filteredTermCount
) continue;
// ensure that none of the excluded terms is in the search result
if (
[...excludedTerms].some(
(term) =>
terms[term] === file ||
titleTerms[term] === file ||
(terms[term] || []).includes(file) ||
(titleTerms[term] || []).includes(file)
)
)
break;
for (i = 0; i < excluded.length; i++) {
if (terms[excluded[i]] == file ||
titleterms[excluded[i]] == file ||
$u.contains(terms[excluded[i]] || [], file) ||
$u.contains(titleterms[excluded[i]] || [], file)) {
valid = false;
break;
}
}
// select one (max) score for the file.
const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
// add result to the result list
results.push([
docNames[file],
titles[file],
"",
null,
score,
filenames[file],
]);
// if we have still a valid result we can add it to the result list
if (valid) {
// select one (max) score for the file.
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
}
}
return results;
},
@ -539,28 +499,34 @@ const Search = {
/**
* helper function to return a node containing the
* search summary for a given text. keywords is a list
* of stemmed words.
* of stemmed words, hlwords is the list of normal, unstemmed
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/
makeSearchSummary: (htmlText, keywords) => {
const text = Search.htmlToText(htmlText);
if (text === "") return null;
const textLower = text.toLowerCase();
const actualStartPosition = [...keywords]
.map((k) => textLower.indexOf(k.toLowerCase()))
.filter((i) => i > -1)
.slice(-1)[0];
const startWithContext = Math.max(actualStartPosition - 120, 0);
const top = startWithContext === 0 ? "" : "...";
const tail = startWithContext + 240 < text.length ? "..." : "";
let summary = document.createElement("p");
summary.classList.add("context");
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
return summary;
},
makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText);
if (text == "") {
return null;
}
var textLower = text.toLowerCase();
var start = 0;
$.each(keywords, function() {
var i = textLower.indexOf(this.toLowerCase());
if (i > -1)
start = i;
});
start = Math.max(start - 120, 0);
var excerpt = ((start > 0) ? '...' : '') +
$.trim(text.substr(start, 240)) +
((start + 240 - text.length) ? '...' : '');
var rv = $('<p class="context"></p>').text(excerpt);
$.each(hlwords, function() {
rv = rv.highlightText(this, 'highlighted');
});
return rv;
}
};
_ready(Search.init);
$(document).ready(function() {
Search.init();
});

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,8 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<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>Ithamars Agenda &mdash; Ithamar&#39;s AD documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -13,12 +14,11 @@
<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/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.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="Cijferlijst" href="cijfers.html" />
<link rel="prev" title="Welcome to Ithamars ADs documentation!" href="index.html" />
</head>
@ -40,6 +40,8 @@
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Ithamars 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>
</div>
@ -66,87 +68,115 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="ithamar-s-agenda">
<h1>Ithamars Agenda<a class="headerlink" href="#ithamar-s-agenda" title="Permalink to this heading"></a></h1>
<section id="ithamar-s-agenda">
<h1>Ithamars Agenda<a class="headerlink" href="#ithamar-s-agenda" title="Permalink to this headline"></a></h1>
<p>Tabel van opdrachten</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 34%" />
<col style="width: 12%" />
<col style="width: 55%" />
<col style="width: 32%" />
<col style="width: 11%" />
<col style="width: 52%" />
<col style="width: 5%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Wat</p></th>
<th class="head"><p>Wanneer</p></th>
<th class="head"><p>Opmerking</p></th>
<th class="head"><p>Status</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><div class="line-block">
<div class="line">verslag arduino bluetooth</div>
<div class="line">Opdracht 14: afstandsmeter met leds</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</td>
<td><div class="line-block">
<div class="line">24 december</div>
<div class="line">ASAP rdm</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</td>
<td><div class="line-block">
<div class="line">kan digitaal worden opgestuurd</div>
<div class="line">moet worden gepresenteerd</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</td>
<td><div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p>Opdracht 21: Sensor uitlezen met Ardutooth</p></td>
<tr class="row-odd"><td><p>verslag arduino bluetooth</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>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 class="row-even"><td><p>Opdracht 22: Onderzoek Security wireless comm.</p></td>
<td><p>24 december</p></td>
<td><p>moet worden gepresenteerd</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>Opdracht 23 IR control</p></td>
<td><p>24 december</p></td>
<td><p>moet worden gepresenteerd</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>Opdracht 24a - b Ventilator met 433mhz</p></td>
<td><p>24 december</p></td>
<td><p>moet worden gepresenteerd</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>Opdracht 25 - tempverloop op SD (thuis)</p></td>
<td><p>24 december</p></td>
<td><p>moet worden gepresenteerd</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>Opdracht 27 - ESP8266 - webserver</p></td>
<td><p>24 december</p></td>
<td><p>moet worden gepresenteerd</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>Opdracht 28 - ESP8266 - client - data-analyse.</p></td>
<td><p>24 december</p></td>
<td><p>moet worden gepresenteerd</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>python 2 rgb ledstrip opdracth 2</p></td>
<tr class="row-even"><td><p>python 2 rgb ledstrip opdracht 2</p></td>
<td><p>10 december</p></td>
<td><p>moet worden gepresenteerd</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>Cisco week opdrachten</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></td>
</tr>
<tr class="row-even"><td><p>workshop escaperoom</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></td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index.html" class="btn btn-neutral float-left" title="Welcome to Ithamars ADs 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>
<hr/>

View File

@ -0,0 +1,145 @@
<!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 &mdash; Ithamar&#39;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="Ithamars 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">Ithamars 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="Ithamars 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>&#169; 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>

View File

@ -0,0 +1,109 @@
<!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 &mdash; Ithamar&#39;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">Ithamars 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 ithamars 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>&#169; 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>

View File

@ -13,9 +13,7 @@
<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/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="#" />
<link rel="search" title="Search" href="search.html" />
@ -39,6 +37,8 @@
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamars 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>
</div>

View File

@ -1,7 +1,8 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<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>Welcome to Ithamars ADs documentation! &mdash; Ithamar&#39;s AD documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -13,9 +14,7 @@
<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/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.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" />
@ -40,6 +39,8 @@
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamars 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>
</div>
@ -66,23 +67,17 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="welcome-to-ithamar-s-ad-s-documentation">
<h1>Welcome to Ithamars ADs documentation!<a class="headerlink" href="#welcome-to-ithamar-s-ad-s-documentation" title="Permalink to this heading"></a></h1>
<section id="welcome-to-ithamar-s-ad-s-documentation">
<h1>Welcome to Ithamars ADs documentation!<a class="headerlink" href="#welcome-to-ithamar-s-ad-s-documentation" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamars 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>
</div>
</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>
</section>
</div>

Binary file not shown.

View File

@ -14,9 +14,7 @@
<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/_sphinx_javascript_frameworks_compat.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/searchtools.js"></script>
<script src="_static/language_data.js"></script>
@ -42,6 +40,8 @@
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="agenda.html">Ithamars 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>
</div>

View File

@ -1 +1 @@
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": {}})
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}})

View File

@ -5,31 +5,35 @@ 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 |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| Wat | Wanneer | Opmerking | Status |
+================================================+=================+==============================================================================+========+
|| || || || |
|| || || || |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| verslag arduino bluetooth | 24 december | kan digitaal worden opgestuurd | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| Opdracht 21: Sensor uitlezen met Ardutooth | 24 december | moet worden gepresenteerd | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| Elevator pitch zelfreflectie verslag | 23 november | Inleveren via teams | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+
| 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 opdracht 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 | |
+------------------------------------------------+-----------------+------------------------------------------------------------------------------+--------+

View File

@ -0,0 +1,17 @@
***********
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 | |
+------------------------------------------------+-------------+--------------------------------+--------+

View File

@ -13,7 +13,7 @@ author = 'Ithamar'
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = []
extensions = ['sphinx.ext.autosectionlabel']
templates_path = ['_templates']
exclude_patterns = []

View File

@ -0,0 +1,12 @@
*******************
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"

View File

@ -11,12 +11,5 @@ Welcome to Ithamar's AD's documentation!
:caption: Contents:
agenda.rst
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
cijfers.rst
escape_room.rst