סידור חול חכם (שחרית · מנחה · מעריב · ספירת העומר · תוספות וברכות) בנוסחי עדות המזרח · ספרד · אשכנז. התוסף מזהה אוטומטית מה התאריך העברי, אילו חגים/תוספות חלים, ומציג בכל יום את הנוסח הנכון — יעלה ויבוא, על הנסים, טל/גשם, עשי"ת, תחנון, הלל, מוסף ראש-חודש, ספירת העומר, קריאת התורה ועוד — לפי פרופיל המשתמש (נוסח / מגדר / ארץ-ישראל / מניין).
שכבות מופרדות, נטענות כ-<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 בכותרת, אך אין טקסט מלא לתפילה — לא קיים באף אחד מהמקורות.
- הגדרות: נוסח · מתפלל/ת · מניין · פורים · צנזור שם ה' · גופן (עוקב אחר אוצריא כברירת מחדל, עם בורר וחזרה לברירת מחדל) · רוחב הטקסט. בגלילה הכותרת מתכווצת ושם התפילה עולה לראש המסך.
- מיקום (ארץ-ישראל/חו"ל): אינו הגדרה ידנית — נגזר אוטומטית מהעיר שנבחרה באוצריא (
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.
מבוסס על המחקר ב-ai.txt: קורפוס וטקסטים מ-RefaelGamliel/smart-siddur,
מנוע הלוח מ-@hebcal/core (בהשראת relbns/siddur-plus), והצלבה מול אפליקציית "תפילון".