diff --git a/assets/audio/archive-world/v2/attack.wav b/assets/audio/archive-world/v2/attack.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/boss-attack.wav b/assets/audio/archive-world/v2/boss-attack.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/damage.wav b/assets/audio/archive-world/v2/damage.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/dialogue.wav b/assets/audio/archive-world/v2/dialogue.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/enemy-defeat.wav b/assets/audio/archive-world/v2/enemy-defeat.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/item.wav b/assets/audio/archive-world/v2/item.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/portal.wav b/assets/audio/archive-world/v2/portal.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/puzzle.wav b/assets/audio/archive-world/v2/puzzle.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/quest.wav b/assets/audio/archive-world/v2/quest.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/step.wav b/assets/audio/archive-world/v2/step.wav old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/town-ambient.ogg b/assets/audio/archive-world/v2/town-ambient.ogg old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/vault-ambient.ogg b/assets/audio/archive-world/v2/vault-ambient.ogg old mode 100644 new mode 100755 diff --git a/assets/audio/archive-world/v2/victory.wav b/assets/audio/archive-world/v2/victory.wav old mode 100644 new mode 100755 diff --git a/assets/images/play/archive-world/v2/archive-town.webp b/assets/images/play/archive-world/v2/archive-town.webp old mode 100644 new mode 100755 diff --git a/assets/images/play/archive-world/v2/areas.webp b/assets/images/play/archive-world/v2/areas.webp old mode 100644 new mode 100755 diff --git a/assets/images/play/archive-world/v2/cast-atlas.png b/assets/images/play/archive-world/v2/cast-atlas.png old mode 100644 new mode 100755 diff --git a/assets/images/play/archive-world/v2/item-atlas.png b/assets/images/play/archive-world/v2/item-atlas.png old mode 100644 new mode 100755 diff --git a/assets/images/play/archive-world/v2/traveler-berry.png b/assets/images/play/archive-world/v2/traveler-berry.png old mode 100644 new mode 100755 diff --git a/assets/images/play/archive-world/v2/traveler-brass.png b/assets/images/play/archive-world/v2/traveler-brass.png old mode 100644 new mode 100755 diff --git a/assets/images/play/archive-world/v2/traveler-moss.png b/assets/images/play/archive-world/v2/traveler-moss.png old mode 100644 new mode 100755 diff --git a/assets/scripts/pages/archive-world-audio.js b/assets/scripts/pages/archive-world-audio.js old mode 100644 new mode 100755 diff --git a/assets/scripts/pages/archive-world-data.js b/assets/scripts/pages/archive-world-data.js old mode 100644 new mode 100755 diff --git a/assets/scripts/pages/archive-world-scenes.js b/assets/scripts/pages/archive-world-scenes.js old mode 100644 new mode 100755 diff --git a/assets/scripts/pages/archive-world-state.js b/assets/scripts/pages/archive-world-state.js old mode 100644 new mode 100755 diff --git a/assets/scripts/pages/archive-world-systems.js b/assets/scripts/pages/archive-world-systems.js old mode 100644 new mode 100755 diff --git a/assets/scripts/pages/archive-world-ui.js b/assets/scripts/pages/archive-world-ui.js old mode 100644 new mode 100755 diff --git a/assets/scripts/pages/archive-world.js b/assets/scripts/pages/archive-world.js old mode 100644 new mode 100755 index 85dc8b2..077fa3c --- a/assets/scripts/pages/archive-world.js +++ b/assets/scripts/pages/archive-world.js @@ -93,6 +93,7 @@ function bindSetup() { const dialog = controller.root.querySelector("[data-world-setup]"); const form = controller.root.querySelector("[data-world-setup-form]"); + if (!dialog || !form) return; dialog.addEventListener("cancel", (event) => event.preventDefault()); form.addEventListener("submit", (event) => { event.preventDefault(); @@ -114,6 +115,10 @@ function openSetup(message) { const dialog = controller.root.querySelector("[data-world-setup]"); + if (!dialog) { + status(message || "Traveler setup could not open. Reload the page to try again; the plain directory remains available."); + return; + } if (message) { controller.root.querySelector("[data-world-setup-error]").textContent = message; status(message); @@ -140,20 +145,20 @@ button.addEventListener("pointerdown", down); ["pointerup", "pointercancel", "pointerleave"].forEach((name) => button.addEventListener(name, up)); }); - controller.root.querySelector("[data-world-interact]").addEventListener("click", () => { + bindClick("[data-world-interact]", () => { if (controller.scene) controller.scene.interact(); }); - controller.root.querySelector("[data-world-attack]").addEventListener("click", () => { + bindClick("[data-world-attack]", () => { if (controller.scene) controller.scene.attack(controller.scene.time.now); }); - controller.root.querySelector("[data-world-item]").addEventListener("click", useSelectedItem); - controller.root.querySelector("[data-world-menu]").addEventListener("click", openMenu); - controller.root.querySelector("[data-world-quests]").addEventListener("click", () => controller.ui.openMenu(controller.state, "quests")); - controller.root.querySelector("[data-world-inventory]").addEventListener("click", () => controller.ui.openMenu(controller.state, "inventory")); - controller.root.querySelector("[data-world-journal-open]").addEventListener("click", () => controller.ui.openMenu(controller.state, "journal")); - controller.root.querySelector("[data-world-sound]").addEventListener("click", toggleSound); - controller.root.querySelector("[data-world-fullscreen]").addEventListener("click", toggleFullscreen); - controller.root.querySelector("[data-world-reset]").addEventListener("click", () => controller.ui.openMenu(controller.state, "settings")); + bindClick("[data-world-item]", useSelectedItem); + bindClick("[data-world-menu]", openMenu); + bindClick("[data-world-quests]", () => controller.ui.openMenu(controller.state, "quests")); + bindClick("[data-world-inventory]", () => controller.ui.openMenu(controller.state, "inventory")); + bindClick("[data-world-journal-open]", () => controller.ui.openMenu(controller.state, "journal")); + bindClick("[data-world-sound]", toggleSound); + bindClick("[data-world-fullscreen]", toggleFullscreen); + bindClick("[data-world-reset]", () => controller.ui.openMenu(controller.state, "settings")); document.addEventListener("fullscreenchange", updateFullscreen); document.addEventListener("visibilitychange", () => { @@ -348,14 +353,16 @@ text("[data-world-player]", state.name); text("[data-world-level]", `Lv ${state.level}`); text("[data-world-health-text]", `${Math.ceil(state.health)} / ${state.maxHealth}`); - controller.root.querySelector("[data-world-health-bar]").style.width = `${(state.health / state.maxHealth) * 100}%`; + const healthBar = controller.root.querySelector("[data-world-health-bar]"); + if (healthBar) healthBar.style.width = `${(state.health / state.maxHealth) * 100}%`; text("[data-world-objective]", Systems.currentObjective(state)); text("[data-world-discovery-count]", `${state.discovered.length} / 8`); text("[data-world-sigil-count]", `${state.sigils.length} / 8`); text("[data-world-sound]", state.settings.soundEnabled ? "Sound: on" : "Sound: muted"); const selected = Data.ITEMS[state.selectedItem]; text("[data-world-selected-item]", selected ? `${selected.name} ×${Systems.itemQuantity(state, state.selectedItem)}` : "None"); - controller.root.querySelector("[data-world-badge]").hidden = !state.complete; + const badge = controller.root.querySelector("[data-world-badge]"); + if (badge) badge.hidden = !state.complete; controller.root.classList.toggle("is-restored", state.story.ending); } @@ -394,6 +401,11 @@ if (node) node.textContent = value; } + function bindClick(selector, handler) { + const node = controller.root.querySelector(selector); + if (node) node.addEventListener("click", handler); + } + Object.assign(controller, { setState, renderHud, status, setPrompt, showBoss, hideBoss, openDefeat, openEnding, openLandmark, openNpc, openChallenge, openMenu, travel, useSelectedItem, cycleItem diff --git a/blogs/2025/2025-list.org b/blogs/2025/2025-list.org old mode 100644 new mode 100755 diff --git a/blogs/blogs-list.org b/blogs/blogs-list.org index abfb9b6..3eb76ee 100755 --- a/blogs/blogs-list.org +++ b/blogs/blogs-list.org @@ -88,6 +88,7 @@ See the categories: @@html:Categories@@ * 2025 ** December 2025 +- [[file:2025/2025-list.org][2025 Writing]] @@html:31-12-2025 00:00@@ - [[file:2025/12-december/28-12-week-review.org][[28-12-2025] - Weekly Review]] @@html:28-12-2025 12:12@@ @@html:review@@ - [[file:2025/12-december/21-12-week-review.org][[21-12-2025] - Weekly Review]] @@html:21-12-2025 12:12@@ @@html:review@@ - [[file:2025/12-december/14-12-week-review.org][[14-12-2025] - Weekly Review]] @@html:09-12-2025 12:12@@ @@html:review@@ diff --git a/build-logs/gitea-build-monitor.log b/build-logs/gitea-build-monitor.log index aded2a3..cbbdc03 100755 --- a/build-logs/gitea-build-monitor.log +++ b/build-logs/gitea-build-monitor.log @@ -766,3 +766,9 @@ at , /home/zaine/master-folder/org-platform/org_web/build-logs/gite 2026-07-29T15:18:06.0538065+01:00 [INFO] Running authoring server tests with /home/zaine/master-folder/org-platform/authoring-service/.venv/bin/python. 2026-07-29T15:18:06.1955865+01:00 [INFO] Authoring server tests passed: ran=0, failures=0, errors=0, skipped=0, exit=0 2026-07-29T15:18:06.5283574+01:00 [INFO] Sent authoring server test notification. +2026-07-30T01:00:59.3997427+01:00 [INFO] Prepared current build status for zaine/org_web: severity=Info, status=success +2026-07-30T01:00:59.4073111+01:00 [INFO] Fetching recent Gitea Actions runs for zaine/org_web. +2026-07-30T01:01:00.6585047+01:00 [INFO] Sent build status notification with 1 embed(s). +2026-07-30T01:01:00.6776757+01:00 [INFO] Running authoring server tests with /home/zaine/master-folder/org-platform/authoring-service/.venv/bin/python. +2026-07-30T01:01:00.7510165+01:00 [INFO] Authoring server tests passed: ran=0, failures=0, errors=0, skipped=0, exit=0 +2026-07-30T01:01:01.0172871+01:00 [INFO] Sent authoring server test notification. diff --git a/play/rpg.org b/play/rpg.org old mode 100644 new mode 100755 index 1fd9b66..0aac466 --- a/play/rpg.org +++ b/play/rpg.org @@ -142,12 +142,12 @@ The RPG needs JavaScript, but every destination remains available in the plain directory above. - - - - - - - - + + + + + + + + #+END_EXPORT diff --git a/posts/posts-list.org b/posts/posts-list.org index 2ef4484..582563f 100755 --- a/posts/posts-list.org +++ b/posts/posts-list.org @@ -4,7 +4,7 @@ See the categories: @@html:Categories@@ * Posts: -- [[file:career/career-list.org][Career List]] @@html:29-07-2026 14:58@@ +- [[file:career/career-list.org][Career List]] @@html:29-07-2026 21:47@@ - [[file:career/cross-site-scripting-xss.org][Cross-Site Scripting (XSS)]] @@html:01-06-2026 10:21@@ @@html:learning@@ @@html:notes@@ - [[file:career/ha-dr.org][High Availability, Disaster Recovery and Business Continuity]] @@html:11-03-2026 17:18@@ @@html:learning@@ @@html:notes@@ - [[file:career/javascript.org][Understands the Javascript language]] @@html:11-03-2026 16:52@@ @@html:learning@@ @@html:notes@@ diff --git a/sitemap.org b/sitemap.org index f4d2298..7bb998a 100755 --- a/sitemap.org +++ b/sitemap.org @@ -16,205 +16,255 @@ flowchart TD n3 --> n5 n6["Blogs List"] n3 --> n6 - n7{{"home"}} - root --> n7 - n8["Countdown"] + n7{{"2025"}} + n3 --> n7 + n8["2025 Writing"] n7 --> n8 - n9["Backlog"] + n9{{"08-august"}} n7 --> n9 - n10["Competency Status Board"] - n7 --> n10 - n11["hidden-soul"] - n7 --> n11 - n12["Wird Tracker"] - n7 --> n12 - n13["Contact"] - n7 --> n13 - n14["Service"] - n7 --> n14 - n15["Notes"] - n7 --> n15 - n16["Categories"] - n7 --> n16 - n17{{"guide"}} + n10["Zettelkasten Method"] + n9 --> n10 + n11["What Do I Want To Do With Emacs"] + n9 --> n11 + n12["Wacom With Arch"] + n9 --> n12 + n13["09-08-2025: Website Changes"] + n9 --> n13 + n14["Hilbert's Hotel"] + n9 --> n14 + n15["Benefits of Reading"] + n9 --> n15 + n16["Third Time"] + n9 --> n16 + n17{{"11-november"}} n7 --> n17 - n18["Setup"] + n18{{"[[file:blogs/2025/11-november/02-11-week-review.org][[02-11-2025] - Weekly Review]]"}} n17 --> n18 - n19["Wird Tracker — Technical Guide"] + n19{{"[[file:blogs/2025/11-november/09-11-week-review.org][[09-11-2025] - Weekly Review]]"}} n17 --> n19 - n20{{"lima"}} - root --> n20 - n21["Lima"] - n20 --> n21 - n22{{"posts"}} - root --> n22 - n23["Posts Introduction"] - n22 --> n23 - n24["Posts List"] - n22 --> n24 - n25{{"career"}} - n22 --> n25 - n26["SOLID Principles"] - n25 --> n26 - n27["OWASP Top Ten"] - n25 --> n27 - n28["Retrospectives"] - n25 --> n28 - n29["Lean"] - n25 --> n29 - n30["Invest Principles"] - n25 --> n30 - n31["Career Introduction"] - n25 --> n31 - n32["Management of self training"] - n25 --> n32 - n33["Wireframe Designs"] - n25 --> n33 - n34["Requirements, features, user stories, tasks, walking skeletons"] - n25 --> n34 - n35["Benefits of Normalisation"] - n25 --> n35 - n36["Datamarts, Airflow and DAG's"] - n25 --> n36 - n37["Probation Objectives:"] - n25 --> n37 - n38["Database Permissions, Roles, and Accounts"] - n25 --> n38 - n39["Monitoring and Logging"] - n25 --> n39 - n40["Pipelines and how they work (as well as CI/CD)"] - n25 --> n40 - n41["Restful API"] - n25 --> n41 - n42["Understands the Javascript language"] - n25 --> n42 - n43["High Availability, Disaster Recovery and Business Continuity"] - n25 --> n43 - n44["Cross-Site Scripting (XSS)"] - n25 --> n44 - n45["Career List"] - n25 --> n45 - n46{{"tags"}} - root --> n46 - n47["Tag: review"] - n46 --> n47 - n48["Tag: life"] - n46 --> n48 - n49["Tag: introduction"] - n46 --> n49 - n50["Tag: learning"] - n46 --> n50 - n51["Tag: notes"] - n46 --> n51 - n52["Tag: review"] - n46 --> n52 - n53["Tag: website"] - n46 --> n53 - n54["Tag: life"] - n46 --> n54 - n55["Tag: update"] - n46 --> n55 - n56["Tag: insights"] - n46 --> n56 - n57["Tag: emacs"] - n46 --> n57 - n58["Tag: education"] - n46 --> n58 - n59["Tag: reading"] - n46 --> n59 - n60["Tag: maths"] - n46 --> n60 - n61{{"play"}} - root --> n61 - n62["Sigil Press"] - n61 --> n62 - n63["Ink Pond"] - n61 --> n63 - n64["Bookshelf Sort"] - n61 --> n64 - n65["Constellation Desk"] - n61 --> n65 - n66["Memory Cabinet"] - n61 --> n66 - n67["Play"] - n61 --> n67 - n68["Archive Terminal"] - n61 --> n68 - n69["Study Lamp"] - n61 --> n69 - n70["Marginalia Machine"] - n61 --> n70 - n71["The Rain Index"] - n61 --> n71 - n72["The House of Pages"] - n61 --> n72 - n73["The Archive World"] - n61 --> n73 + n20{{"[[file:blogs/2025/11-november/16-11-week-review.org][[16-11-2025] - Weekly Review]]"}} + n17 --> n20 + n21{{"[[file:blogs/2025/11-november/23-11-week-review.org][[23-11-2025] - Weekly Review]]"}} + n17 --> n21 + n22{{"[[file:blogs/2025/11-november/30-11-week-review.org][[30-11-2025] - Weekly Review]]"}} + n17 --> n22 + n23{{"12-december"}} + n7 --> n23 + n24{{"[[file:blogs/2025/12-december/07-12-week-review.org][[07-12-2025] - Weekly Review]]"}} + n23 --> n24 + n25{{"[[file:blogs/2025/12-december/14-12-week-review.org][[14-12-2025] - Weekly Review]]"}} + n23 --> n25 + n26{{"[[file:blogs/2025/12-december/21-12-week-review.org][[21-12-2025] - Weekly Review]]"}} + n23 --> n26 + n27{{"[[file:blogs/2025/12-december/28-12-week-review.org][[28-12-2025] - Weekly Review]]"}} + n23 --> n27 + n28{{"home"}} + root --> n28 + n29["Countdown"] + n28 --> n29 + n30["Backlog"] + n28 --> n30 + n31["Competency Status Board"] + n28 --> n31 + n32["hidden-soul"] + n28 --> n32 + n33["Wird Tracker"] + n28 --> n33 + n34["Contact"] + n28 --> n34 + n35["Service"] + n28 --> n35 + n36["Notes"] + n28 --> n36 + n37["Categories"] + n28 --> n37 + n38{{"guide"}} + n28 --> n38 + n39["Setup"] + n38 --> n39 + n40["Wird Tracker — Technical Guide"] + n38 --> n40 + n41{{"lima"}} + root --> n41 + n42["Lima"] + n41 --> n42 + n43{{"tags"}} + root --> n43 + n44["Tag: review"] + n43 --> n44 + n45["Tag: life"] + n43 --> n45 + n46["Tag: introduction"] + n43 --> n46 + n47["Tag: learning"] + n43 --> n47 + n48["Tag: notes"] + n43 --> n48 + n49["Tag: review"] + n43 --> n49 + n50["Tag: website"] + n43 --> n50 + n51["Tag: update"] + n43 --> n51 + n52["Tag: life"] + n43 --> n52 + n53["Tag: education"] + n43 --> n53 + n54["Tag: insights"] + n43 --> n54 + n55["Tag: reading"] + n43 --> n55 + n56["Tag: emacs"] + n43 --> n56 + n57["Tag: maths"] + n43 --> n57 + n58{{"play"}} + root --> n58 + n59["Sigil Press"] + n58 --> n59 + n60["Ink Pond"] + n58 --> n60 + n61["Bookshelf Sort"] + n58 --> n61 + n62["Constellation Desk"] + n58 --> n62 + n63["Memory Cabinet"] + n58 --> n63 + n64["Play"] + n58 --> n64 + n65["Archive Terminal"] + n58 --> n65 + n66["Study Lamp"] + n58 --> n66 + n67["Marginalia Machine"] + n58 --> n67 + n68["The Rain Index"] + n58 --> n68 + n69["The House of Pages"] + n58 --> n69 + n70["The Archive World"] + n58 --> n70 + n71{{"posts"}} + root --> n71 + n72["Posts Introduction"] + n71 --> n72 + n73["Posts List"] + n71 --> n73 + n74{{"career"}} + n71 --> n74 + n75["SOLID Principles"] + n74 --> n75 + n76["OWASP Top Ten"] + n74 --> n76 + n77["Retrospectives"] + n74 --> n77 + n78["Lean"] + n74 --> n78 + n79["Invest Principles"] + n74 --> n79 + n80["Career Introduction"] + n74 --> n80 + n81["Management of self training"] + n74 --> n81 + n82["Wireframe Designs"] + n74 --> n82 + n83["Requirements, features, user stories, tasks, walking skeletons"] + n74 --> n83 + n84["Benefits of Normalisation"] + n74 --> n84 + n85["Datamarts, Airflow and DAG's"] + n74 --> n85 + n86["Probation Objectives:"] + n74 --> n86 + n87["Database Permissions, Roles, and Accounts"] + n74 --> n87 + n88["Monitoring and Logging"] + n74 --> n88 + n89["Pipelines and how they work (as well as CI/CD)"] + n74 --> n89 + n90["Restful API"] + n74 --> n90 + n91["Understands the Javascript language"] + n74 --> n91 + n92["High Availability, Disaster Recovery and Business Continuity"] + n74 --> n92 + n93["Cross-Site Scripting (XSS)"] + n74 --> n93 + n94["Career List"] + n74 --> n94 click n1 "index.html" "Home" click n2 "recently-updated.html" "Recently Updated" click n4 "blogs/blogs-intro.html" "Blogs Introduction" click n5 "blogs/publish-pages.html" "How to publish pages using Org Publish" click n6 "blogs/blogs-list.html" "Blogs List" - click n8 "home/countdown.html" "Countdown" - click n9 "home/backlog.html" "Backlog" - click n10 "home/status.html" "Competency Status Board" - click n11 "home/hidden-soul.html" "hidden-soul" - click n12 "home/wird-tracker.html" "Wird Tracker" - click n13 "home/contact.html" "Contact" - click n14 "home/services.html" "Service" - click n15 "home/notes.html" "Notes" - click n16 "home/categories.html" "Categories" - click n18 "home/guide/setup.html" "Setup" - click n19 "home/guide/wird-tracker-guide.html" "Wird Tracker — Technical Guide" - click n21 "lima/lima-list.html" "Lima" - click n23 "posts/posts-intro.html" "Posts Introduction" - click n24 "posts/posts-list.html" "Posts List" - click n26 "posts/career/solid-principles.html" "SOLID Principles" - click n27 "posts/career/owasp.html" "OWASP Top Ten" - click n28 "posts/career/retrospectives.html" "Retrospectives" - click n29 "posts/career/lean.html" "Lean" - click n30 "posts/career/invest-principles.html" "Invest Principles" - click n31 "posts/career/career-intro.html" "Career Introduction" - click n32 "posts/career/management-of-self.html" "Management of self training" - click n33 "posts/career/wireframe-designs.html" "Wireframe Designs" - click n34 "posts/career/requirements-features.html" "Requirements, features, user stories, tasks, walking skeletons" - click n35 "posts/career/normalisation.html" "Benefits of Normalisation" - click n36 "posts/career/airflow.html" "Datamarts, Airflow and DAG's" - click n37 "posts/career/probation-objectives.html" "Probation Objectives:" - click n38 "posts/career/database-permissions.html" "Database Permissions, Roles, and Accounts" - click n39 "posts/career/monitoring-and-logging.html" "Monitoring and Logging" - click n40 "posts/career/pipelines.html" "Pipelines and how they work (as well as CI/CD)" - click n41 "posts/career/restful-api.html" "Restful API" - click n42 "posts/career/javascript.html" "Understands the Javascript language" - click n43 "posts/career/ha-dr.html" "High Availability, Disaster Recovery and Business Continuity" - click n44 "posts/career/cross-site-scripting-xss.html" "Cross-Site Scripting (XSS)" - click n45 "posts/career/career-list.html" "Career List" - click n47 "tags/review.sync-conflict-20260328-203248-VT6366A.html" "Tag: review" - click n48 "tags/life.sync-conflict-20260417-233423-VT6366A.html" "Tag: life" - click n49 "tags/introduction.html" "Tag: introduction" - click n50 "tags/learning.html" "Tag: learning" - click n51 "tags/notes.html" "Tag: notes" - click n52 "tags/review.html" "Tag: review" - click n53 "tags/website.html" "Tag: website" - click n54 "tags/life.html" "Tag: life" - click n55 "tags/update.html" "Tag: update" - click n56 "tags/insights.html" "Tag: insights" - click n57 "tags/emacs.html" "Tag: emacs" - click n58 "tags/education.html" "Tag: education" - click n59 "tags/reading.html" "Tag: reading" - click n60 "tags/maths.html" "Tag: maths" - click n62 "play/sigil.html" "Sigil Press" - click n63 "play/ink.html" "Ink Pond" - click n64 "play/bookshelf.html" "Bookshelf Sort" - click n65 "play/constellation.html" "Constellation Desk" - click n66 "play/memory.html" "Memory Cabinet" - click n67 "play/play.html" "Play" - click n68 "play/terminal.html" "Archive Terminal" - click n69 "play/study.html" "Study Lamp" - click n70 "play/poem.html" "Marginalia Machine" - click n71 "play/the-rain-index.html" "The Rain Index" - click n72 "play/house.html" "The House of Pages" - click n73 "play/rpg.html" "The Archive World" + click n8 "blogs/2025/2025-list.html" "2025 Writing" + click n10 "blogs/2025/08-august/zettelkasten.html" "Zettelkasten Method" + click n11 "blogs/2025/08-august/what-do-i-want-to-do-with-emacs.html" "What Do I Want To Do With Emacs" + click n12 "blogs/2025/08-august/wacom-with-arch.html" "Wacom With Arch" + click n13 "blogs/2025/08-august/spending-the-whole-day-on-this-website.html" "09-08-2025: Website Changes" + click n14 "blogs/2025/08-august/hilberts.hotel.html" "Hilbert's Hotel" + click n15 "blogs/2025/08-august/benefits-of-reading.html" "Benefits of Reading" + click n16 "blogs/2025/08-august/third-time.html" "Third Time" + click n29 "home/countdown.html" "Countdown" + click n30 "home/backlog.html" "Backlog" + click n31 "home/status.html" "Competency Status Board" + click n32 "home/hidden-soul.html" "hidden-soul" + click n33 "home/wird-tracker.html" "Wird Tracker" + click n34 "home/contact.html" "Contact" + click n35 "home/services.html" "Service" + click n36 "home/notes.html" "Notes" + click n37 "home/categories.html" "Categories" + click n39 "home/guide/setup.html" "Setup" + click n40 "home/guide/wird-tracker-guide.html" "Wird Tracker — Technical Guide" + click n42 "lima/lima-list.html" "Lima" + click n44 "tags/review.sync-conflict-20260328-203248-VT6366A.html" "Tag: review" + click n45 "tags/life.sync-conflict-20260417-233423-VT6366A.html" "Tag: life" + click n46 "tags/introduction.html" "Tag: introduction" + click n47 "tags/learning.html" "Tag: learning" + click n48 "tags/notes.html" "Tag: notes" + click n49 "tags/review.html" "Tag: review" + click n50 "tags/website.html" "Tag: website" + click n51 "tags/update.html" "Tag: update" + click n52 "tags/life.html" "Tag: life" + click n53 "tags/education.html" "Tag: education" + click n54 "tags/insights.html" "Tag: insights" + click n55 "tags/reading.html" "Tag: reading" + click n56 "tags/emacs.html" "Tag: emacs" + click n57 "tags/maths.html" "Tag: maths" + click n59 "play/sigil.html" "Sigil Press" + click n60 "play/ink.html" "Ink Pond" + click n61 "play/bookshelf.html" "Bookshelf Sort" + click n62 "play/constellation.html" "Constellation Desk" + click n63 "play/memory.html" "Memory Cabinet" + click n64 "play/play.html" "Play" + click n65 "play/terminal.html" "Archive Terminal" + click n66 "play/study.html" "Study Lamp" + click n67 "play/poem.html" "Marginalia Machine" + click n68 "play/the-rain-index.html" "The Rain Index" + click n69 "play/house.html" "The House of Pages" + click n70 "play/rpg.html" "The Archive World" + click n72 "posts/posts-intro.html" "Posts Introduction" + click n73 "posts/posts-list.html" "Posts List" + click n75 "posts/career/solid-principles.html" "SOLID Principles" + click n76 "posts/career/owasp.html" "OWASP Top Ten" + click n77 "posts/career/retrospectives.html" "Retrospectives" + click n78 "posts/career/lean.html" "Lean" + click n79 "posts/career/invest-principles.html" "Invest Principles" + click n80 "posts/career/career-intro.html" "Career Introduction" + click n81 "posts/career/management-of-self.html" "Management of self training" + click n82 "posts/career/wireframe-designs.html" "Wireframe Designs" + click n83 "posts/career/requirements-features.html" "Requirements, features, user stories, tasks, walking skeletons" + click n84 "posts/career/normalisation.html" "Benefits of Normalisation" + click n85 "posts/career/airflow.html" "Datamarts, Airflow and DAG's" + click n86 "posts/career/probation-objectives.html" "Probation Objectives:" + click n87 "posts/career/database-permissions.html" "Database Permissions, Roles, and Accounts" + click n88 "posts/career/monitoring-and-logging.html" "Monitoring and Logging" + click n89 "posts/career/pipelines.html" "Pipelines and how they work (as well as CI/CD)" + click n90 "posts/career/restful-api.html" "Restful API" + click n91 "posts/career/javascript.html" "Understands the Javascript language" + click n92 "posts/career/ha-dr.html" "High Availability, Disaster Recovery and Business Continuity" + click n93 "posts/career/cross-site-scripting-xss.html" "Cross-Site Scripting (XSS)" + click n94 "posts/career/career-list.html" "Career List" #+end_src * Pages @@ -224,6 +274,27 @@ flowchart TD - [[file:blogs/blogs-intro.org][Blogs Introduction]] - [[file:blogs/publish-pages.org][How to publish pages using Org Publish]] - [[file:blogs/blogs-list.org][Blogs List]] + - 2025 + - [[file:blogs/2025/2025-list.org][2025 Writing]] + - 08-august + - [[file:blogs/2025/08-august/zettelkasten.org][Zettelkasten Method]] + - [[file:blogs/2025/08-august/what-do-i-want-to-do-with-emacs.org][What Do I Want To Do With Emacs]] + - [[file:blogs/2025/08-august/wacom-with-arch.org][Wacom With Arch]] + - [[file:blogs/2025/08-august/spending-the-whole-day-on-this-website.org][09-08-2025: Website Changes]] + - [[file:blogs/2025/08-august/hilberts.hotel.org][Hilbert's Hotel]] + - [[file:blogs/2025/08-august/benefits-of-reading.org][Benefits of Reading]] + - [[file:blogs/2025/08-august/third-time.org][Third Time]] + - 11-november + - [[file:blogs/2025/11-november/02-11-week-review.org][[02-11-2025] - Weekly Review]] + - [[file:blogs/2025/11-november/09-11-week-review.org][[09-11-2025] - Weekly Review]] + - [[file:blogs/2025/11-november/16-11-week-review.org][[16-11-2025] - Weekly Review]] + - [[file:blogs/2025/11-november/23-11-week-review.org][[23-11-2025] - Weekly Review]] + - [[file:blogs/2025/11-november/30-11-week-review.org][[30-11-2025] - Weekly Review]] + - 12-december + - [[file:blogs/2025/12-december/07-12-week-review.org][[07-12-2025] - Weekly Review]] + - [[file:blogs/2025/12-december/14-12-week-review.org][[14-12-2025] - Weekly Review]] + - [[file:blogs/2025/12-december/21-12-week-review.org][[21-12-2025] - Weekly Review]] + - [[file:blogs/2025/12-december/28-12-week-review.org][[28-12-2025] - Weekly Review]] - home - [[file:home/countdown.org][Countdown]] - [[file:home/backlog.org][Backlog]] @@ -239,6 +310,34 @@ flowchart TD - [[file:home/guide/wird-tracker-guide.org][Wird Tracker — Technical Guide]] - lima - [[file:lima/lima-list.org][Lima]] +- tags + - [[file:tags/review.sync-conflict-20260328-203248-VT6366A.org][Tag: review]] + - [[file:tags/life.sync-conflict-20260417-233423-VT6366A.org][Tag: life]] + - [[file:tags/introduction.org][Tag: introduction]] + - [[file:tags/learning.org][Tag: learning]] + - [[file:tags/notes.org][Tag: notes]] + - [[file:tags/review.org][Tag: review]] + - [[file:tags/website.org][Tag: website]] + - [[file:tags/update.org][Tag: update]] + - [[file:tags/life.org][Tag: life]] + - [[file:tags/education.org][Tag: education]] + - [[file:tags/insights.org][Tag: insights]] + - [[file:tags/reading.org][Tag: reading]] + - [[file:tags/emacs.org][Tag: emacs]] + - [[file:tags/maths.org][Tag: maths]] +- play + - [[file:play/sigil.org][Sigil Press]] + - [[file:play/ink.org][Ink Pond]] + - [[file:play/bookshelf.org][Bookshelf Sort]] + - [[file:play/constellation.org][Constellation Desk]] + - [[file:play/memory.org][Memory Cabinet]] + - [[file:play/play.org][Play]] + - [[file:play/terminal.org][Archive Terminal]] + - [[file:play/study.org][Study Lamp]] + - [[file:play/poem.org][Marginalia Machine]] + - [[file:play/the-rain-index.org][The Rain Index]] + - [[file:play/house.org][The House of Pages]] + - [[file:play/rpg.org][The Archive World]] - posts - [[file:posts/posts-intro.org][Posts Introduction]] - [[file:posts/posts-list.org][Posts List]] @@ -262,32 +361,4 @@ flowchart TD - [[file:posts/career/javascript.org][Understands the Javascript language]] - [[file:posts/career/ha-dr.org][High Availability, Disaster Recovery and Business Continuity]] - [[file:posts/career/cross-site-scripting-xss.org][Cross-Site Scripting (XSS)]] - - [[file:posts/career/career-list.org][Career List]] -- tags - - [[file:tags/review.sync-conflict-20260328-203248-VT6366A.org][Tag: review]] - - [[file:tags/life.sync-conflict-20260417-233423-VT6366A.org][Tag: life]] - - [[file:tags/introduction.org][Tag: introduction]] - - [[file:tags/learning.org][Tag: learning]] - - [[file:tags/notes.org][Tag: notes]] - - [[file:tags/review.org][Tag: review]] - - [[file:tags/website.org][Tag: website]] - - [[file:tags/life.org][Tag: life]] - - [[file:tags/update.org][Tag: update]] - - [[file:tags/insights.org][Tag: insights]] - - [[file:tags/emacs.org][Tag: emacs]] - - [[file:tags/education.org][Tag: education]] - - [[file:tags/reading.org][Tag: reading]] - - [[file:tags/maths.org][Tag: maths]] -- play - - [[file:play/sigil.org][Sigil Press]] - - [[file:play/ink.org][Ink Pond]] - - [[file:play/bookshelf.org][Bookshelf Sort]] - - [[file:play/constellation.org][Constellation Desk]] - - [[file:play/memory.org][Memory Cabinet]] - - [[file:play/play.org][Play]] - - [[file:play/terminal.org][Archive Terminal]] - - [[file:play/study.org][Study Lamp]] - - [[file:play/poem.org][Marginalia Machine]] - - [[file:play/the-rain-index.org][The Rain Index]] - - [[file:play/house.org][The House of Pages]] - - [[file:play/rpg.org][The Archive World]] \ No newline at end of file + - [[file:posts/career/career-list.org][Career List]] \ No newline at end of file diff --git a/tests/archive-world-state.test.cjs b/tests/archive-world-state.test.cjs old mode 100644 new mode 100755 diff --git a/tests/archive-world-systems.test.cjs b/tests/archive-world-systems.test.cjs old mode 100644 new mode 100755
The RPG needs JavaScript, but every destination remains available in the plain directory above.