Ladefehler
Daten konnten nicht geladen werden.
${error.message}
/** * HarnessEcosystem — app.js * SPA with Hash Routing + Tutorial Pages */ let GLOBAL_DATA = null; const create = (tag, className, text) => { const node = document.createElement(tag); if (className) node.className = className; if (text !== undefined) node.textContent = text; return node; }; const load = async () => { const response = await fetch("./data/ecosystem.json"); if (!response.ok) throw new Error("ecosystem.json konnte nicht geladen werden"); return response.json(); }; // ───────────────────────────────────────────── // HASH ROUTING // ───────────────────────────────────────────── const route = () => { const hash = location.hash.slice(1); if (!hash || hash === "home") { showMain(); } else { showTutorial(hash); } updateNavHighlight(); }; const showMain = () => { document.querySelector("#mainPage").classList.remove("hidden"); document.querySelector("#tutorialPage").classList.add("hidden"); window.scrollTo(0, 0); }; const showTutorial = (id) => { if (!GLOBAL_DATA) return; const harness = GLOBAL_DATA.harnesses.find((h) => h.id === id); if (!harness) { showMain(); return; } document.querySelector("#mainPage").classList.add("hidden"); document.querySelector("#tutorialPage").classList.remove("hidden"); document.querySelector("#tutorialPage").innerHTML = renderTutorialHTML(harness, GLOBAL_DATA); window.scrollTo(0, 0); }; const updateNavHighlight = () => { const hash = location.hash.slice(1) || "home"; document.querySelectorAll(".nav-link").forEach((link) => { link.classList.toggle("active", link.dataset.nav === hash); }); }; // ───────────────────────────────────────────── // TUTORIAL PAGE RENDERER // ───────────────────────────────────────────── const renderTutorialHTML = (h, data) => { const t = h.tutorial || {}; const harnessIndex = data.harnesses.findIndex((x) => x.id === h.id); const prevH = data.harnesses[harnessIndex - 1]; const nextH = data.harnesses[harnessIndex + 1]; let html = `
${h.tagline}
${h.stats ? `${v}
${a.description}
${t.adhsPatterns[p.key]}
${k.key}
${k.type}
${k.description || ""}
${k.default ? `Default: ${k.default}` : ""}
${hook.name}
${hook.canBlock ? `blocking` : ""}
${hook.description || ""}
Config-Details nach Bootcamp verfügbar.
`; } html += `${item.role}
${p.pattern}
${p.meaning}
${rule.detail}
${r.action}
${r.cost}
${r.tip || ""}
${p.pattern}${p.description}
${e.path} — ${e.description}
${h.name}
${h.blocking ? `blocking` : ""}
${h.knownBug ? `bug` : ""}
${h.detail}
${h.workaround ? `Workaround: ${h.workaround}
` : ""}${h.name}${h.hook}${h.function}
${item.a}
${best.router_reason}
Ladefehler
${error.message}