From ee0ce7fcff73ef9ea14bae2af41efdfea2d4dd91 Mon Sep 17 00:00:00 2001 From: Sven Lubenau Date: Fri, 12 Sep 2025 19:59:18 +0200 Subject: [PATCH] Major refactoring: Unified result display, improved personas system, and enhanced markdown rendering - Moved result display outside tabs for unified experience - Fixed dropdown disappearing issue in personas - Implemented mapping-files system in personas.yml - Cleaned up personas.yml structure (removed unused fields) - Updated ausbildung-value codes (AUSBILDUNG/HS/LA) - Enhanced markdown rendering with proper link support - Fixed path resolution for Bundeslaender content - Improved tab persistence and content reset functionality - Added proper marginal sidebar support for both tabs - Streamlined HTML structure and removed duplicate elements --- www/.DS_Store | Bin 6148 -> 6148 bytes www/Steuerungsdateien/.DS_Store | Bin 0 -> 6148 bytes www/Steuerungsdateien/finder.js | 80 +++++++-- www/Steuerungsdateien/personas.js | 275 ++++++++++++++++++----------- www/Steuerungsdateien/personas.yml | 66 ++++--- www/index.html | 64 ++++--- www/typosnippet.html | 94 ++++++++++ 7 files changed, 396 insertions(+), 183 deletions(-) create mode 100644 www/Steuerungsdateien/.DS_Store create mode 100644 www/typosnippet.html diff --git a/www/.DS_Store b/www/.DS_Store index 9fd810b75b89801928c66031fd14a00fabe2cc3e..fab466671b8df47faf6c64219522e867e7bc8b0b 100644 GIT binary patch delta 42 ycmZoMXfc@J&&atkU^gQp=j3@za+9@~PH?6aC+8&P=jSkPKEuSrx|yBhFFybzpbf16 delta 35 rcmZoMXfc@J&&aVcU^gQp$K-iTa+9@~PHa|We#SDfL4Pwl$6tN`&I=2^ diff --git a/www/Steuerungsdateien/.DS_Store b/www/Steuerungsdateien/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c16dd09ee8f108af003eacbac00a1c802d37221a GIT binary patch literal 6148 zcmeHK%}T^D5T4Oh3SRc;F|V*5We;(wPp~hbZDkc&vaop1%}4WHdn~#GKE7Tyi|np*ysFlTtsE=r2ymx1ZA! z4RlXC8ht-DG&S_Q)wWH;ezc28;E?LN=~DxH_40PruCHHjzUCNG_pQ(V@o1gVlCC-f z&VV!E3^)TnWk9YtNOhs;y))npI0K&y$oUY^1fyYAEJp{rQUU-Mm@WccY6*!6hS4x9 z!UACp1!^c;iNP9<`Cxw0Fe_>}u@xU|D}NL(TvkW^P~3^5qW8{#GcaY~REJBs|8Mcj z%oh365Fa@M&cHuofEV?)-e6O9w;pXz?%IHMhbAI^SriEL$s+&*IY%ywQSCu=_(j94 VC|P8_gaiE{PzdqP8TbVT-T}(6F_HiP literal 0 HcmV?d00001 diff --git a/www/Steuerungsdateien/finder.js b/www/Steuerungsdateien/finder.js index 930c30d..15249af 100644 --- a/www/Steuerungsdateien/finder.js +++ b/www/Steuerungsdateien/finder.js @@ -16,8 +16,9 @@ async function loadFinderStructure() { resetFinder(); renderBundeslandStep(); - // Zeige Empfehlungsbereich beim Finder-Tab an - showFinderRecommendation(); + // Verstecke Persona-Empfehlungen beim Finder-Tab (nicht mehr benötigt) + + // Zeige Empfehlungsbereich beim Finder-Tab an (nicht mehr benötigt) } catch (err) { console.error("Fehler beim Laden der structure.yml:", err); } @@ -320,8 +321,25 @@ async function loadResult(code) { let codeFile = `Bundeslaender/${code}.md`; const resultContainer = document.getElementById('result'); - const mainSection = resultContainer.querySelector('.main-section'); - mainSection.innerHTML = ''; + if (!resultContainer) { + console.error('Result container nicht gefunden'); + return; + } + + // Zeige Result-Container an + resultContainer.style.display = 'block'; + + // Setze Headline + const headlineElement = document.getElementById('finder-headline'); + if (headlineElement) { + headlineElement.textContent = 'Finder Ergebnis'; + } + + // Leere bisherigen Inhalt + const textContentElement = document.getElementById('finder-text-content'); + if (textContentElement) { + textContentElement.innerHTML = ''; + } // Hilfsfunktion: Markdown-Abschnitt parsen und als Article rendern function renderMarkdownArticle(mdText) { @@ -352,12 +370,22 @@ async function loadResult(code) { textStart = 2; } - let text = lines.slice(textStart).join('\n'); + let textContent = lines.slice(textStart).join('\n'); + textContent = textContent + .replace(/\*\*(.*?)\*\*/g, '$1') + .replace(/\*(.*?)\*/g, '$1') + // Markdown-Links verarbeiten: [Text](URL) + .replace(/\[([^\]]+)\]\(([^)]+)\)/g, '$1') + .replace(/\n\n/g, '

