Skip to content

תיקון מצב הגמרא - #19

Open
YSmauas wants to merge 7 commits into
TypesetOK:mainfrom
YSmauas:main
Open

YSmauas wants to merge 7 commits into
TypesetOK:mainfrom
YSmauas:main

Conversation

@YSmauas

@YSmauas YSmauas commented Oct 12, 2026

Copy link
Copy Markdown

תוקן מצב הגמרא עם כללים ברורים, והנחיות במקרי חוסר.
כלל הבדיקות עברו.
ניתן לקרוא תיעוד ב- docs/MULTI_COLUMN_PAGE_LAYOUT_ALGORITHM.md
לא בדקתי בפועל בקובץ מקומפל

Delete redundant Cargo.lock and package-lock.json files from the repository.
Update FlowPaginator to calculate vertical line distributions for consistent Y-axis baseline termination. Add dev server support and improve HTML metadata.
Add an Express server to host the application with automatic UI bundle generation and SPA fallback routing. Include a linting script in package.json to facilitate TypeScript type checking.
@YSmauas

YSmauas commented Oct 12, 2026

Copy link
Copy Markdown
Author

להלן פירוט השינויים כפי שיפורט בקובץ הנ״ל, מתורגם לעברית:

ריפקטורינג של מנוע פריסת עמוד רב-טורי וארכיטקטורה אלגוריתמית

1. תקציר מנהלים ותיאור הבעיה

פריסות הוצאה לאור שולחניות מסורתיות תלת-טוריות רינדרו בעבר דפי גמרא/חיבורים רבניים עבריים כטורים קשיחים ומקבילים עם קווים בסיסיים עליונים אחידים ומיקום הערות שוליים פשטני.

בטיפוגרפיה עברית מסורתית (כפי שמודגם בש"ס וילנה ובמקראות גדולות הקלאסיים), התוכן אינו תופס טורים עצמאיים סטטיים. במקום זאת, העמוד דורש מבנה רב-טורי דינמי ומותאם, הכולל טור מרכזי ראשי (ליבת הגמרא / המקרא) המוקף בטורי מעטפת צדדיים מתאמים (מעטפות פירוש פנימיות וחיצוניות כגון רש"י ותוספות).

מסמך זה מפרט את הריפקטורינג הארכיטקטוני ואת המנגנונים האלגוריתמיים שיושמו כדי לעמוד במפרטי מנוע הפריסה המורכבים.


2. כללי ארכיטקטורה ואלגוריתמים מרכזיים

כלל 1: היסט עליון ומבנה מעטפת מתאם

  1. אסטרטגיית היסט עליון:
  • טורי המעטפת החיצוניים (מעטפת פנימית ומעטפת חיצונית) מתאתחלים בקפדנות בראש מסגרת העמוד (מתחילים בשורה 1).
  1. היסט כותרת:
  • 4 השורות הראשונות של פריסת העמוד מורכבות באופן בלעדי משני טורי המעטפת החיצוניים (HEADER_SHIFT_LINES = 4, HEADER_OFFSET_PX = 72px).
  • מרווח היסט כותרת ייעודי (.tok-header-shift-spacer) שומר את שורות 1–4 באזור המרכזי, ומונע הבלטה מוקדמת של הטור המרכזי.
  1. הכנסת הטור המרכזי:
  • הטור הראשי/המרכזי מתחיל בדיוק בשורה 5 (data-start-line="5"), וממוקם במרכז בין שני טורי המעטפת העוטפים.
  1. משקל ויזואלי דינמי וגבולות אלכסוניים מתאמים:
  • לטור המרכזי מוענקים היררכיה טיפוגרפית גבוהה יותר ומשקל ויזואלי (גופן 14px, עובי מודגש, גובה שורה מוגבה, גיבוי דגש עדין).
  • טורי המעטפת החיצוניים עוטפים באופן מתאם את הטור המרכזי. כאשר מתרחשת גלישת פירושים, גבולות עטיפה מדרגיים ואלכסוניים מתאמים (.tok-adaptive-step-boundary, .tok-slanted-boundary) עם חיתוך מצולע גיאומטרי (clip-path: polygon(...)) נוצרים תחת הטור המרכזי כדי להמשיך בצורה חלקה את זרמי הפירוש בהתאם למסורות צורת הדף ההיסטוריות.

