מחולל דפים תורניים

יצירת דפי HTML מעוצבים מטקסט עברי
סמן טקסט בחלון הקלט ולאחר מכן בחר כתב רש"י או כותרת.

תצוגה מקדימה

קוד HTML מלא

`; } /* ========================================================= יצירה ========================================================= */ createButton.addEventListener( "click", function () { renderPreview(); const html = generateFullHtml(); htmlOutput.value = html; setStatus( "הדף נוצר בהצלחה." ); } ); /* ========================================================= כתב רש"י ========================================================= */ rashiButton.addEventListener( "click", function () { addFormatting("rashi"); } ); /* ========================================================= כותרת ========================================================= */ titleButton.addEventListener( "click", function () { addFormatting("title"); } ); /* ========================================================= העתקת HTML ========================================================= */ copyButton.addEventListener( "click", async function () { const html = htmlOutput.value; if (!html) { setStatus( "יש ליצור תחילה את הדף." ); return; } try { await navigator.clipboard.writeText( html ); copyButton.classList.add( "copied" ); copyButton.textContent = "הועתק בהצלחה"; setStatus( "קוד ה־HTML הועתק ללוח." ); setTimeout( function () { copyButton.classList.remove( "copied" ); copyButton.textContent = "העתק HTML"; }, 1800 ); } catch (error) { htmlOutput.select(); document.execCommand( "copy" ); setStatus( "קוד ה־HTML הועתק ללוח." ); } } ); /* ========================================================= עדכון תצוגה בזמן הקלדה ========================================================= */ editor.addEventListener( "input", function () { /* * אם המשתמש מוחק או משנה את הטקסט, * הסימונים הקיימים נבדקים מחדש. */ formattingRanges = formattingRanges.filter( range => range.start < editor.value.length && range.end <= editor.value.length ); renderPreview(); } ); /* ========================================================= התחלה ========================================================= */ renderPreview();