') + .replace(/^(?!<[h1-6])/gm, '

') + .replace(/$/gm, '

') + .replace(/

<\/p>/g, ''); + return `

${headline}

-
${marked.parse(text)}
+
${textContent}
@@ -386,21 +414,26 @@ async function loadResult(code) { allArticles += `

Datei nicht gefunden

${mdFile}
`; } } - mainSection.innerHTML = allArticles; + + // Zeige alle Artikel im Text-Content-Bereich an + if (textContentElement) { + textContentElement.innerHTML = allArticles; + } + resultContainer.style.display = 'block'; resultContainer.scrollIntoView({ behavior: 'smooth' }); } catch (err) { - mainSection.innerHTML = `

Fehler

${err.message}
`; + if (textContentElement) { + textContentElement.innerHTML = `

Fehler

${err.message}
`; + } resultContainer.style.display = 'block'; } } -// Lädt und zeigt die zusätzlichen Abschnitte an +// Lädt und zeigt die zusätzlichen Abschnitte an (nicht mehr verwendet) function loadAdditionalSections(sections, resultContainer) { - if (!resultContainer) { - console.error('[ERROR] Kein gültiger Container für zusätzliche Abschnitte'); - return; - } + // Funktion nicht mehr benötigt + return; // Trennlinie hinzufügen vor den zusätzlichen Abschnitten const divider = document.createElement('hr'); @@ -465,6 +498,8 @@ function addResetButton() { resetBtn.onclick = () => { resetFinder(); renderBundeslandStep(); + // Stelle sicher, dass der Finder-Tab aktiv bleibt + ensureFinderTabActive(); if (typeof showTab === 'function') showTab('tab2'); }; @@ -472,12 +507,19 @@ function addResetButton() { } } -// Zeigt den Empfehlungsbereich für den Finder-Tab an -function showFinderRecommendation() { - const recommendation = document.querySelector('.recommendation'); - if (recommendation) { - recommendation.style.display = 'block'; - } +// Empfehlungsbereich-Funktion entfernt, da Button nicht mehr existiert + +// Stellt sicher, dass der Finder-Tab aktiv bleibt +function ensureFinderTabActive() { + // Aktiviere Finder-Tab + document.querySelectorAll('.tab').forEach(t => t.classList.remove('active')); + document.querySelectorAll('.button-tab').forEach(btn => btn.classList.remove('active')); + + const finderTab = document.querySelector('.tab2'); + const finderButton = document.querySelector('.button-tab[onclick*="tab2"]'); + + if (finderTab) finderTab.classList.add('active'); + if (finderButton) finderButton.classList.add('active'); } // Initialisierung beim Seitenladen diff --git a/www/Steuerungsdateien/personas.js b/www/Steuerungsdateien/personas.js index e986d84..ee701f7 100644 --- a/www/Steuerungsdateien/personas.js +++ b/www/Steuerungsdateien/personas.js @@ -44,7 +44,12 @@ function initializePersonas() { if (personasData[currentPersona]) { updateMainPortrait(personasData[currentPersona]); updateBundeslandDropdown(personasData[currentPersona]); - updatePersonaButton(personasData[currentPersona]); + // updatePersonaButton entfernt + + // Lade automatisch die Texte für die initiale Persona + setTimeout(() => { + loadPersonaMarkdownContentOnly(currentPersona); + }, 500); } } @@ -71,8 +76,12 @@ function selectPersona(personaName) { // Bundesland-Dropdown aktualisieren updateBundeslandDropdown(persona); - // Button-Text aktualisieren - updatePersonaButton(persona); + // Button-Text aktualisieren (entfernt) + + // Lade automatisch die Texte für die ausgewählte Persona + setTimeout(() => { + loadPersonaMarkdownContentOnly(currentPersona); + }, 200); console.log('[DEBUG] Persona gewechselt von', previousPersona, 'zu:', personaName); } @@ -110,7 +119,7 @@ function updateMainPortrait(persona) { text = text.replace(/\{\{AUSBILDUNG_SELECT\}\}/g, persona.ausbildung); // Informatik-Placeholder ersetzen - text = text.replace(/\{\{INFORMATIK_SELECT\}\}/g, persona.informatik || 'Informatik'); + // INFORMATIK_SELECT wird nicht mehr verwendet // Abschluss-Placeholder ersetzen text = text.replace(/\{\{ABSCHLUSS_SELECT\}\}/g, getAbschlussName(persona['abschluss-value'])); @@ -237,9 +246,13 @@ function updateBundeslandDropdown(persona) { // Dropdowns existieren bereits - nur Werte aktualisieren existingBundeslandSelect.value = persona.bundesland; existingAusbildungSelect.value = persona['ausbildung-value']; + console.log('[DEBUG] Dropdown-Werte aktualisiert:', persona.bundesland, persona['ausbildung-value']); return; } + // Dropdowns existieren nicht - erstelle sie + console.log('[DEBUG] Erstelle neue Dropdowns für Persona:', persona.name); + // Ersetze die Platzhalter im Text mit echten Dropdowns let textContent = persona.text; @@ -270,12 +283,7 @@ function updateBundeslandDropdown(persona) { ausbildungSelectElement.addEventListener('change', handleAusbildungChange); } - // Button Event Listener hinzufügen - const empfehlungButton = document.getElementById('persona-empfehlung-button'); - if (empfehlungButton) { - empfehlungButton.removeEventListener('click', handleEmpfehlungButtonClick); - empfehlungButton.addEventListener('click', handleEmpfehlungButtonClick); - } + // Button Event Listener entfernt, da Button nicht mehr existiert }, 100); } @@ -285,8 +293,12 @@ function handleBundeslandChange() { if (persona) { persona.bundesland = this.value; console.log('[DEBUG] Bundesland geändert zu:', this.value); - // Lade nur die Texte, nicht die Dropdowns - loadPersonaMarkdownContentOnly(currentPersona); + // Lade nur die Texte, NICHT die Dropdowns neu erstellen + setTimeout(() => { + loadPersonaMarkdownContentOnly(currentPersona); + }, 100); + // Stelle sicher, dass der Personas-Tab aktiv bleibt + ensurePersonasTabActive(); } } @@ -296,23 +308,26 @@ function handleAusbildungChange() { if (persona) { persona['ausbildung-value'] = this.value; console.log('[DEBUG] Ausbildung geändert zu:', this.value); - // Lade nur die Texte, nicht die Dropdowns - loadPersonaMarkdownContentOnly(currentPersona); + // Lade nur die Texte, NICHT die Dropdowns neu erstellen + setTimeout(() => { + loadPersonaMarkdownContentOnly(currentPersona); + }, 100); + // Stelle sicher, dass der Personas-Tab aktiv bleibt + ensurePersonasTabActive(); } } -// Aktualisiert den Button-Text mit dem Persona-Namen +// Button-Funktion entfernt, da Button nicht mehr existiert function updatePersonaButton(persona) { - const buttonNameElement = document.getElementById('persona-button-name'); - if (buttonNameElement) { - buttonNameElement.textContent = persona.name; - } + // Funktion nicht mehr benötigt } -// Event Handler für Empfehlung-Button +// Event Handler für Empfehlung-Button (nicht mehr verwendet, da Button entfernt) function handleEmpfehlungButtonClick() { console.log('[DEBUG] Empfehlung-Button geklickt für:', currentPersona); loadPersonaMarkdownContent(currentPersona); + // Stelle sicher, dass der Personas-Tab aktiv bleibt + ensurePersonasTabActive(); } // Bundesland-Namen aus Code generieren @@ -373,9 +388,9 @@ function getAllBundeslandOptions(selectedBundesland) { // Alle Ausbildung-Optionen generieren function getAllAusbildungOptions(selectedAusbildung) { const ausbildungOptions = { - 'B': 'Berufserfahrung', - 'H': 'Hochschulstudium', - 'S': 'Lehramtsstudium' + 'AUSBILDUNG': 'Berufserfahrung', + 'HS': 'Hochschulstudium', + 'LA': 'Lehramtsstudium' }; let options = ''; @@ -428,6 +443,19 @@ function addPersonasStyles() { document.head.appendChild(style); } +// Stellt sicher, dass der Personas-Tab aktiv bleibt +function ensurePersonasTabActive() { + // Aktiviere Personas-Tab + document.querySelectorAll('.tab').forEach(t => t.classList.remove('active')); + document.querySelectorAll('.button-tab').forEach(btn => btn.classList.remove('active')); + + const personasTab = document.querySelector('.tab1'); + const personasButton = document.querySelector('.button-tab[onclick*="tab1"]'); + + if (personasTab) personasTab.classList.add('active'); + if (personasButton) personasButton.classList.add('active'); +} + // Initialisierung beim Laden der Seite document.addEventListener('DOMContentLoaded', function() { addPersonasStyles(); @@ -441,33 +469,21 @@ function showPersonasTab() { loadPersonasData(); } - // Verstecke Empfehlungsbereich beim Wechsel zu Personas-Tab - hideRecommendation(); + // Verstecke Empfehlungsbereich beim Wechsel zu Personas-Tab (nicht mehr benötigt) + + // Verstecke Finder-Ergebnisse + const finderResult = document.getElementById('result'); + if (finderResult) { + finderResult.style.display = 'none'; + } } -// Globale Funktion für Finder-Tab-Wechsel +// Globale Funktion für Finder-Tab-Wechsel (nicht mehr benötigt) function showFinderTabWithPersona() { - // Lade Markdown-Inhalte für die aktuelle Persona - if (currentPersona && Object.keys(personasData).length > 0) { - loadPersonaMarkdownContent(currentPersona); - } + // Funktion nicht mehr benötigt } -// Versteckt den Empfehlungsbereich -function hideRecommendation() { - const recommendation = document.querySelector('.recommendation'); - if (recommendation) { - recommendation.style.display = 'none'; - } -} - -// Zeigt den Empfehlungsbereich an -function showRecommendation() { - const recommendation = document.querySelector('.recommendation'); - if (recommendation) { - recommendation.style.display = 'block'; - } -} +// Empfehlungsbereich-Funktionen entfernt, da Button nicht mehr existiert // Lädt nur die Markdown-Inhalte ohne Dropdowns zu ändern async function loadPersonaMarkdownContentOnly(personaName) { @@ -561,7 +577,16 @@ async function loadPersonaMarkdownContent(personaName) { // Bestimmt die richtige Markdown-Datei basierend auf Persona-Daten function getMarkdownFileForPersona(persona) { - // Bundesland-Mapping - korrigiert für die tatsächlichen Verzeichnisnamen + // Verwende die mapping-files aus der personas.yml, falls vorhanden + if (persona['mapping-files'] && persona['mapping-files'].length > 0) { + // Für jetzt verwende die erste Mapping-Datei + // TODO: Später können wir eine intelligentere Auswahl basierend auf Dropdown-Werten implementieren + const mappingFile = persona['mapping-files'][0]; + console.log('[DEBUG] Verwende Mapping-Datei aus personas.yml:', mappingFile); + return mappingFile; + } + + // Fallback: Alte Logik für Personas ohne mapping-files const bundeslandMapping = { 'BW': '1_BW', 'BY': '2_BY', @@ -592,25 +617,17 @@ function getMarkdownFileForPersona(persona) { let fileName = ''; // Ausbildung-basiert (Code-System) - if (persona['ausbildung-value'] === 'B') { + if (persona['ausbildung-value'] === 'AUSBILDUNG') { // Berufserfahrung - if (persona['informatik-value'] === 'J') { - fileName = 'HS-BA-1F.md'; // Informatik-Berufserfahrung - } else { - fileName = 'HS-BA-2F.md'; // Andere Berufserfahrung - } - } else if (persona['ausbildung-value'] === 'H') { + fileName = 'HS-BA-1F.md'; // Berufserfahrung + } else if (persona['ausbildung-value'] === 'HS') { // Hochschule if (persona['abschluss-value'] === 'B') { fileName = 'HS-MA-0F.md'; // Bachelor } else if (persona['abschluss-value'] === 'M') { - if (persona['informatik-value'] === 'J') { - fileName = 'HS-MA-1F.md'; // Master mit Informatik - } else { - fileName = 'HS-MA-2F.md'; // Master ohne Informatik (wie Birgit) - } + fileName = 'HS-MA-1F.md'; // Master } - } else if (persona['ausbildung-value'] === 'S') { + } else if (persona['ausbildung-value'] === 'LA') { // Studium/Lehramt fileName = 'LA-BA.md'; } @@ -620,7 +637,7 @@ function getMarkdownFileForPersona(persona) { return null; } - console.log(`[DEBUG] Persona ${persona.name}: Bundesland ${persona.bundesland} (${bundeslandDir}), Ausbildung ${persona['ausbildung-value']}, Abschluss ${persona['abschluss-value']}, Informatik ${persona['informatik-value']} → ${fileName}`); + console.log(`[DEBUG] Persona ${persona.name}: Bundesland ${persona.bundesland} (${bundeslandDir}), Ausbildung ${persona['ausbildung-value']}, Abschluss ${persona['abschluss-value']} → ${fileName}`); return `Bundeslaender/${bundeslandDir}/${fileName}`; } @@ -637,18 +654,18 @@ async function loadLinkedMarkdownContent(markdownPaths) { // Entferne führenden Slash falls vorhanden const cleanPath = path.trim().startsWith('/') ? path.trim().substring(1) : path.trim(); - // Füge Bundeslaender-repo/ hinzu, falls nicht bereits vorhanden - const fullPath = cleanPath.startsWith('Bundeslaender-repo/') ? cleanPath : `Bundeslaender-repo/${cleanPath}`; + // Verwende den Pfad direkt, da er bereits den korrekten Präfix hat + const fullPath = cleanPath; const response = await fetch(fullPath); const content = await response.text(); - // Konvertiere Markdown zu HTML (vereinfacht) - const htmlContent = convertMarkdownToHtml(content); - contentHtml += `
${htmlContent}
`; + // Konvertiere Markdown zu HTML (gleiche Struktur wie Finder) + const htmlContent = renderMarkdownArticle(content); + contentHtml += htmlContent; } catch (error) { console.error('Fehler beim Laden von:', path, error); - contentHtml += `