כלל 2: יישור תחתון קפדני (צידוק קו בסיס שווה)

  1. קו בסיס סיום רשת אחיד:
  • הגבול התחתון של גוף העמוד (לא כולל הערות שוליים/הערות היקפיות תחתונות) מסתיים בקו בסיס אופקי זהה בציר ה-Y בכל הטורים הפעילים (.tok-uniform-grid-baseline, .tok-baseline-terminator).
  1. אלגוריתם חלוקה מאוזנת (calculateEqualBaselineDistribution):
  • מיושם ב-FlowPaginator.calculateEqualBaselineDistribution(activeColCount, paraCounts, targetBodyHeightPx).
  • עבור 1, 2 או 3 טורים פעילים, האלגוריתם מחשב מרווח אנכי פרופורציונלי בין פסקאות (rightSpacingPx, centerSpacingPx, leftSpacingPx) כדי ליישר את כל הטורים כלפי מטה אל סיום קו בסיס זהה ללא קצוות לא אחידים ויזואלית.
  • מיכלי Flex משתמשים ב-margin-top: auto על מסיימי קו בסיס כדי להבטיח סנכרון מדויק ברמת הפיקסל של ציר ה-Y בין הטורים.

כלל 3: הפרדת טורים והרחבת תוכן חסר

  1. שלמות גבולות ובידוד טקסט קפדני:
  • הטורים אוכפים הכלה קפדנית של פריסה (contain: layout style; isolation: isolate; overflow: hidden;).
  • שום טקסט, אלמנט שורה (inline span) או אלמנטי עיצוב אינם גולשים או חוצים לאזורי טורים סמוכים.
  1. מנגנון הרחבת גיבוי (Fallback):
  • כאשר לטור מעטפת חיצוני אין תוכן בעמוד, המנוע מפעיל הרחבה אופקית של גיבוי (.tok-col-expanded-fallback, data-fallback-expanded="true"):

  • אם הטור הימני נעדר והשמאלי נוכח: המעטפת החיצונית השמאלית מתרחבת אופקית ל-2.1fr 1.65fr.

  • אם הטור השמאלי נעדר והימני נוכח: המעטפת החיצונית הימנית מתרחבת אופקית ל-1.65fr 2.1fr.

  • אם שני טורי המעטפת נעדרים: הטור המרכזי מתרחב לרוחב מלא 1fr.

  • מסגרות מורחבות מציגות אינדיקטורים הקשריים ושומרות על צידוק קו בסיס מלא.


3. חוסן השרת ותיקון הסביבה

  • יציאת האזנה של השרת תוקנה ל-3000 כדי למנוע התנגשות עם יציאת הקונטיינר 8080 (שבעבר גרמה ל-EADDRINUSE ולקריסות שרת פיתוח במהלך חימום מוקדם).
  • נתיב כללי (wildcard) שאינו תואם ל-Express 5 (app.get('*', ...)) הוחלף בתווכת גיבוי סטנדרטית של SPA: app.use((req, res) => res.sendFile(...)).
  • נוספו הגנות גלובליות מסוג uncaughtException ו-unhandledRejection המבטיחות זמינות רציפה של השרת.

4. אימות חבילת בדיקות

כל 172 הבדיקות בכל 56 חבילות הבדיקה עוברות ללא שגיאות:

  • test/geometric_fidelity.test.mjs: 8/8 עברו
  • test/outcome_validation.test.mjs: 6/6 עברו
  • test/story_editor.test.mjs: 15/15 עברו
  • test/milestone_features.test.mjs: 14/14 עברו
  • test/importer.test.mjs & test/lifecycle_flow.test.mjs: 26/26 עברו
  • test/phase3_integration.test.mjs: 13/13 עברו
  • test/frontend.test.mjs: 90/90 עברו
  • סך הכל: 172/172 עברו, 0 כשלו, 0 דולגו.

@YSmauas

YSmauas commented Oct 12, 2026

Copy link
Copy Markdown
Author

הסבר על הקומיטים,
בקומיט הראשון הוסרו קבצי נעילה ישנים ומיותרים.
בקומיט השני נוסף מנגנון 'דף הגמרא' המסורתי.
בקומיט השלישי נוסף שרת לבדיקת קבצי ה- js/ts.
והקומיט הרביעי היה מיזוג של העדכונים מאז ביצוע הפורק....

Update process references to use globalThis to ensure compatibility in restricted environments.
Remove express dependency to reduce bundle size and replace with native Node.js http module. Add support for environment-based port configuration and basic static file serving.
@YSmauas

YSmauas commented Oct 12, 2026

Copy link
Copy Markdown
Author

נמחקו קבצים מיותרים, תוקן שגיאה בשרת הבדיקה

@YSmauas

YSmauas commented Oct 12, 2026

Copy link
Copy Markdown
Author

התקנתי, וגילתי עוד הרבה באגים - בתיקון (כבר נגמרו לי הטוקנים)

- Add JSON fallback to CLI package operations to prevent data loss.
- Implement draggable ActionHUD and template selection in ContextualInspector.
- Adjust UI layout and styling for ImportTemplateModal.
@YSmauas

YSmauas commented Oct 12, 2026

Copy link
Copy Markdown
Author

זה קומיט חלקי שנקטע באמצע העבודה

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant