Grundfunktion zur Erstellung und Darstellung von Flashcards implementiert

This commit is contained in:
2026-01-28 15:04:13 +01:00
parent 4c70efcc64
commit 5db3c93046
3 changed files with 286 additions and 69 deletions

View File

@@ -1,4 +1,6 @@
document.getElementById('copyButton').addEventListener('click', () => {
let parsedArray = [];
document.getElementById('copyButton').addEventListener('click', () => {
const text = document.getElementById('formatText').innerText;
navigator.clipboard.writeText(text).then(() => {
@@ -6,10 +8,31 @@
}).catch(err => {
console.error('Konnte nicht kopieren: ', err);
});
for (let i = 0; i < parsedArray.length; i += 8) {
const pageFront = document.createElement("div");
pageFront.className = "page_front";
const pageBack = document.createElement("div");
pageBack.className = "page_back";
const currentSlice = parsedArray.slice(i, i + 8);
currentSlice.forEach(karte => {
const frontCard = document.createElement("div");
frontCard.className = "card";
frontCard.innerHTML = `<h2>${karte.englisch}</h2><div>${karte.ipa}</div><p>${karte.beispielEN}</p>`;
pageFront.appendChild(frontCard);
const backCard = document.createElement("div");
backCard.className = "card";
backCard.innerHTML = `<h2>${karte.deutsch}</h2><p>${karte.beispielDE}</p>`;
pageBack.appendChild(backCard);
});
container.appendChild(pageFront);
container.appendChild(pageBack);
}
});
const inputText = document.getElementById("inputText").value;
const cards = parseWordText(inputText);
function parseWordText(inputText) {
const wortBlocks = inputText.trim().split("\n\n");
const wortListe = [];
@@ -31,35 +54,59 @@ function parseWordText(inputText) {
};
wortListe.push(wortObj);
console.log(wortObj);
}
return wortListe;
}
function createPagePair() {
const frontPage = document.createElement("div");
frontPage.className = "page page-front";
const backPage = document.createElement("div");
backPage.className = "page page-back";
return { frontPage, backPage };
}
const button = document.getElementById("kartenErstellen");
const container = document.getElementById("kartenContainer");
const onlineContainer = document.getElementById("kartenContainer");
const frontPage = document.querySelector(".page_front");
const backPage = document.querySelector(".page_back");
button.addEventListener("click", () => {
container.innerHTML = "";
parsedArray.forEach((karte, index) => {
const karteDiv = document.createElement("div");
karteDiv.classList.add("karte");
const inputText = document.getElementById("inputText").value;
parsedArray = parseWordText(inputText);
karteDiv.innerHTML = `
<div class="karte-inhalt">
<div class="karte-vorderseite">
<h2>${karte.englisch}</h2>
<p><em>${karte.ipa}</em></p>
<p>Beispiel: ${karte.beispielEN}</p>
</div>
<div class="karte-rückseite">
<h2>${karte.deutsch}</h2>
<p>Beispiel: ${karte.beispielDE}</p>
</div>
</div>
`;
container.appendChild(karteDiv);
kartenContainer.innerHTML = "";
kartenContainer.style.display = "flex";
kartenContainer.style.flexDirection = "column";
});
for (let i = 0; i < parsedArray.length; i += 8) {
const { frontPage, backPage } = createPagePair();
parsedArray.slice(i, i + 8).forEach((karte) => {
const frontCard = document.createElement("div");
frontCard.className = "card card-en";
frontCard.innerHTML = `
<h2>${karte.englisch}</h2>
<div class="ipa">${karte.ipa}</div>
<div class="example">${karte.beispielEN}</div>
`;
frontPage.appendChild(frontCard);
const backCard = document.createElement("div");
backCard.className = "card card-de";
backCard.innerHTML = `
<h2>${karte.deutsch}</h2>
<div class="example">${karte.beispielDE}</div>
`;
backPage.appendChild(backCard);
});
kartenContainer.appendChild(frontPage);
kartenContainer.appendChild(backPage);
}
});