From 989ccb4f6d6a61c3f7a7ff03590941e47dee8c98 Mon Sep 17 00:00:00 2001 From: Alex Mueller Date: Sat, 29 Aug 2026 15:54:05 +0200 Subject: [PATCH] =?UTF-8?q?Implementiere=20responsive=20linke=20Sidebar-Na?= =?UTF-8?q?vigation=20f=C3=BCr=20alle=2027=20Kapitel=20und=20das=20Hauptpo?= =?UTF-8?q?rtal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gamification.json | 2 +- assets/gamification_data.js | 2 +- assets/sidebar.js | 179 +++++++++++ assets/style.css | 286 ++++++++++++++++++ index.html | 1 + .../index.html | 1 + .../02_variablen_und_datentypen/index.html | 1 + .../03_ein_und_ausgabe/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../06_funktionen_und_module/index.html | 1 + .../07_listen_und_sequenzen/index.html | 1 + .../index.html | 1 + .../09_dictionaries_und_sets/index.html | 1 + .../index.html | 1 + .../00_fehlersuche_und_grundlagen/index.html | 1 + .../01_einstieg_klassen/index.html | 1 + .../02_init_und_self/index.html | 1 + .../03_methoden_und_verhalten/index.html | 1 + .../04_str_und_darstellung/index.html | 1 + .../04b_umstieg_vscode/index.html | 1 + .../04c_git_und_versionskontrolle/index.html | 1 + .../05_objekte_kombinieren/index.html | 1 + .../06_abschlussprojekt_tamagotchi/index.html | 1 + .../07_referenzen_und_speicher/index.html | 1 + .../08_operator_overloading_dunder/index.html | 1 + .../09_eigene_unit_tests_schreiben/index.html | 1 + .../10_vererbung_und_super/index.html | 1 + .../11_polymorphie_und_interfaces/index.html | 1 + .../index.html | 1 + .../13_persistenz_json_und_csv/index.html | 1 + .../14_gui_mit_tkinter/index.html | 1 + .../15_parameter_und_container/index.html | 1 + .../16_master_abschlussprojekt/index.html | 1 + 34 files changed, 497 insertions(+), 2 deletions(-) create mode 100644 assets/sidebar.js diff --git a/.gamification.json b/.gamification.json index 4faab4e..f58c49b 100644 --- a/.gamification.json +++ b/.gamification.json @@ -10,5 +10,5 @@ "streak_tage": 1, "letzter_aktiver_tag": "2026-08-29", "historie": [], - "zuletzt_aktualisiert": "2026-08-29T15:50:41.498015" + "zuletzt_aktualisiert": "2026-08-29T15:54:00.836247" } \ No newline at end of file diff --git a/assets/gamification_data.js b/assets/gamification_data.js index 8345274..c34b00b 100644 --- a/assets/gamification_data.js +++ b/assets/gamification_data.js @@ -11,7 +11,7 @@ window.GAMIFICATION_DATA = { "streak_tage": 1, "letzter_aktiver_tag": "2026-08-29", "historie": [], - "zuletzt_aktualisiert": "2026-08-29T15:50:41.498015" + "zuletzt_aktualisiert": "2026-08-29T15:54:00.836247" }; window.GAMIFICATION_BADGES_KATALOG = { "rechenkonegin": { diff --git a/assets/sidebar.js b/assets/sidebar.js new file mode 100644 index 0000000..fb59b58 --- /dev/null +++ b/assets/sidebar.js @@ -0,0 +1,179 @@ +/** + * ๐Ÿงญ NEXT-GEN SIDEBAR NAVIGATION & APP LAYOUT ๐Ÿงญ + * =============================================== + * Erzeugt eine moderne, responsive Sidebar auf der linken Seite + * fรผr das Hauptportal und alle 27 Kapitel-Seiten. + */ + +(function () { + const LEHRPFADE = [ + { + id: "lehrpfad_1", + title: "๐ŸŒฑ Lehrpfad 1: Grundlagen", + badge: "G01โ€“G10", + color: "#059669", + items: [ + { id: "01_erste_schritte_taschenrechner", num: "G01", icon: "๐Ÿงฎ", title: "Taschenrechner", path: "lehrpfad_1_grundlagen/01_erste_schritte_taschenrechner/index.html" }, + { id: "02_variablen_und_datentypen", num: "G02", icon: "๐Ÿ“ฆ", title: "Variablen & Typen", path: "lehrpfad_1_grundlagen/02_variablen_und_datentypen/index.html" }, + { id: "03_ein_und_ausgabe", num: "G03", icon: "๐Ÿ’ฌ", title: "Ein- & Ausgabe", path: "lehrpfad_1_grundlagen/03_ein_und_ausgabe/index.html" }, + { id: "04_verzweigungen_und_bedingungen", num: "G04", icon: "๐Ÿšฆ", title: "Bedingungen (if)", path: "lehrpfad_1_grundlagen/04_verzweigungen_und_bedingungen/index.html" }, + { id: "05_schleifen_und_wiederholungen", num: "G05", icon: "๐ŸŽก", title: "Schleifen (for/while)", path: "lehrpfad_1_grundlagen/05_schleifen_und_wiederholungen/index.html" }, + { id: "06_funktionen_und_module", num: "G06", icon: "๐Ÿช„", title: "Funktionen & Module", path: "lehrpfad_1_grundlagen/06_funktionen_und_module/index.html" }, + { id: "07_listen_und_sequenzen", num: "G07", icon: "๐Ÿ“‹", title: "Listen & Sequenzen", path: "lehrpfad_1_grundlagen/07_listen_und_sequenzen/index.html" }, + { id: "08_textverarbeitung_und_strings", num: "G08", icon: "๐Ÿ”ค", title: "String-Methoden", path: "lehrpfad_1_grundlagen/08_textverarbeitung_und_strings/index.html" }, + { id: "09_dictionaries_und_sets", num: "G09", icon: "๐Ÿ—ƒ๏ธ", title: "Dicts & Sets", path: "lehrpfad_1_grundlagen/09_dictionaries_und_sets/index.html" }, + { id: "10_comprehensions_datum_algorithmen", num: "G10", icon: "๐Ÿš€", title: "Comprehensions", path: "lehrpfad_1_grundlagen/10_comprehensions_datum_algorithmen/index.html" }, + ] + }, + { + id: "lehrpfad_2", + title: "๐Ÿ—๏ธ Lehrpfad 2: OOP Einstieg", + badge: "00โ€“06", + color: "#4f46e5", + items: [ + { id: "00_fehlersuche_und_grundlagen", num: "00", icon: "๐Ÿ”", title: "Fehlersuche & Debugging", path: "lehrpfad_2_oop_einstieg/00_fehlersuche_und_grundlagen/index.html" }, + { id: "01_einstieg_klassen", num: "01", icon: "๐Ÿ—๏ธ", title: "Einstieg in Klassen", path: "lehrpfad_2_oop_einstieg/01_einstieg_klassen/index.html" }, + { id: "02_init_und_self", num: "02", icon: "โš™๏ธ", title: "Konstruktor & self", path: "lehrpfad_2_oop_einstieg/02_init_und_self/index.html" }, + { id: "03_methoden_und_verhalten", num: "03", icon: "๐ŸŽ๏ธ", title: "Methoden & Verhalten", path: "lehrpfad_2_oop_einstieg/03_methoden_und_verhalten/index.html" }, + { id: "04_str_und_darstellung", num: "04", icon: "๐Ÿงพ", title: "__str__ Darstellung", path: "lehrpfad_2_oop_einstieg/04_str_und_darstellung/index.html" }, + { id: "04b_umstieg_vscode", num: "04b", icon: "๐Ÿ’ป", title: "VS Code Setup", path: "lehrpfad_2_oop_einstieg/04b_umstieg_vscode/index.html" }, + { id: "04c_git_und_versionskontrolle", num: "04c", icon: "๐ŸŒฟ", title: "Git-Versionskontrolle", path: "lehrpfad_2_oop_einstieg/04c_git_und_versionskontrolle/index.html" }, + { id: "05_objekte_kombinieren", num: "05", icon: "๐ŸŽต", title: "Objekte kombinieren", path: "lehrpfad_2_oop_einstieg/05_objekte_kombinieren/index.html" }, + { id: "06_abschlussprojekt_tamagotchi", num: "06", icon: "๐Ÿฅš", title: "Projekt: Tamagotchi", path: "lehrpfad_2_oop_einstieg/06_abschlussprojekt_tamagotchi/index.html" }, + ] + }, + { + id: "lehrpfad_3", + title: "๐Ÿš€ Lehrpfad 3: Fortgeschritten", + badge: "07โ€“16", + color: "#7c3aed", + items: [ + { id: "07_referenzen_und_speicher", num: "07", icon: "๐Ÿง ", title: "Referenzen & Speicher", path: "lehrpfad_3_fortgeschrittenes_oop/07_referenzen_und_speicher/index.html" }, + { id: "08_operator_overloading_dunder", num: "08", icon: "โž•", title: "Operator Overloading", path: "lehrpfad_3_fortgeschrittenes_oop/08_operator_overloading_dunder/index.html" }, + { id: "09_eigene_unit_tests_schreiben", num: "09", icon: "๐Ÿงช", title: "Unit Tests & TDD", path: "lehrpfad_3_fortgeschrittenes_oop/09_eigene_unit_tests_schreiben/index.html" }, + { id: "10_vererbung_und_super", num: "10", icon: "๐Ÿงฌ", title: "Vererbung & super()", path: "lehrpfad_3_fortgeschrittenes_oop/10_vererbung_und_super/index.html" }, + { id: "11_polymorphie_und_interfaces", num: "11", icon: "๐ŸŽญ", title: "Polymorphie", path: "lehrpfad_3_fortgeschrittenes_oop/11_polymorphie_und_interfaces/index.html" }, + { id: "12_exceptions_und_fehlerbehandlung", num: "12", icon: "๐Ÿ›ก๏ธ", title: "Exceptions & Fehler", path: "lehrpfad_3_fortgeschrittenes_oop/12_exceptions_und_fehlerbehandlung/index.html" }, + { id: "13_persistenz_json_und_csv", num: "13", icon: "๐Ÿ’พ", title: "Persistenz (JSON/CSV)", path: "lehrpfad_3_fortgeschrittenes_oop/13_persistenz_json_und_csv/index.html" }, + { id: "14_gui_mit_tkinter", num: "14", icon: "๐Ÿ–ฅ๏ธ", title: "Desktop-GUIs (Tkinter)", path: "lehrpfad_3_fortgeschrittenes_oop/14_gui_mit_tkinter/index.html" }, + { id: "15_parameter_und_container", num: "15", icon: "๐ŸŽ’", title: "Container & *args", path: "lehrpfad_3_fortgeschrittenes_oop/15_parameter_und_container/index.html" }, + { id: "16_master_abschlussprojekt", num: "16", icon: "๐Ÿ†", title: "Master-Abschlussprojekt", path: "lehrpfad_3_fortgeschrittenes_oop/16_master_abschlussprojekt/index.html" }, + ] + } + ]; + + function detectRootPrefix() { + const p = window.location.pathname; + if (p.includes("/lehrpfad_1_grundlagen/") || p.includes("/lehrpfad_2_oop_einstieg/") || p.includes("/lehrpfad_3_fortgeschrittenes_oop/")) { + return "../../"; + } + return "./"; + } + + function initSidebar() { + if (document.querySelector(".app-sidebar")) return; + + const prefix = detectRootPrefix(); + const currentPath = window.location.pathname; + const isRoot = prefix === "./"; + + // Gamification Data + const gData = window.GAMIFICATION_DATA || { xp: 0, level: 1, titel: "Code-Kรผken ๐Ÿฃ", geloeste_kapitel: [] }; + const solvedSet = new Set(gData.geloeste_kapitel || []); + + // 1. Erstelle Drawer-Toggle Button fรผr Mobile + const toggleBtn = document.createElement("button"); + toggleBtn.type = "button"; + toggleBtn.className = "sidebar-mobile-toggle"; + toggleBtn.innerHTML = "โ˜ฐ Menรผ"; + document.body.prepend(toggleBtn); + + // 2. Erstelle Overlay fรผr Mobile + const overlay = document.createElement("div"); + overlay.className = "sidebar-overlay"; + document.body.prepend(overlay); + + // 3. Erstelle Sidebar Container + const sidebar = document.createElement("aside"); + sidebar.className = "app-sidebar"; + + let tracksHtml = ""; + LEHRPFADE.forEach(track => { + let itemsHtml = ""; + track.items.forEach(item => { + const fullLink = prefix + item.path; + const isActive = currentPath.includes(item.id); + const isSolved = solvedSet.has(item.path.replace("/index.html", "")); + + itemsHtml += ` + + ${item.icon} + ${item.num}. ${item.title} + ${isSolved ? 'โœ…' : ''} + + `; + }); + + tracksHtml += ` + + `; + }); + + sidebar.innerHTML = ` + + + + + + + + `; + + document.body.prepend(sidebar); + + // Toggle Events + toggleBtn.addEventListener("click", () => { + sidebar.classList.toggle("open"); + overlay.classList.toggle("active"); + }); + + overlay.addEventListener("click", () => { + sidebar.classList.remove("open"); + overlay.classList.remove("active"); + }); + } + + document.addEventListener("DOMContentLoaded", initSidebar); +})(); diff --git a/assets/style.css b/assets/style.css index 9357b66..2211a02 100644 --- a/assets/style.css +++ b/assets/style.css @@ -1197,3 +1197,289 @@ summary:hover { .hud-stats { width: 100%; justify-content: space-between; } .roadmap-grid { grid-template-columns: 1fr; } } + +/* ========================================================================== + APP LAYOUT & LEFT SIDEBAR NAVIGATION + ========================================================================== */ + +body { + padding-left: 300px; + transition: padding-left var(--transition-smooth); +} + +.app-sidebar { + width: 300px; + height: 100vh; + position: fixed; + top: 0; + left: 0; + background: #090d16; + color: #f8fafc; + border-right: 1px solid rgba(255, 255, 255, 0.08); + display: flex; + flex-direction: column; + z-index: 1000; + overflow: hidden; + box-shadow: var(--shadow-lg); +} + +.sidebar-brand { + padding: 20px 22px; + border-bottom: 1px solid rgba(255, 255, 255, 0.08); + background: rgba(255, 255, 255, 0.02); +} + +.sidebar-brand-link { + display: flex; + align-items: center; + gap: 12px; + text-decoration: none; + color: white; +} + +.sidebar-brand-logo { + font-size: 1.8rem; + background: rgba(99, 102, 241, 0.2); + border: 1px solid rgba(99, 102, 241, 0.4); + width: 42px; + height: 42px; + border-radius: var(--radius-sm); + display: flex; + align-items: center; + justify-content: center; +} + +.sidebar-brand-title { + font-size: 1.05rem; + font-weight: 800; + color: #ffffff; + letter-spacing: -0.01em; +} + +.sidebar-brand-sub { + font-size: 0.75rem; + color: #94a3b8; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.sidebar-quick-nav { + padding: 12px 16px; + display: flex; + flex-direction: column; + gap: 4px; + border-bottom: 1px solid rgba(255, 255, 255, 0.08); + background: rgba(0, 0, 0, 0.2); +} + +.sidebar-quick-link { + color: #94a3b8; + text-decoration: none; + font-size: 0.82rem; + font-weight: 600; + padding: 6px 10px; + border-radius: var(--radius-sm); + transition: all var(--transition-fast); +} + +.sidebar-quick-link:hover { + background: rgba(255, 255, 255, 0.08); + color: #ffffff; +} + +.sidebar-content { + flex: 1; + overflow-y: auto; + padding: 16px 14px; + display: flex; + flex-direction: column; + gap: 20px; +} + +.sidebar-content::-webkit-scrollbar { + width: 5px; +} + +.sidebar-content::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.15); + border-radius: 3px; +} + +.sidebar-section { + display: flex; + flex-direction: column; + gap: 6px; +} + +.sidebar-section-header { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 0.78rem; + font-weight: 800; + color: #94a3b8; + text-transform: uppercase; + letter-spacing: 0.6px; + padding: 4px 8px; +} + +.sidebar-section-badge { + padding: 2px 6px; + border-radius: var(--radius-full); + font-size: 0.7rem; + font-weight: 800; +} + +.sidebar-nav-list { + display: flex; + flex-direction: column; + gap: 3px; +} + +.sidebar-item { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + border-radius: var(--radius-sm); + color: #cbd5e1; + text-decoration: none; + font-size: 0.86rem; + font-weight: 600; + transition: all var(--transition-fast); + border-left: 3px solid transparent; +} + +.sidebar-item:hover { + background: rgba(255, 255, 255, 0.06); + color: #ffffff; + border-left-color: rgba(255, 255, 255, 0.3); +} + +.sidebar-item.active { + background: rgba(99, 102, 241, 0.18); + color: #ffffff; + border-left-color: var(--primary); + font-weight: 700; +} + +.sidebar-item-icon { + font-size: 1rem; + flex-shrink: 0; +} + +.sidebar-item-text { + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.sidebar-solved-badge { + font-size: 0.78rem; +} + +.sidebar-footer { + padding: 14px 16px; + border-top: 1px solid rgba(255, 255, 255, 0.08); + background: rgba(0, 0, 0, 0.3); +} + +.sidebar-user-card { + display: flex; + align-items: center; + gap: 10px; +} + +.sidebar-user-avatar { + font-size: 1.4rem; + background: rgba(99, 102, 241, 0.2); + width: 36px; + height: 36px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + border: 1px solid var(--primary); +} + +.sidebar-user-info { + flex: 1; +} + +.sidebar-user-name { + font-size: 0.85rem; + font-weight: 800; + color: white; +} + +.sidebar-user-title { + font-size: 0.72rem; + color: #94a3b8; +} + +.sidebar-user-xp { + font-size: 0.82rem; + font-weight: 800; + color: #38bdf8; +} + +/* Mobile Drawer Toggle & Overlay */ +.sidebar-mobile-toggle { + display: none; + position: fixed; + bottom: 20px; + left: 20px; + z-index: 1001; + background: var(--primary-gradient); + color: white; + border: none; + padding: 12px 20px; + border-radius: var(--radius-full); + font-size: 0.95rem; + font-weight: 800; + cursor: pointer; + box-shadow: var(--shadow-xl); + backdrop-filter: blur(8px); +} + +.sidebar-overlay { + display: none; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(15, 23, 42, 0.7); + backdrop-filter: blur(4px); + z-index: 999; + opacity: 0; + transition: opacity var(--transition-normal); +} + +.sidebar-overlay.active { + display: block; + opacity: 1; +} + +@media (max-width: 1024px) { + body { + padding-left: 0; + } + + .app-sidebar { + transform: translateX(-100%); + transition: transform var(--transition-smooth); + } + + .app-sidebar.open { + transform: translateX(0); + } + + .sidebar-mobile-toggle { + display: inline-flex; + align-items: center; + gap: 6px; + } +} + diff --git a/index.html b/index.html index c930594..5bd0a26 100644 --- a/index.html +++ b/index.html @@ -848,5 +848,6 @@ object has no attribute 'gang' + diff --git a/lehrpfad_1_grundlagen/01_erste_schritte_taschenrechner/index.html b/lehrpfad_1_grundlagen/01_erste_schritte_taschenrechner/index.html index a82c7ea..e46673a 100644 --- a/lehrpfad_1_grundlagen/01_erste_schritte_taschenrechner/index.html +++ b/lehrpfad_1_grundlagen/01_erste_schritte_taschenrechner/index.html @@ -322,5 +322,6 @@ + diff --git a/lehrpfad_1_grundlagen/02_variablen_und_datentypen/index.html b/lehrpfad_1_grundlagen/02_variablen_und_datentypen/index.html index 5a8abdd..23f838e 100644 --- a/lehrpfad_1_grundlagen/02_variablen_und_datentypen/index.html +++ b/lehrpfad_1_grundlagen/02_variablen_und_datentypen/index.html @@ -273,5 +273,6 @@ + diff --git a/lehrpfad_1_grundlagen/03_ein_und_ausgabe/index.html b/lehrpfad_1_grundlagen/03_ein_und_ausgabe/index.html index 0b69d07..f94a7c0 100644 --- a/lehrpfad_1_grundlagen/03_ein_und_ausgabe/index.html +++ b/lehrpfad_1_grundlagen/03_ein_und_ausgabe/index.html @@ -276,5 +276,6 @@ return f"Steckbrief: {name} | GrรถรŸe: {groesse_m:.2f} m | Gewicht: {gewicht_kg: + diff --git a/lehrpfad_1_grundlagen/04_verzweigungen_und_bedingungen/index.html b/lehrpfad_1_grundlagen/04_verzweigungen_und_bedingungen/index.html index d609105..edd1e77 100644 --- a/lehrpfad_1_grundlagen/04_verzweigungen_und_bedingungen/index.html +++ b/lehrpfad_1_grundlagen/04_verzweigungen_und_bedingungen/index.html @@ -308,5 +308,6 @@ return False + diff --git a/lehrpfad_1_grundlagen/05_schleifen_und_wiederholungen/index.html b/lehrpfad_1_grundlagen/05_schleifen_und_wiederholungen/index.html index 990d0ca..927cb96 100644 --- a/lehrpfad_1_grundlagen/05_schleifen_und_wiederholungen/index.html +++ b/lehrpfad_1_grundlagen/05_schleifen_und_wiederholungen/index.html @@ -349,5 +349,6 @@ + diff --git a/lehrpfad_1_grundlagen/06_funktionen_und_module/index.html b/lehrpfad_1_grundlagen/06_funktionen_und_module/index.html index f7ff36e..7250004 100644 --- a/lehrpfad_1_grundlagen/06_funktionen_und_module/index.html +++ b/lehrpfad_1_grundlagen/06_funktionen_und_module/index.html @@ -302,5 +302,6 @@ + diff --git a/lehrpfad_1_grundlagen/07_listen_und_sequenzen/index.html b/lehrpfad_1_grundlagen/07_listen_und_sequenzen/index.html index d883315..b890bf9 100644 --- a/lehrpfad_1_grundlagen/07_listen_und_sequenzen/index.html +++ b/lehrpfad_1_grundlagen/07_listen_und_sequenzen/index.html @@ -293,5 +293,6 @@ + diff --git a/lehrpfad_1_grundlagen/08_textverarbeitung_und_strings/index.html b/lehrpfad_1_grundlagen/08_textverarbeitung_und_strings/index.html index 686cafd..4c89580 100644 --- a/lehrpfad_1_grundlagen/08_textverarbeitung_und_strings/index.html +++ b/lehrpfad_1_grundlagen/08_textverarbeitung_und_strings/index.html @@ -248,5 +248,6 @@ + diff --git a/lehrpfad_1_grundlagen/09_dictionaries_und_sets/index.html b/lehrpfad_1_grundlagen/09_dictionaries_und_sets/index.html index 61d21e7..a5593ba 100644 --- a/lehrpfad_1_grundlagen/09_dictionaries_und_sets/index.html +++ b/lehrpfad_1_grundlagen/09_dictionaries_und_sets/index.html @@ -322,5 +322,6 @@ + diff --git a/lehrpfad_1_grundlagen/10_comprehensions_datum_algorithmen/index.html b/lehrpfad_1_grundlagen/10_comprehensions_datum_algorithmen/index.html index 40fa635..c2d9d85 100644 --- a/lehrpfad_1_grundlagen/10_comprehensions_datum_algorithmen/index.html +++ b/lehrpfad_1_grundlagen/10_comprehensions_datum_algorithmen/index.html @@ -272,5 +272,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/00_fehlersuche_und_grundlagen/index.html b/lehrpfad_2_oop_einstieg/00_fehlersuche_und_grundlagen/index.html index 72719cd..53cc30c 100644 --- a/lehrpfad_2_oop_einstieg/00_fehlersuche_und_grundlagen/index.html +++ b/lehrpfad_2_oop_einstieg/00_fehlersuche_und_grundlagen/index.html @@ -226,5 +226,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/01_einstieg_klassen/index.html b/lehrpfad_2_oop_einstieg/01_einstieg_klassen/index.html index b9f02b8..46be213 100644 --- a/lehrpfad_2_oop_einstieg/01_einstieg_klassen/index.html +++ b/lehrpfad_2_oop_einstieg/01_einstieg_klassen/index.html @@ -308,5 +308,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/02_init_und_self/index.html b/lehrpfad_2_oop_einstieg/02_init_und_self/index.html index 034339c..0b5ddaa 100644 --- a/lehrpfad_2_oop_einstieg/02_init_und_self/index.html +++ b/lehrpfad_2_oop_einstieg/02_init_und_self/index.html @@ -235,5 +235,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/03_methoden_und_verhalten/index.html b/lehrpfad_2_oop_einstieg/03_methoden_und_verhalten/index.html index ec042b0..b130a99 100644 --- a/lehrpfad_2_oop_einstieg/03_methoden_und_verhalten/index.html +++ b/lehrpfad_2_oop_einstieg/03_methoden_und_verhalten/index.html @@ -215,5 +215,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/04_str_und_darstellung/index.html b/lehrpfad_2_oop_einstieg/04_str_und_darstellung/index.html index a7898c3..0acfa79 100644 --- a/lehrpfad_2_oop_einstieg/04_str_und_darstellung/index.html +++ b/lehrpfad_2_oop_einstieg/04_str_und_darstellung/index.html @@ -222,5 +222,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/04b_umstieg_vscode/index.html b/lehrpfad_2_oop_einstieg/04b_umstieg_vscode/index.html index 18c6f20..63dc5b1 100644 --- a/lehrpfad_2_oop_einstieg/04b_umstieg_vscode/index.html +++ b/lehrpfad_2_oop_einstieg/04b_umstieg_vscode/index.html @@ -332,5 +332,6 @@ sudo snap install --classic code + diff --git a/lehrpfad_2_oop_einstieg/04c_git_und_versionskontrolle/index.html b/lehrpfad_2_oop_einstieg/04c_git_und_versionskontrolle/index.html index 5b53460..776bea1 100644 --- a/lehrpfad_2_oop_einstieg/04c_git_und_versionskontrolle/index.html +++ b/lehrpfad_2_oop_einstieg/04c_git_und_versionskontrolle/index.html @@ -228,5 +228,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/05_objekte_kombinieren/index.html b/lehrpfad_2_oop_einstieg/05_objekte_kombinieren/index.html index 95736bb..3fb2d1a 100644 --- a/lehrpfad_2_oop_einstieg/05_objekte_kombinieren/index.html +++ b/lehrpfad_2_oop_einstieg/05_objekte_kombinieren/index.html @@ -218,5 +218,6 @@ + diff --git a/lehrpfad_2_oop_einstieg/06_abschlussprojekt_tamagotchi/index.html b/lehrpfad_2_oop_einstieg/06_abschlussprojekt_tamagotchi/index.html index 461357f..3cc6841 100644 --- a/lehrpfad_2_oop_einstieg/06_abschlussprojekt_tamagotchi/index.html +++ b/lehrpfad_2_oop_einstieg/06_abschlussprojekt_tamagotchi/index.html @@ -197,5 +197,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/07_referenzen_und_speicher/index.html b/lehrpfad_3_fortgeschrittenes_oop/07_referenzen_und_speicher/index.html index 0f8d7b0..d6e9c9a 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/07_referenzen_und_speicher/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/07_referenzen_und_speicher/index.html @@ -248,5 +248,6 @@ STACK (Variablen-Namen) HEAP (Echter Speicher / RAM) + diff --git a/lehrpfad_3_fortgeschrittenes_oop/08_operator_overloading_dunder/index.html b/lehrpfad_3_fortgeschrittenes_oop/08_operator_overloading_dunder/index.html index 60d3aef..2a294d6 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/08_operator_overloading_dunder/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/08_operator_overloading_dunder/index.html @@ -297,5 +297,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/09_eigene_unit_tests_schreiben/index.html b/lehrpfad_3_fortgeschrittenes_oop/09_eigene_unit_tests_schreiben/index.html index d855ef0..32548b1 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/09_eigene_unit_tests_schreiben/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/09_eigene_unit_tests_schreiben/index.html @@ -316,5 +316,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/10_vererbung_und_super/index.html b/lehrpfad_3_fortgeschrittenes_oop/10_vererbung_und_super/index.html index 400cf9e..9e336f6 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/10_vererbung_und_super/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/10_vererbung_und_super/index.html @@ -376,5 +376,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/11_polymorphie_und_interfaces/index.html b/lehrpfad_3_fortgeschrittenes_oop/11_polymorphie_und_interfaces/index.html index 0ae8ed8..91c666d 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/11_polymorphie_und_interfaces/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/11_polymorphie_und_interfaces/index.html @@ -409,5 +409,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/12_exceptions_und_fehlerbehandlung/index.html b/lehrpfad_3_fortgeschrittenes_oop/12_exceptions_und_fehlerbehandlung/index.html index 3f8f8cf..a8f1992 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/12_exceptions_und_fehlerbehandlung/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/12_exceptions_und_fehlerbehandlung/index.html @@ -276,5 +276,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/13_persistenz_json_und_csv/index.html b/lehrpfad_3_fortgeschrittenes_oop/13_persistenz_json_und_csv/index.html index fcb5bf0..f26b781 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/13_persistenz_json_und_csv/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/13_persistenz_json_und_csv/index.html @@ -264,5 +264,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/14_gui_mit_tkinter/index.html b/lehrpfad_3_fortgeschrittenes_oop/14_gui_mit_tkinter/index.html index 26f9b89..ba1eaa3 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/14_gui_mit_tkinter/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/14_gui_mit_tkinter/index.html @@ -370,5 +370,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/15_parameter_und_container/index.html b/lehrpfad_3_fortgeschrittenes_oop/15_parameter_und_container/index.html index 10ad247..d0d4358 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/15_parameter_und_container/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/15_parameter_und_container/index.html @@ -333,5 +333,6 @@ + diff --git a/lehrpfad_3_fortgeschrittenes_oop/16_master_abschlussprojekt/index.html b/lehrpfad_3_fortgeschrittenes_oop/16_master_abschlussprojekt/index.html index 757e06e..e28d5c5 100644 --- a/lehrpfad_3_fortgeschrittenes_oop/16_master_abschlussprojekt/index.html +++ b/lehrpfad_3_fortgeschrittenes_oop/16_master_abschlussprojekt/index.html @@ -345,5 +345,6 @@ +