Skip to content
palmoni5 edited this page Jul 17, 2026 · 1 revision

פתיחת ספרים וניווט

כל פתיחת ספר באפליקציה — מהספרייה, מחיפוש, מקישור, מהיסטוריה או מ־deep link — עוברת דרך מסלול אחד: lib/utils/navigation/.

openBook ו־BookOpenCoordinator

open_book.dart — הפונקציה הגלובלית openBook(context, book, index, ...) מאצילה ל־BookOpenCoordinator:

  1. לכידת מצב להיסטוריהCaptureStateForHistory על הטאב הנוכחי.
  2. שחזור מיקום אחרון — לפי bookIdentity (זהות יציבה: ‏id ← מזהה חיצוני ← נתיב ← קטגוריה+כותרת — שני PDF באותו שם מקבלים זהויות נפרדות).
  3. עדיפות הדגשות: ‏markText > ‏markSection > ‏pinpointHighlight.
  4. יצירת OpenedTab.fromBook ושליחת OpenOrFocusTab (מיחזור טאב קיים אם יש) + ניווט למסך העיון.

פרמטרים חשובים: ignoreHistory, ‏requiresStableLayout (ל־PDF), ‏insertAdjacent, ‏initialCommentators.

פתיחת תלמוד בבלי כ־PDF — talmud_bavli_open_format.dart

הגדרה המאפשרת לבחור אם התלמוד נפתח כטקסט או כצילום (PDF):

  • talmudBavliOpensInPdf() — קריאת ההגדרה.
  • isTalmudBavliBook — מזהה מסכת אמיתית (ולא מפרש) לפי נתיב הקטגוריה/מיקום הקובץ.
  • resolveTalmudBavliPdfTarget(textBook, textIndex) — ממיר יעד טקסטואלי בבבלי ליעד PDF דרך textToPdfPage; מחזיר null אם אין מהדורת PDF או אין מיפוי אמין.
  • buildLinkTargetTab — בניית טאב מקישור, עם פתיחת בבלי כ־PDF כשמוגדר.

מיפוי עמודים PDF↔טקסט

  • utils/file/page_map_builder.dart — ‏PageMap: המרה דו־כיוונית עם חיפוש בינארי + אינטרפולציה בין עוגנים (התאמת ערכי outline של ה־PDF מול ערכי TOC של הטקסט; התאמה מלאה ואז fallback ל־suffix חד־משמעי).
  • utils/file/page_converter.dart — ‏API ממוטמם: textToPdfPage / pdfToTextPage, דורש לפחות 2 עוגנים תואמים.

כתובות (references) — utils/text/ref_helper.dart

  • refFromIndex / refFromTocList — בניית כתובת היררכית ("ברכות ב' ע"א") משורת טקסט לפי עץ ה־TOC.
  • refFromPageNumber — כתובת מעמוד PDF דרך ה־outline.
  • משמש את האינדוקס (reference לכל מסמך), תצוגת המיקום הנוכחי, וההיסטוריה.

פרסור תוכן עניינים — utils/file/toc_parser.dart

TocParser — מזהה כותרות Markdown‏ (#######) ו־HTML‏ (<h1><h6>) ובונה היררכיית TocEntry. מקור אמת יחיד לזיהוי כותרות — משותף לנווט תוכן העניינים, לספרים אישיים ולכלי "שמור וזכור".

Deep Links

פורמט otzaria:// מאפשר פתיחת ספר/מסך/כלי/תוסף מבחוץ ומבפנים, כולל פרמטרים כמו ?mark (הדגשה קבועה של שורה). הפירוט בארכיטקטורה.

דפים קשורים

Clone this wiki locally