Markdown – מצב מצומצם (קיפול כותרות ###) – אדמין בלבד

מטרת הפיצ’ר: לאפשר לעורכים לקפל מקומית סעיפים לפי כותרות ### (H3) בתצוגת Markdown, בלי לשנות את קובץ ה־Markdown ובלי להשפיע על תצוגה ציבורית.

מאפיינים עיקריים

  • אדמין בלבד: הכפתור והקוד נטענים רק למשתמשי Admin.

  • מקומי בלבד: הקיפול מתבצע בצד הלקוח (client‑side) בדפדפן.

  • שימור מצב: נשמר ב‑localStorage פר‑מסמך (פתוח/סגור לכל סעיף).

  • ברירת מחדל: כל הסעיפים סגורים, הראשון פתוח.

  • ללא שינוי קובץ: לא נכתב תחביר ::: details לקובץ ה‑.md.

  • תצוגה ציבורית: שיתופים/ציבורי אינם מושפעים (הטוגל מוסתר ולא נטען קוד הקיפול).

הזרקת דגל הרשאה לתבנית

דוגמה להזרקת דגל אדמין מהשרת לתבנית Jinja לצורך גייט בצד הלקוח:

# שרת (דוגמה): בעת רינדור התבנית
return render_template(
    'md_preview.html',
    is_admin=is_admin(user_id),
    is_public=False,  # בציבורי יש להגדיר True כדי להסתיר את הטוגל והקוד
)

בטמפלייט הוספת הטוגל רק לאדמין:

{% if (is_admin|default(false)) and not (is_public|default(false)) %}
<button id="mdCollapseBtn" class="btn btn-secondary btn-icon" title="מצב מצומצם (קיפול ###)">
  <i class="fas fa-compress-alt"></i>
  מצב מצומצם
</button>
{% endif %}

עקרונות המימוש בצד הלקוח

  • בחירה של כל כותרות H3 בתוך המכולה #md-content.

  • לכל כותרת H3 נוצרת מעטפת <details> עם <summary> שמכיל את הכותרת, ותוכן הסעיף נאסף עד הכותרת הבאה ברמה H1/H2/H3.

  • מצב פתיחה/סגירה נשמר ב‑localStorage לפי מזהה הכותרת (id), עם מפתח פר‑מסמך.

  • ההחזרה למצב רגיל מסירה את מעטפות ה‑<details> ומחזירה את הצמתים למבנה המקורי.

צ’ק‑ליסט לפיצ’רים מקומיים דומים

  • כבוי כברירת מחדל; הפעלה ידנית ע“י המשתמש.

  • שימור מצב ב‑localStorage (פר‑מסמך/פר‑משתמש).

  • אין שינוי לקובץ מקור/שרת.

  • הסתרה מלאה בתצוגה ציבורית/שיתוף.

  • גייט הרשאות ברור (למשל Admin בלבד).