Fehler

Datei nicht gefunden: ${path}

`; + contentHtml += `

Fehler

Datei nicht gefunden: ${path}
`; } } @@ -658,49 +675,99 @@ async function loadLinkedMarkdownContent(markdownPaths) { displayPersonaContent(contentHtml); } -// Einfache Markdown-zu-HTML Konvertierung -function convertMarkdownToHtml(markdown) { - return markdown - .replace(/^# (.*$)/gim, '

$1

') - .replace(/^## (.*$)/gim, '

$1

') - .replace(/^### (.*$)/gim, '

$1

') - .replace(/\*\*(.*?)\*\*/g, '$1') - .replace(/\*(.*?)\*/g, '$1') - .replace(/\n\n/g, '

') - .replace(/^(?!<[h1-6])/gm, '

') - .replace(/$/gm, '

') - .replace(/

<\/p>/g, ''); +// Verwendet die gleiche Markdown-Rendering-Funktion wie Finder +function renderMarkdownArticle(mdText) { + // Splitte in Abschnitte nach ## + const sections = mdText.split(/\n(?=## )/); + return sections.map(section => { + let lines = section.trim().split('\n'); + if (!lines[0].startsWith('##')) return ''; + let headline = lines[0].replace(/^## /, ''); + let marginal = ''; + let textStart = 1; + + // Prüfe zweite Zeile auf Link + if (lines[1] && lines[1].startsWith('http')) { + const linkLine = lines[1]; + + // Prüfe ob es ein Markdown-Link mit Text ist: [Text](URL) + const markdownLinkMatch = linkLine.match(/^\[([^\]]+)\]\(([^)]+)\)$/); + if (markdownLinkMatch) { + // Markdown-Link gefunden: [Text](URL) + const linkText = markdownLinkMatch[1]; + const linkUrl = markdownLinkMatch[2]; + marginal = `

