מדריך סגנונות וארכיטקטורת Markdown

המסמך הזה הוא Source of Truth לעיצוב וארכיטקטורת Markdown בפרויקט. הוא מיועד למפתחים ול‑QA ויזואלי.

הערה

רינדור Reader Mode מתבצע בצד השרת ע״י Python‑Markdown, ובצד הלקוח נטענים סגנונות CSS (וגם Mermaid). בתצוגת md_preview יש גם רינדור צד‑לקוח, אבל ה‑Reader הוא בסיס הייחוס היציב לבדיקה ויזואלית.

1. סקירה טכנית (Architecture)

Pipeline קצר:

  1. Markdown Text

  2. Python‑Markdown (Extensions)

  3. HTML

  4. CSS Styling (Variables + Components)

  5. User Display

Mermaid Diagram (תהליך הרינדור):

flowchart LR
  A[Markdown Text] --> B[Python Renderer (Extensions)]
  B --> C[HTML]
  C --> D[CSS Styling (Variables)]
  D --> E[User Display]

הערה

הדיאגרמה כתובה ב‑Mermaid אך מוצגת כטקסט כדי למנוע אזהרות Pygments ב‑RTD. אם רוצים רינדור ויזואלי, אפשר להוסיף תוסף Mermaid לתיעוד.

Extensions פעילים (מקור אמת: `app.py`):

Python‑Markdown Extensions

Extension

תפקיד

extra

חבילת הרחבות בסיסיות (למשל fenced code, attr_list, def_list). נותנת תשתית רחבה לפיצ׳רים נפוצים.

codehilite

הדגשת קוד בעזרת Pygments ועטיפה ב‑.codehilite.

tables

טבלאות בסגנון Markdown.

sane_lists

תיקון התנהגות רשימות (מונע שבירה בין פסקאות).

toc

יצירת תוכן עניינים (anchors לכותרות).

admonition

תיבות הודעה בסגנון !!! note.

Highlighting:

  • המנוע: Pygments

  • קלאס יעד: .codehilite

  • סגנון פעיל: friendly (הזרקה דרך Python)

2. מערכת הצבעים (Reader Mode)

משתני רקע חדשים (Reader Mode):

  • --reader-bg-light: #f5e6d3

  • --reader-bg-medium: #e8d4b0

  • --reader-bg-dark: #d4b896

רקע בסיסי (Sepia):

  • #fdf6e3 (משמש גם ל־reader-bg-sepia)

Highlighter (Pygments):

  • סגנון: friendly

  • מקור אמת: app.py (_PYGMENTS_PREVIEW_FORMATTER)

4. הנחיות למפתחים (Best Practices)

  • לא להשתמש ב‑Inline Styles בתוך Markdown.

  • שינוי צבעים/רקעים נעשה ב‑reader.css או markdown-enhanced.css בלבד.

  • שמרו על התאמה בין Reader Mode ל‑Classic Theme כדי לשמר עקביות ויזואלית.

הערה

אם מוסיפים רכיב חדש, חובה לעדכן גם את מסמך ה‑Source of Truth הזה כדי ש‑QA ידע בדיוק מה אמור להופיע ובאילו קבצים.