# הוראות לעבודה עם הקטלוג "סיפורי התנאים והאמוראים"

קובץ זה נועד להינתן לבוט בצ'אט חדש, שאין לו שום הקשר קודם. קרא אותו במלואו לפני שאתה נוגע בקובץ כלשהו.

יש בתיקייה גם `הוראות-הוספת-סיפור.md` — הוא עוסק ב**ספר**. הקובץ הזה עוסק ב**קטלוג**. שניהם חיים זה לצד זה ומקושרים זה לזה, וחשוב לא לבלבל ביניהם.

---

## מה זה הקטלוג ובמה הוא שונה מהספר

| | הספר | הקטלוג |
|---|---|---|
| הקובץ | `גדולי ישראל לדורותיהם.html` | `tzadikim_catalog_with_52_learning_games.html` |
| מה יש בו | **טקסט הסיפורים המלא**, מנוקד | **כרטיסים** — תמונה, תיאור קצר, וקישורים |
| בשביל מה | לקרוא ולהקריא | למצוא במה להשתמש: מצגת, משחק, דף עבודה, מדריך למורה |
| כמה | 318 סיפורים ב‑79 פרקים | 179 כרטיסים ב‑68 פרקים |

הקטלוג חי כאן:
`https://yudataub.github.io/aaa/ספרי יהודה טאוב/tzadikim_catalog_with_52_learning_games.html`

---

## המלכודת הראשונה, ובגדול

> **המספור של הקטלוג ושל הספר הם שני מספורים נפרדים לחלוטין.**

`#story-37` בקטלוג הוא "סוד העפר שהפך לחרבות" של נחום איש גם זו.
`#story-37` בספר הוא סיפור אחר לגמרי.

זה כבר עלה ביוקר בפרויקט הזה: קישורים שהועתקו בין קבצים "כי המספר זהה" נחתו בשקט בסיפורים לא נכונים. **אם צריך למפות בין הקטלוג לספר, התאם לפי טקסט הסיפור — לעולם לא לפי המספר.** ואל תניח ש"אותה דמות" מספיקה: לרבי עקיבא 16 סיפורים בספר ו‑16 כרטיסים בקטלוג, ורק חלקם מתאימים זה לזה.

וכמו בספר, גם כאן: **אף מזהה כרטיס קיים לא זז.** כרטיס חדש מקבל את המספר הבא בתור.

---

## אנטומיה של כרטיס

```html
<article class="story-card" id="story-37" style="border-top:6px solid #00b894">
<img class="card-img" src="..." alt="..." loading="lazy" decoding="async">
<div class="story-header" style="background:#d9f8f0">
<span class="story-num" style="background:#00b894">#37</span>
<span class="src-tag">🔗 4 גרסאות</span>
<button class="copy-story-link" onclick="copyStoryLink('story-37', this)">🔗 העתק קישור</button>
</div>
<div class="story-body">
<span class="who">נחום איש גם זו</span>
<h3 class="story-title">סוד העפר שהפך לחרבות</h3>
<p class="story-desc">משפט או שניים שמספרים במה הסיפור עוסק.</p>
<div class="story-links"> ... הקישורים ... </div>
</div>
<div class="story-navigation"> ... </div>
</article>
```

- `who` — שם הדמות. זה מה שמקבץ כרטיסים תחת פרק, ומה שהחיפוש מוצא.
- `story-desc` — משפט־שניים, לא תקציר של הסיפור כולו. זה כרטיס, לא הסיפור.
- `src-tag` — רשות. תגית מקור: `🌐 Gamma`, `📕 PDF`, `🔗 3 גרסאות`, `🌐 מצגת אתר`.
- כרטיס למבוגרים מקבל `class="story-card adult-story"` ו‑`data-audience="adults"` ותגית `adult-story-tag`.

---

## אוצר המילים של הקישורים

השתמש בתוויות הקיימות — הן מה שהמורים כבר מזהים. אל תמציא חדשות בלי סיבה.

| תווית | לאן | מחלקה |
|---|---|---|
| `פתיחת המצגת ↗` | מצגת בדרייב או PDF | — |
| `גרסה נוספת ↗` | מצגת נוספת לאותו סיפור | — |
| `גרסת Gamma ↗` | gamma.app | — |
| `גרסת אתר ↗` | sites.google.com | — |
| `📖 קריאת הסיפור ↗` | הסיפור בספר | — |
| `📖 קריאת הפרק המלא ↗` | פרק שלם בספר | — |
| `👨‍🏫 מדריך למורה ↗` | מדריך | — |
| `📝 דף עבודה ↗` | דף עבודה | — |
| `🎮 משחק לימודי ↗` | משחק | `game-link` |
| `📕 קריאת הסיפור המלא ↗` | PDF לקהל מבוגר | `adult-story-link` |

**כל קישור חיצוני חייב `target="_blank" rel="noopener"`** — אחרת הקורא מאבד את הקטלוג. הבודק תופס קישור בלי זה.

הקישור אל הספר, בכתובתו המלאה (הנתיב מקודד באחוזים כי יש בו עברית ורווחים):

```
https://yudataub.github.io/aaa/%D7%A1%D7%A4%D7%A8%D7%99%20%D7%99%D7%94%D7%95%D7%93%D7%94%20%D7%98%D7%90%D7%95%D7%91/%D7%92%D7%93%D7%95%D7%9C%D7%99%20%D7%99%D7%A9%D7%A8%D7%90%D7%9C%20%D7%9C%D7%93%D7%95%D7%A8%D7%95%D7%AA%D7%99%D7%94%D7%9D.html#story-N
```

