Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

סידורון — תוסף "סידור חכם" לאוצריא (v2)

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

ארכיטקטורה (v2)

שכבות מופרדות, נטענות כ-<script> (אוצריא טוען מ-file:// שבו fetch חסום):

קובץ תפקיד
vendor/hebcal.js חבילת הדפדפן הרשמית של @hebcal/core (לוח עברי + זמנים, offline). חושף window.hebcal.
data/siddur-data.js נוצר אוטומטית — קורפוס שחרית/מנחה/מעריב (window.SIDDUR_DATA, מ-smart-siddur).
data/extras-data.js נוצר אוטומטית — תוספות וברכות (window.SIDDUR_EXTRAS, מ-tfilon).
js/extras.js תפריט התוספות + רינדור, עם מעריך-תנאים שממיר תגי-תנאי של tfilon ל-flags (כך שיעלה-ויבוא בברכת המזון מופיע רק בר"ח, על-הנסים רק בחנוכה/פורים וכו').
js/calendar.js מנוע ה-flags ההלכתי. ניוד נאמן של halachic_calendar_service.dart מ-smart-siddur מעל hebcal → flagsFor(date, ctx).
js/assembler.js הרכבת התפילה: gate של condition_flags/exclude_flags ברמת template וברמת section, רקורסיה ל-sub-templates, ו-post-processors (עומר, קרבנות, קריאת שני/חמישי, ר"ח טבת, שיר-של-יום גר"א).
js/render.js המרת הקטעים המורכבים ל-HTML: כותרות-קטעים, אקורדיונים לתוכן רשות/מקובץ (חזרת הש"ץ), שימור <b>.
js/app.js אורקסטרציה + UI: טאבי שירותים, כותרת הלכתית עם badges, פאנל הגדרות/זמנים/ניווט, גודל גופן, צנזור שם ה'.

עיקרון: הטקסטים נושאי-flags בלבד; אין לוגיקה הלכתית בנתונים. המנוע (hebcal) מחשב את ה-flags של היום, וה-assembler בורר את הקטעים שמתאימים. כך התוסף מציג בכברירת-מחדל את הנוסח הנכון, ומסתיר חלופות נדירות באקורדיון.

בנייה מחדש של הנתונים

הקורפוס מנויד מ-smart-siddur/assets/prayers (חייב להיות נוכח באותה תיקייה):

node tools/build-data.js     # → data/siddur-data.js   (~1.9MB, מ-smart-siddur)
node tools/build-extras.js   # → data/extras-data.js   (~0.5MB, מ-tfilon)

vendor/hebcal.js הופק מ-@hebcal/core@5.10.1 (dist/bundle.min.js).

בדיקות

node tools/test-calendar.js      # flags על תאריכים מייצגים
node tools/test-assemble.js      # הרכבה מקצה-לקצה
node tools/test-fuzz.js          # שנתיים × 3 נוסחים × 4 שירותים × א"י/חו"ל (17,520 הרכבות)
node tools/test-extras.js        # תוספות: רינדור בכל נוסח + תנאים (יעלה-ויבוא/על-הנסים)
node tools/test-dom.js           # טעינת התוסף המלא ב-jsdom (ללא אוצריא)
node tools/test-interactions.js  # חיווט ה-UI (נוסח/צנזור/ניווט/טאבים/תוספות)
node tools/make-preview.js [YYYY-MM-DD] [nusach] [service]   # → preview.html לתצוגה בדפדפן

מצב נוכחי: כל הבדיקות עוברות — 0 קריסות, 0 placeholders גולמיים, 0 accordions לא-מאוזנים.

תצוגה ללא אוצריא

פתח את index.html בדפדפן — התוסף עולה במצב standalone עם סרגל-תאריך לסימולציה. או הפק snapshot סטטי עם tools/make-preview.js.

מגבלות וטעון-בירור

  • סידור חול בלבד. הקורפוס של smart-siddur אינו כולל עמידת שבת/יו"ט מלאה, קבלת שבת, או מוסף יו"ט. בחירת תאריך שבת/יו"ט תזהה נכון את ה-flags ותציג מוסף ר"ח/חוה"מ, אך לא תפילת שבת מלאה.
  • 3 נוסחים (עדות-המזרח / ספרד / אשכנז). אין נוסח תימן (לא קיים במקור).
  • רישוי: @hebcal/core מופץ תחת GPLv2 — שילובו בתוסף מצריך תאימות-רישיון. טקסטי התפילה מ-smart-siddur. יש לוודא תנאי-שימוש לפני הפצה ציבורית.
  • מיפוי שיר-של-יום של הגר"א (gra_ssy) ממומש best-effort לפי מבנה המיפוי; כדאי לאמת מול ימי חוה"מ בפועל.
  • יום כיפור קטן: היום מזוהה אוטומטית (hebcal) ומוצג כ-badge בכותרת, אך אין טקסט מלא לתפילה — לא קיים באף אחד מהמקורות.
  • הגדרות: נוסח · מתפלל/ת · מניין · פורים · תצוגת שם ה׳ · גופן (עוקב אחר אוצריא כברירת מחדל, עם בורר וחזרה לברירת מחדל) · רוחב הטקסט. בגלילה הכותרת מתכווצת ושם התפילה עולה לראש המסך.
  • תצוגת שם ה׳: ארבע אפשרויות — יְיָ (ברירת מחדל, כמו בסידורים) · יְדֹוָד · ה׳ · "ככתוב". הניקוד/הטעמים של המקור נשמרים אות-אות (יְהֹוָהיְיָ / יְדֹוָד), והשמירה מפני החלפה בתוך מילה (למשל וַיַּגְבִּיהוּהוּ) זהה ללוגיקה של אוצריא. בהתקנה ראשונה ברירת המחדל נגזרת מהגדרת "הצגת שם הקודש" של אוצריא (key-replace-holy-names).
  • תפילה ללא מניין: כיבוי מתג "מתפלל/ת במניין" מסיר את מה שנאמר בעשרה בלבד — קדיש, ברכו והמענה, חזרת הש"ץ (כולל קדושה, מודים דרבנן וברכת כהנים ושים שלום שאחריהם), קריאת התורה, הפטרה, ברכת הגומל והכרזות הקהל — ובמקומם מוצגת שורה אחת ("חזרת הש״ץ, קדושה, מודים דרבנן וברכת כהנים — נאמרים במניין בלבד"), כדי שלא יישאר חור לא-מוסבר בסידור. תפילת היחיד (שמע, עמידה בלחש, הלל, עלינו) נשארת במלואה. הסינון ממומש ב-js/services.js מפני שקורפוס תפילון ו-seforim.db אינם מכילים תג-מניין.
  • מודל היום (חשוב): calendar.getSelectedDate של אוצריא הוא היום ההלכתי — לוח השנה מגלגל את התאריך בשקיעה (calendarDayTransition). לכן שחרית/מנחה נגזרות מהיום שאוצריא מדווח, אבל ערבית נאמרת בכניסת היום ולכן היא נגזרת מהיום שהלילה שלנו פותח: אחרי השקיעה — היום שאוצריא כבר התקדם אליו, ולפניה (או בתאריך שנבחר ידנית) — היום שאחריו, כמו בסידור מודפס. כך בליל שישי מוצגת ערבית של חול (ולא ערבית לשבת), בליל שבת קבלת שבת, ובמוצאי שבת אתה חוננתנו והבדלה (flag motzaei_shabbat). שם הלילה מוצג בכותרת התפילה ("מעריב · ליל שבת").
  • מגבלות מצב "ללא מניין": מה שמזוהה לפי כותרת-קטע או לפי הטקסט עצמו (קדיש, ברכו, חזרת הש"ץ, קריאת התורה, הפטרה, ברכת הגומל, שורות חזן/קהל) מסונן. מה שמשולב בתוך קטע גדול בלי כותרת נפרדת — למשל נוסח הקדושה שבתוך העמידה בקורפוס שבת מ-seforim.db, או י"ג מידות שבסליחות (שהיחיד קורא בטעמי המקרא) — עדיין מוצג. בדיקות: tools/test-features.js.
  • מיקום (ארץ-ישראל/חו"ל): אינו הגדרה ידנית — נגזר אוטומטית מהעיר שנבחרה באוצריא (settings.get על key-selected-city) דרך טבלת ערים→מדינה ב-data/locations.js (משוקפת מ-calendar_location.dart של אוצריא). העיר מוצגת בראש פאנל זמני-היום (למשל "בני ברק, ישראל") למניעת טעויות-זמנים, ומתעדכנת חיה באירוע settings.changed. יש לחולל מחדש את הטבלה אם רשימת הערים באוצריא משתנה.
  • קיצור דרך לשולחן העבודה: בהגדרות (בדסקטופ בלבד) יש כפתור "צור קיצור דרך" שקורא ל-shortcut.create (הרשאת ui.create_shortcut). אוצריא בונה את ה-deep-link בעצמו (otzaria://open/plugin/<id>) ומציג דיאלוג אישור; הכפתור מוסתר במובייל ובתצוגת standalone לפי platform מתוך plugin.boot. שגיאות מדווחות כפי שהן ולא כ"אין הרשאה" גורף: permission_denied מפנה למסך ההרשאות, Unknown action מדווח כגרסת אוצריא ישנה, target folder not found כתיקיית שולחן-עבודה חסרה (למשל ניתוב ל-OneDrive), ושאר השגיאות מוצגות עם הודעת ה-host. בנוסף, רשימת ההרשאות שהוענקו בפועל מגיעה ב-plugin.boot (payload.permissions), ולכן חוסר-הרשאה מסומן בהגדרות עוד לפני הלחיצה.

מקורות

מבוסס על המחקר ב-ai.txt: קורפוס וטקסטים מ-RefaelGamliel/smart-siddur, מנוע הלוח מ-@hebcal/core (בהשראת relbns/siddur-plus), והצלבה מול אפליקציית "תפילון".

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages