--- /dev/null
+<!DOCTYPE html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<head>
+ <meta name="viewport" content="initial-scale=1">
+ <title>
+ Michael D. Lowis - Sitemap
+ </title>
+ <link rel="shortcut icon" type="image/x-icon" href="/logo.png" />
+ <style>
+ body {
+ font-family: Verdana, Geneva, sans-serif;
+ line-height: 1.5em;
+ padding: 0;
+ margin: 1em;
+ max-width: 900px;
+ width: 90%;
+ margin-left: auto;
+ margin-right: auto;
+ color: #222222;
+ background: #F5F5F0;
+ }
+
+ h1, h2, h3, h4, h5, h6 {
+ margin: 1.5em 0em 0em 0em;
+ font-weight: 100;
+ }
+ h1 { font-size: 2.00em; }
+ h2 { font-size: 1.50em; }
+ h3 { font-size: 1.17em; }
+ h4 { font-size: 1.12em; }
+ h5 { font-size: 0.83em; }
+ h6 { font-size: 0.67em; }
+
+ a { text-decoration: none; }
+ p { margin: 1em 0 0 0; }
+ td { border-top: 1px solid #222222; }
+ pre { white-space: pre-wrap; }
+
+ hr {
+ border: 0;
+ height: 1px;
+ background: #222222;
+ }
+
+ img, svg {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ table {
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
+
+ blockquote {
+ border-left: 3px solid #0000EE;
+ margin: 0em 1em 0em 1em;
+ padding: 0em 1em 0em 1em;
+ }
+
+ code {
+ display: inline;
+ padding: 0.25em 0.25em 0.25em 0.25em;
+ background-color: #ffffff;
+ border: 1px solid #222222;
+ }
+
+ pre code {
+ display: block;
+ padding: 0.5em 1em 0.5em 1em;
+ }
+
+ header a {
+ color: #222222;
+ text-decoration: none;
+ font-size: 1.5rem;
+ margin-left: 1rem;
+ flex-grow: 1;
+ }
+
+ nav, header {
+ display: flex;
+ flex-wrap: wrap;
+ }
+
+ nav a {
+ font-size: 1rem;
+ margin: 0 1rem 0 0;
+ flex-shrink: 1;
+ }
+ </style>
+</head>
+<body>
+ <hr/>
+ <header>
+ <a href="/index.html">Michael D. Lowis</a>
+ <nav>
+ <a href='/index.html'>home</a>
+ <a href='/projs/index.html'>projects</a>
+ <a href='/notes/index.html'>notes</a>
+ <a href='/sitemap.html'>sitemap</a>
+ <!--EDIT-->
+ </nav>
+ </header>
+
+ <hr/>
+ <article id="article">
+ <!-- WARNING: This page autogenerated. Manual changes will be lost -->
+
+<h1 id="sitemap">Sitemap</h1>
+
+<p>
+ <label>Search:</label>
+ <input id="search" type="text"/>
+ <label for="filterTags">By Tag:</label>
+ <input list="allTags" name="filterTags" id="filterTags">
+ <datalist id="allTags">
+ <option value="Foo">
+ <option value="Bar">
+ <option value="Baz">
+ <option value="Boo">
+ <option value="Bang">
+ </datalist>
+ <div id="activeTags"></div>
+</p>
+
+<ul id="pages">
+<li><a href="/index.html" data-tags="">About Me</a></li>
+<li><a href="/projs/archived/index.html" data-tags="archived">Archived Projects</a></li>
+<li><a href="/notes/article_ideas.html" data-tags="">Article Ideas</a></li>
+<li><a href="/notes/recipes/banana_pancakes.html" data-tags="recipes pancakes">Banana Brown Sugar Pancakes</a></li>
+<li><a href="/notes/c_style.html" data-tags="c programming style-guide">C Programming Guidelines</a></li>
+<li><a href="/notes/misc/cube_alogrithms.html" data-tags="rubix rubix-cube cube-algorithms">Cube Algorithms</a></li>
+<li><a href="/notes/erlang.html" data-tags="erlang language programming">Erlang</a></li>
+<li><a href="/notes/misc/fpga_dev.html" data-tags="fpga">FPGA Development</a></li>
+<li><a href="/notes/forth.html" data-tags="forth language programming">Forth</a></li>
+<li><a href="/notes/game_prog.html" data-tags="game-dev programming">Game Programming</a></li>
+<li><a href="/notes/linux.html" data-tags="linux programming">Linux Programming</a></li>
+<li><a href="/notes/lua.html" data-tags="lua programming language">Lua</a></li>
+<li><a href="/notes/index.html" data-tags="note-index">Notes</a></li>
+<li><a href="/notes/ocaml.html" data-tags="ocaml programming language">OCaml</a></li>
+<li><a href="/notes/oberon07.html" data-tags="oberon programming language">Oberon 07</a></li>
+<li><a href="/notes/misc/open_source.html" data-data-tags="note-index open-source">Open Source Programs</a></li>
+<li><a href="/notes/recipes/pancakes.html" data-tags="recipes pancakes">Plain Old Pancakes</a></li>
+<li><a href="/notes/proglangs.html" data-tags="note-index programming">Programming Languages</a></li>
+<li><a href="/projs/index.html" data-tags="">Project Organization</a></li>
+<li><a href="/projs/projects/index.html" data-tags="">Projects</a></li>
+<li><a href="/projs/prototypes/index.html" data-tags="">Prototypes and Half-Baked Ideas</a></li>
+<li><a href="/notes/random.html" data-tags="note-index">Random Thoughts</a></li>
+<li><a href="/notes/recipes/index.html" data-tags="recipes note-index">Recipes</a></li>
+<li><a href="/notes/sclpl.html" data-tags="sclpl programming language language-design">SCLPL Design Notes</a></li>
+<li><a href="/notes/scheme.html" data-tags="scheme programming language">Scheme</a></li>
+<li><a href="/style.html" data-tags="">Style</a></li>
+<li><a href="/notes/recipes/teriyaki_sauce.html" data-tags="recipe sauce">Teriyaki Sauce</a></li>
+<li><a href="/20200609230839.html" data-tags="todo">Todo List</a></li>
+<li><a href="/20200610144534.html" data-tags="data-structures trees tries associative-array">Trie</a></li>
+<li><a href="/notes/webdev.html" data-tags="web-dev programming">Web Development</a></li>
+<li><a href="/notes/zam.html" data-tags="vm language-design runtime">ZINC Abstract Machine</a></li>
+<li><a href="/notes/misc/zettelkasten.html" data-tags="zettelkasten">Zettelkasten</a></li>
+<li><a href="/notes/recipes/zucchini_cookies.html" data-tags="recipe cookies">Zucchini Cookies</a></li>
+<li><a href="/notes/recipes/zucchini_cookies_with_oats.html" data-tags="recipe cookies">Zucchini Cookies With Oats</a></li>
+</ul>
+
+<p> <script>
+ (()=>{
+ let tags = [];
+
+ const filterPages = (allitems) => {
+ const value = search.value.toLowerCase();
+ for (var i = 0; i < pages.children.length; i++) {
+ const child = pages.children[i];
+ if (child.style.display !== "none" || allitems) {
+ if (!child.text) {
+ child.text = child.innerText.toLowerCase();
+ }
+ if (!child.tagmap) {
+ child.tagmap = {};
+ const tags = (child.children[0].dataset.tags || "").split(" ");
+ tags.forEach((c)=>(child.tagmap[c] = true));
+ }
+ const titleMatch = (child.text.toLowerCase().indexOf( value ) !== -1);
+ const tagsMatch = (tags.every((t)=>(child.tagmap[t])));
+ console.log(tagsMatch);
+ child.style.display = ((titleMatch && tagsMatch) ? "list-item" : "none");
+ }
+ }
+ };
+
+ search.onkeyup = (ev) => {
+ filterPages(ev.key === "Backspace");
+ ev.stopPropagation();
+ }
+
+ const oninput = (ev)=>{
+ if ((filterTags.value !== "") && (ev.inputType === "insertReplacementText" || ev.key === "Enter")) {
+ const tagName = filterTags.value.toLowerCase();
+ tags.push(tagName);
+ const link = document.createElement('a');
+ link.href = "#";
+ link.style.margin = "0 5px 0 5px";
+ link.onclick = ()=>{
+ tags = tags.filter((e)=>(e != tagName));
+ link.remove();
+ filterPages(true);
+ };
+ link.appendChild(document.createTextNode("[X] " + filterTags.value.toLowerCase()));
+ activeTags.appendChild(link);
+ filterTags.value = "";
+ filterPages(false);
+ }
+ }
+
+ filterTags.oninput = oninput;
+ filterTags.onkeyup = oninput;
+ })();
+ </script>
+</p>
+
+ </article>
+
+ <hr style="margin-top: 2em"/>
+ <footer>
+ <div style="text-align: center">
+ 2020-06-11 14:47:27 -0400
+ </div>
+ </footer>
+ <!--EDIT_SCRIPT-->
+</body>
+</html>