---

## הדורות

הקטלוג מסודר לפי סדר הדורות, כמו הספר. חמישה בלוקים:

| מזהה | הדור |
|---|---|
| `tanaim-a` | 🏛️ תנאים א׳ — עד חורבן בית המקדש |
| `tanaim-b` | 🔥 תנאים ב׳ — עד סוף תקופת החורבן |
| `amoraim` | 📜 אמוראים |
| `mashal` | 🕊️ משלים וסיפורי אמונה |
| `extra` | 🧰 משאבים נוספים |

---

## המשימות הנפוצות

### לראות מה יש

```bash
cd "ספרי יהודה טאוב"
python3 scripts/check_catalog.py --list     # הפרקים לפי דורות
python3 scripts/check_catalog.py --links    # פילוח הקישורים לפי אתר ולפי תווית
```

### להוסיף כרטיס לדמות שכבר יש לה פרק

```bash
python3 scripts/add_card.py \
    --chapter "רבי עקיבא" \
    --title "הַגָּמָל" \
    --desc "משפט או שניים על הסיפור." \
    --src-tag "🌐 Gamma" \
    --link "פתיחת המצגת ↗|https://drive.google.com/..." \
    --link "🎮 משחק לימודי ↗|https://.../123-name|game-link"
```

`--img` להוספת תמונה, `--who` אם שם הדמות שונה משם הפרק, `--adult` לכרטיס למבוגרים.

### להוסיף כרטיס לדמות חדשה

```bash
python3 scripts/add_card.py --chapter "אבא תחנא החסיד" \
    --new-chapter --era tanaim-a --icon "☀️" \
    --title "נס השמש שבדרך" --desc "..." --link "..."
```

הפרק נפתח בסוף הדור שציינת. בחר את הדור לפי הדמות — ואם אינך בטוח, הסיפורים בספר פותחים ב"כרטיס זיהוי" שמציין את הדור במפורש. **אל תנחש.**

### להוסיף קישור לכרטיס קיים

זו עריכה נקודתית ובטוחה. מצא את הכרטיס, והוסף `<a>` בתוך ה‑`<div class="story-links">` שלו:

```html
<a href="...#story-N" target="_blank" rel="noopener">📖 קריאת הסיפור ↗</a>
```

**לפני שאתה מוסיף — ודא שהכרטיס והיעד הם באמת אותו מעשה.** קרא את שני הצדדים: אותם גיבורים, אותה נקודת שיא. שם דמות משותף אינו התאמה.

אם לכרטיס כבר יש קישור קריאה, סמן את החדש אחרת (למשל `📖 גרסה מורחבת ↗`), כדי שלא ייראה כאילו שניהם מובילים לאותו מקום.

### תמיד, בסוף

```bash
python3 scripts/check_catalog.py
```

**אל תעלה קטלוג שלא עבר את הבדיקה.**

---

## מה הבודק בודק

מזהים כפולים · כרטיס שחסר בתוכן העניינים או להפך · מוני פרק ודור שאינם תואמים (בעמוד ובסרגל) · שרשרת ניווט שבורה · פערים בין מדד החיפוש לעמוד · עוגנים פנימיים ללא יעד · מוני הכותרת · כרטיס חסר שם/כותרת/תיאור/קישור · קישור חיצוני בלי `target="_blank"` · `<meta charset>` · תקינות HTML · **ושכל 153 קישורי הקריאה אל הספר מוצאים עוגן אמיתי שם.**

הבדיקה האחרונה היא החשובה: היא הדבר היחיד שתופס קישור שנשלח לסיפור לא נכון בספר.

אם משהו השתבש:

```bash
git checkout -- "ספרי יהודה טאוב/tzadikim_catalog_with_52_learning_games.html"
```

---

## פרסום

```bash
git fetch origin main
git checkout -B <שם-ענף> origin/main
# ... העריכה והבדיקה ...
git add -A && git commit
git push -u origin <שם-ענף>
```

פתח PR (טיוטה) ומזג רק לאחר אישור המשתמש. **GitHub Pages מתעדכן תוך 2–5 דקות** — אל תסיק שנכשל אחרי ניסיון אחד. אמת מול הכתובת החיה:

```bash
curl -s "https://yudataub.github.io/aaa/ספרי%20יהודה%20טאוב/tzadikim_catalog_with_52_learning_games.html" \
  | grep -c '<article class="story-card'
```

---

## מלכודות שכבר עלו ביוקר

- **מספור נפרד** — נאמר למעלה, וזו הטעות שחזרה הכי הרבה פעמים.
- **שתי מחלקות לכרטיס.** רוב הכרטיסים הם `class="story-card"`, אבל שניים הם `class="story-card adult-story"`. ביטוי רגולרי שמחפש `class="story-card"` בדיוק — מפספס אותם בשקט. חפש `class="story-card[^"]*"`.
- **הקובץ הזה כבד (~450KB) והספר כבד הרבה יותר (~8MB).** אל תקרא אותם במלואם לתוך ההקשר; חלץ רק את מה שצריך.
- **אל תערוך את שישה המקומות ביד.** הכרטיסים, תוכן העניינים, מוני הפרק, מוני הדור, שרשרת הקודם/הבא ומדד החיפוש חייבים להסכים — ורוב אי‑ההסכמות בלתי־נראות במבט מהיר. `add_card.py` מעדכן את כולם יחד.
- **הצג את התוצאה בכנות.** אם בדיקה נכשלה, אמור זאת עם הפלט. אם דילגת על משהו, אמור מה ולמה.