${linkText}
`; + } else { + // Einfacher Link + marginal = `
${linkLine}
`; + } + textStart = 2; + } + + // Rest als Text verarbeiten + let textContent = lines.slice(textStart).join('\n'); + + // Markdown-zu-HTML Konvertierung + textContent = textContent + .replace(/\*\*(.*?)\*\*/g, '$1') + .replace(/\*(.*?)\*/g, '$1') + // Markdown-Links verarbeiten: [Text](URL) + .replace(/\[([^\]]+)\]\(([^)]+)\)/g, '$1') + .replace(/\n\n/g, '

') + .replace(/^(?!<[h1-6])/gm, '

') + .replace(/$/gm, '

') + .replace(/

<\/p>/g, ''); + + return `

+
+
+

${headline}

+
${textContent}
+
+ +
+
`; + }).join(''); } // Zeigt Persona-Inhalt im Empfehlungsbereich an (gleiche Struktur wie Finder) function displayPersonaContent(contentHtml) { + console.log('[DEBUG] Zeige Persona-Inhalt an:', contentHtml.substring(0, 100)); + // Verwende die gleiche Struktur wie der Finder const resultDiv = document.getElementById('result'); - if (resultDiv) { - // Headline setzen - const headlineElement = document.getElementById('finder-headline'); - if (headlineElement) { - headlineElement.textContent = 'Empfehlung für ' + (currentPersona ? personasData[currentPersona].name : 'Persona'); - } - - // Content setzen - const textContentElement = document.getElementById('finder-text-content'); - if (textContentElement) { - textContentElement.innerHTML = contentHtml; - } - - // Tags und Marginal leeren (falls vorhanden) - const tagsElement = document.getElementById('finder-tags'); - if (tagsElement) { - tagsElement.innerHTML = ''; - } - - const marginalElement = document.getElementById('finder-marginal'); - if (marginalElement) { - marginalElement.innerHTML = ''; - } - - // Ergebnis-Bereich anzeigen - resultDiv.style.display = 'block'; + if (!resultDiv) { + console.error('Result div nicht gefunden'); + return; } + + // Headline setzen + const headlineElement = document.getElementById('finder-headline'); + if (headlineElement) { + const personaName = currentPersona ? personasData[currentPersona].name : 'Persona'; + headlineElement.textContent = 'Empfehlung für ' + personaName; + console.log('[DEBUG] Headline gesetzt für:', personaName); + } + + // Content setzen + const textContentElement = document.getElementById('finder-text-content'); + if (textContentElement) { + textContentElement.innerHTML = contentHtml; + console.log('[DEBUG] Content gesetzt, Länge:', contentHtml.length); + } + + // Tags und Marginal leeren + const tagsElement = document.getElementById('finder-tags'); + if (tagsElement) { + tagsElement.innerHTML = ''; + } + + const marginalElement = document.getElementById('finder-marginal'); + if (marginalElement) { + marginalElement.innerHTML = ''; + } + + // Ergebnis-Bereich anzeigen + resultDiv.style.display = 'block'; + console.log('[DEBUG] Result div angezeigt'); } diff --git a/www/Steuerungsdateien/personas.yml b/www/Steuerungsdateien/personas.yml index 27846dd..827849d 100644 --- a/www/Steuerungsdateien/personas.yml +++ b/www/Steuerungsdateien/personas.yml @@ -7,12 +7,12 @@ birgit: Birgit aus {{BUNDESLAND_SELECT}} hat direkt nach ihrer Ausbildung zur Fachinformatikerin für Systemintegration angefangen zu arbeiten. Mittlerweile verfügt Birgit über langjährige {{AUSBILDUNG_SELECT}} im IT-Bereich. Schon länger spielt sie mit dem Gedanken, etwas Neues auszuprobieren - sie möchte unbedingt nochmal Erfahrungen in einem Job mit tieferem Sinn machen, etwas bewirken und ihren Wissensschatz an die junge Generation weitergeben. Sie fragt sich, ob dies noch möglich ist. bundesland: RP ausbildung: Berufserfahrung - ausbildung-value: B + ausbildung-value: AUSBILDUNG abschluss-value: B - informatik: Informatik - informatik-value: J - lehramtsbezug-value: O - faecher-value: 1 + # Direkte Zuordnung zu relevanten MD-Dateien + mapping-files: + - "11_RP/HS-BA-1F.md" + - "11_RP/HS-BA-2F.md" swantje: name: Swantje @@ -23,12 +23,11 @@ swantje: Nach ihrem {{AUSBILDUNG_SELECT}} zur Informatikerin (Dipl.-FH) hat Swantje in {{BUNDESLAND_SELECT}} einen Job in der freien Wirtschaft angenommen. Sie ist Anfang 30 und befindet sich gerade mit ihrem zweiten Kind in der Elternzeit. Für ihren beruflichen Wiedereinstieg wünscht sie sich familienfreundliche Arbeitszeiten und die Möglichkeit, in Teilzeit zu arbeiten. Swantje hat bereits gehört, dass MV eine gut ausgebaute schulische Informatikbildung anbietet und informiert sich nun über die notwendigen Zusatzqualifikation für allgemeinbildende Schulen. bundesland: MV ausbildung: abgeschlossenes Studium - ausbildung-value: H + ausbildung-value: HS abschluss-value: M - informatik: Informatik - informatik-value: J - lehramtsbezug-value: A - faecher-value: 2 + # Direkte Zuordnung zu relevanten MD-Dateien + mapping-files: + - "8_MV/HS-MA-1F.md" ecem: name: Ecem @@ -39,12 +38,11 @@ ecem: Ecem aus {{BUNDESLAND_SELECT}} hat in der Türkei Mathematik auf {{AUSBILDUNG_SELECT}} studiert und promoviert. Dort hat sie einige Jahre Mathematik unterrichtet, bevor sie vor fünf Jahren nach Deutschland kam. Inzwischen hat sie ihr Deutsch C1-Zertifikat bestanden und will in Niedersachsen Informatik nachstudieren, da dies in Bremen nicht geht. Sie hat vom niedersächsischen Kultusministerium Mathematik anerkannt bekommen und mitgeteilt bekommen, dass sie in einer Ausgleichsmaßnahme 80 Creditpoints für das zweite Fach an einer Uni nachstudieren muss. Zur Ausgleichsmaßnahme gehört auch ein ca. 12-monatiger schulpraktischer Teil, in dessen Zeit ein Arbeitsverhältnis mit dem Land besteht und pädagogische und fachdidaktische Seminare am Studienseminar erfolgreich zu besuchen sind. bundesland: HB ausbildung: abgeschlossenes Lehramtstudium + - ausbildung-value: S + ausbildung-value: LA abschluss-value: M - informatik: Mathematik - informatik-value: N - lehramtsbezug-value: A - faecher-value: 2 + # Direkte Zuordnung zu relevanten MD-Dateien + mapping-files: + - "5_HB/LA-BA.md" aminata: name: Aminata @@ -55,12 +53,11 @@ aminata: Aminata sucht eine neue Perspektive. Sie hat ein abgeschlossenes {{AUSBILDUNG_SELECT}} und eine Promotion als Bioinformatikerin, investierte in den nachfolgenden Jahren viel Zeit in eine wissenschaftliche Karriere und nahm verschiedene befristete Projektstellen an, die ihr viel Freude gemacht haben - doch nun sucht sie eine langfristige Perspektive. Sie ist nun 38 Jahre und möchte einen Neuanfang in {{BUNDESLAND_SELECT}} machen. bundesland: BE ausbildung: Masterstudium - ausbildung-value: H + ausbildung-value: HS abschluss-value: B - informatik: Mathematik - informatik-value: J - lehramtsbezug-value: A - faecher-value: 1 + # Direkte Zuordnung zu relevanten MD-Dateien + mapping-files: + - "3_BE/HS-MA-1F.md" sabrina: name: Sabrina @@ -68,15 +65,14 @@ sabrina: titel: Lehrerin für ev. Religion und Geschichte bild: Steuerungsdateien/images/WIL-Vorbild_Sabrina.png text: > - Sabrina wusste schon immer, dass sie Lehrerin werden möchte, um ihre Schüler:innen auf ein anspruchsvolles Leben vorzubereiten. Deswegen entschied sie sich mit Anfang 20 für ein {{AUSBILDUNG_SELECT}}} (Sek. II) in den Fächern ev. Religion und Geschichte. Nun, mit Mitte 40, hat sich der Alltag verändert - Sabrina weiß, dass im {{BUNDESLAND_SELECT}} Informatikunterricht eingeführt werden soll und sich mit dem neuen Lehramt sich ggf. auch neue Karrierechancen und Gestaltungsmöglichkeiten innerhalb der Schule uergeben können. Sie möchte sich informieren, was sie leisten muss, um Informatik als drittes Fach hinzuzunehmen. + Sabrina wusste schon immer, dass sie Lehrerin werden möchte, um ihre Schüler:innen auf ein anspruchsvolles Leben vorzubereiten. Deswegen entschied sie sich mit Anfang 20 für ein {{AUSBILDUNG_SELECT}} (Sek. II) in den Fächern ev. Religion und Geschichte. Nun, mit Mitte 40, hat sich der Alltag verändert - Sabrina weiß, dass im {{BUNDESLAND_SELECT}} Informatikunterricht eingeführt werden soll und sich mit dem neuen Lehramt sich ggf. auch neue Karrierechancen und Gestaltungsmöglichkeiten innerhalb der Schule uergeben können. Sie möchte sich informieren, was sie leisten muss, um Informatik als drittes Fach hinzuzunehmen. bundesland: SL ausbildung: Lehramtstudium - - ausbildung-value: S + ausbildung-value: LA abschluss-value: M - informatik: Mathematik - informatik-value: J - lehramtsbezug-value: A - faecher-value: 2 + # Direkte Zuordnung zu relevanten MD-Dateien + mapping-files: + - "12_SL/LA-BA.md" mandy: name: Mandy @@ -87,12 +83,11 @@ mandy: Mandy studiert nach ihrem {{AUSBILDUNG_SELECT}} in Wirtschaftsinformatik momentan noch den Master in Informatik als Fernstudium, da sie aus familären Gründen mit 24 Jahren wieder zurück auf den elterlichen Hof in {{BUNDESLAND_SELECT}} gezogen ist. Sie engagiert sich viel in Vereinen und gibt Programmierkurse für Mädchen am Wochenende. Das macht ihr sehr viel Spaß und sie beschließt, dies beruflich weiterzuverfolgen. bundesland: BY ausbildung: Bachelor Informatikstudium - ausbildung-value: H + ausbildung-value: HS abschluss-value: B - informatik: Informatik - informatik-value: J - lehramtsbezug-value: O - faecher-value: E + # Direkte Zuordnung zu relevanten MD-Dateien + mapping-files: + - "2_BY/HS-BA-1F.md" zoe: name: Zoe @@ -103,10 +98,9 @@ zoe: Zoé ist 24 und ist für ihre Fachinformatikerin-Ausbildung nach {{BUNDESLAND_SELECT}} gezogen. Nach einigen {{AUSBILDUNG_SELECT}} ist sie Abteilungsleiterin, aber sie wünscht sich mehr für ihre berufliche Karriere. Da sie noch jung ist und einem zweiten Karriereweg nichts im Weg steht, überdenkt sie die Möglichkeiten mit ihrem fachlich-fundierten Hintergrund. bundesland: NRW ausbildung: Berufserfahrung - ausbildung-value: B + ausbildung-value: AUSBILDUNG abschluss-value: B - informatik: - informatik-value: N - lehramtsbezug-value: 1 - faecher-value: E + # Direkte Zuordnung zu relevanten MD-Dateien + mapping-files: + - "10_NW/HS-BA-1F.md" \ No newline at end of file diff --git a/www/index.html b/www/index.html index a4f1ed6..4da5562 100644 --- a/www/index.html +++ b/www/index.html @@ -9,8 +9,8 @@ - - + +
@@ -34,7 +34,6 @@

Birgit aus {{BUNDESLAND_SELECT}} hat direkt nach ihrer Ausbildung zur Fachinformatikerin für Systemintegration angefangen zu arbeiten. Mittlerweile verfügt Birgit über langjährige {{AUSBILDUNG_SELECT}} im IT-Bereich. Schon länger spielt sie mit dem Gedanken, etwas Neues auszuprobieren - sie möchte unbedingt nochmal Erfahrungen in einem Job mit tieferem Sinn machen, etwas bewirken und ihren Wissensschatz an die junge Generation weitergeben. Sie fragt sich, ob dies noch möglich ist.

-
@@ -49,16 +48,6 @@
Zoe
-
- Unsere Empfehlung ist
-
-

-

-

- - -
-
@@ -68,39 +57,66 @@ - -