המיני Web App (סקירה) ====================== מה נותן? -------- - **צפייה ועריכה** – תצוגת קוד עם הדגשת תחביר, עריכה עם CodeMirror - **הרצת קוד (Playground)** – הרצת Python דרך API עם מגבלות ואבטחה (:doc:`/webapp/code-execution`) - **ספריית סניפטים** – גלריית קטעי קוד קצרים עם חיפוש, סינון וקרדיט מחבר (:doc:`/webapp/snippet-library`) - **תצוגת Markdown מתקדמת** – GFM, Mermaid, KaTeX, Task Lists אינטראקטיביות - **ארגון מתקדם:** - סימניות (Bookmarks) – סימון נקודות חשובות בקוד - אוספים (Collections) – ארגון קבצים לפי נושאים - פתקים דביקים (Sticky Notes) – הערות ויזואליות על הקוד - מועדפים (Favorites) - **פעולות מרובות** – בחירה מרובה וביצוע פעולות על מספר קבצים - **שיתוף** – קישור ציבורי לשיתופים פנימיים (זמני או קבוע) - **עמודי סטטוס** – מעקב זמינות ותקינות דשבורד חדש ----------- - **פיד אחרון** – מקבץ את כל הפעילות האחרונה (קבצים, גיבויים, תזכורות), עם אפשרות הרחבה במובייל ובדסקטופ. - **הגדרות פוש** – מצב המנויים, תזכורות ממתינות, והיסטוריית השליחה האחרונה/הבאה. - **פתקים אחרונים** – עד 10 פתקים שעודכנו לאחרונה, בין אם יש להם תזכורת עתידית ובין אם מדובר בעדכון ידני. - כל הכרטיסיות חולקות Layout רספונסיבי: במובייל מוצגת עמודה אחת, ובדסקטופ שני טורים (היסטוריה + כרטיסי מצב). אייקוני שפה אחידים ^^^^^^^^^^^^^^^^^^ - כל קובץ בדשבורד מקבל שדה ``language`` שמחושב בצד השרת: קודם נלקחת השפה שנשמרה במסד הנתונים; אם היא ריקה משתמשים בזיהוי לפי שם הקובץ (``resolve_file_language``). - קבצי ``.env`` וכל וריאציה שמתחילה ב-``.env`` (למשל ``.env.local``) מסומנים תמיד כ-``env`` ומקבלים את האייקון 🔐. - האייקונים זהים בכל הרכיבים – פיד אחרון, כרטיס "קבצים אחרונים", ספריית קבצים ותצוגת קובץ בודד. כך אין הבדל בין כרטיסיית הדשבורד לרשימות אחרות. - fallback: אם לא מזוהה שפה משויכת, מוצג האייקון 📄 יחד עם טקסט "text". טבלת אייקונים נפוצים """"""""""""""""""""""" .. list-table:: :header-rows: 1 * - שפה - אייקון - הערות * - Python - 🐍 - ברירת המחדל לקבצי ``.py`` או שדה ``programming_language=python``. * - JavaScript / TypeScript - 📜 / 📘 - מנותב לפי הסיומת או לפי השדה במסד. * - Dockerfile / YAML - 🐳 / 📋 - גם ``docker-compose.yml``. * - Env - 🔐 - כל שם קובץ שמתחיל ב-``.env``. * - טקסט - 📄 - fallback אוטומטי. הנחיות לסוכני AI ^^^^^^^^^^^^^^^^^ - הנתונים ב-API (למשל ``/dashboard`` או ``/files``) כוללים את אותו שדה ``language`` והאייקון לא דורש חישוב נוסף. - אין צורך לפרש את האימוג'י עצמו – הסתמכו על השדה הטקסטואלי ``language`` או ``programming_language`` כדי להחליט על פעולה. - במידה וסוכן צריך להציג הסבר למשתמש, ניתן להשתמש בטבלה שלעיל או להסתמך על תגובה סטנדרטית ("קובץ env, אייקון 🔐"). כתובת והרשאות -------------- - כתובת הבסיס: מוגדרת דרך ``PUBLIC_BASE_URL``. - הרשאות בסיסיות לקריאה; אין חשיפה של נתונים רגישים. הגדרות ENV ----------- - ``PUBLIC_BASE_URL`` – נדרש להצגת קישורי שיתוף ציבוריים. - לאחר merge, האתר מתעדכן אוטומטית ב-Read the Docs (בהתאם לקונפיגורציה). קישורים ותמונות מסך -------------------- - דפי שיתוף: ``/share/``. - בעת קריאה ל-``POST /api/share/`` ניתן לציין ``{"type": "permanent"}`` כדי לקבל קישור קבוע, או להשאיר ברירת מחדל לקישור זמני. - מומלץ לצרף צילומי מסך של תצוגת קובץ ושיתוף. ראו גם ------ - :doc:`/user/bookmarks` - :doc:`/user/my_collections` - :doc:`/user/sticky_notes` - :doc:`/webapp/bulk-actions` - :doc:`/webapp/editor` באנר הכרזות בראש המסך ----------------------- ה‑WebApp כולל באנר הכרזות קצר בראש העמוד (מחליף את "טיפ שבועי" הישן). מעתה ניהול ההכרזות נעשה דרך ממשק אדמין ו‑API, ללא צורך בהזרקות ידניות. איך מפעילים? ^^^^^^^^^^^^ 1. ודאו שהדגל ``WEEKLY_TIP_ENABLED`` נשאר ``true`` – זהו המתג הכללי של הרכיב. 2. היכנסו ל‑``/admin/announcements`` וצרו/ערכו הכרזה. סימון "הפעל" יכבה אוטומטית כל הכרזה פעילה אחרת (תמיד תהיה לכל היותר אחת פעילה). 3. בצד הלקוח, התבנית ``base.html`` מבצעת ``fetch`` ל‑``GET /api/v1/announcements/active``; אם קיימת הכרזה פעילה היא מוזרקת אוטומטית אל ``window.__announcements`` ומוצגת. הערות וקישורים ^^^^^^^^^^^^^^^^ - ``link`` בהכרזה הוא אופציונלי. קישורים פנימיים יתחילו ב‑``/``; קישורים חיצוניים חייבים להיות ``https://`` (``http://`` נחסם מטעמי אבטחה). - ניתן עדיין לבצע הזרקה ידנית ל‑HTML לצורך בדיקות/פיתוח, אך זה אינו נדרש עוד בתצורה רגילה. מה קורה מאחורי הקלעים? ^^^^^^^^^^^^^^^^^^^^^^ - אם אין הכרזה פעילה – לא מוצג באנר כלל (``display:none``). - כאשר קיימת הכרזה, מוצגת הראשונה בלבד. כאשר יש ``link`` – הרכיב מקבל ``role="link"`` ותומך לחיצה/Enter/Space; אחרת מוצג כ‑``role="status"``. - ההנפשה מבוססת מרקיזה אנכית; ריחוף עוצר את הגלילה לנגישות טובה יותר. כיבוי זמני ^^^^^^^^^^ - ניתן לכבות גלובלית באמצעות ``WEEKLY_TIP_ENABLED=false``. - משתמש יכול להשבית מקומית (ללא UI מובנה) עם ``localStorage.setItem('announcementBannerOff', '1')``. המלצות לתוכן ^^^^^^^^^^^^ - הודעות קצרות וברורות בעברית, עם קריאה לפעולה. - מומלץ לספק יעד פנימי ב‑``link`` עם פרטים מלאים (בלוג/צ'יינג'לוג).