שאלות נפוצות
ציר זמן
צ'אט
פרספקטיבה
YAML
תקן סריאליזציה טקסטואלי מוויקיפדיה, האנציקלופדיה החופשית
Remove ads
YAML (ראשי תיבות רקורסיביים של YAML Ain't Markup Language - קרי "YAML אינה שפת סימון"; נהגה: יָאמֵל) הוא פורמט סריאליזציה טקסטואלי שנועד להיות קריא בקלות לבן אנוש (human readable), המשמש בדרך כלל לקובצי תצורה (קונפיגורציה) וביישומים בהם מאוחסן או מועבר מידע. הפורמט משמש ביישומים דומים לאלו של XML, אך התחביר (syntax) שלו מינימלי.[1] קינון (nesting) מתבצע באמצעות הזחה, בדומה לפייתון, והגדרת רשימה (list) ומפה (map) מתבצעות בצורה קצרה יותר לעומת XML באמצעות [...]
ו-{...}
בהתאמה, בדומה ל-JSON, ש-YAML מהווה למעשה הרחבה שלה (כל קובץ JSON הוא גם קובץ YAML תקין).[2]
התקן תומך בהגדרת טיפוסי נתונים מותאמים, אך מעבר לכך YAML תומך בקידוד סקלרים (כמו מחרוזות, מספרים שלמים ומספרי נקודה צפה), רשימות ומפות. הגדרת ערכים בקובץ YAML (בצורת key-value) מתבצעת באמצעות נקודתיים (:), צורת הגדרה שמבוססת על פורמט header-ים בדואר אלקטרוני כפי שמוגדר ב-RFC 0822 (תקן ARPA), והמפריד ---
המשמש לתיחום בין directives[א] מקורו בתקן הדואר האלקטרוני MIME (RFC 2046). הגדרת רצפי מילוט (escape sequences)[ב] מתבצע בצורה דומה ל-C, והגדרת מחרוזות בעלות מספר שורות נעשה באמצעות רווחים בהשראת HTML.[ג]
תמיכה מובנית בכתיבה ובקריאה של קובצי YAML קיימת בשפות תכנות רבות.[3] כמה עורכי טקסט כמו Emacs,[ד] וסביבות פיתוח (IDE),[ה] כוללים יכולות המאפשרות עריכה פשוטה של מסמכי YAML, למשל קיבוץ של מבנים מקוננים או התראה אוטומטית על שגיאות תחביר.
סיומת הקובץ המומלצת למסמכי YAML היא .yaml[4] (מאז 2006).[5]
Remove ads
היסטוריה
התקן הוצע לראשונה בשנת 2001 על ידי קלארק אוונס,[6] שתכנן אותה יחד עם אינגי דוט נט ואורן בן-קיקי.[7] בתחילה הוגדר כי ראשי התיבות YAML משמען Yet Another Markup Language (עוד שפת סימון),[8] אך לאחר מכן שונו ראשי התיבות ל-YAML Ain't Markup Language (YAML אינה שפת סימון) - החל מאפריל 2002.[9]
דוגמאות לתחביר בסיסי
סכם
פרספקטיבה
YAML מאפשרת להגדיר רשימות ומפות במספר שורות, או בשורה בודדת / בתוך שורה (inline).
הגדרה של פריטים ברשימה במספר שורות נעשית באמצעות מקף ורווח לפני כל פריט:
--- # סרטים אהובים
- Casablanca
- North by Northwest
- The Man Who Wasn't There
בהגדרה של רשימה בשורה אחת הפריטים מופרדים בפסיק וברווח, עם סוגריים מרובעים לסימון תחילת וסוף הרשימה (בדומה ל-JSON):
--- # רשימת קניות
[milk, pumpkin pie, eggs, juice]
הגדרת מיפוי key-value נעשית באמצעות תחביר של נקודתיים (:) המפרידות בין רכיבי המיפוי. בהגדרה במספר שורות נעשה שימוש בהזחה, ובהגדרה בשורה אחת פריטי המיפוי מופרדים בפסיק וברווח, עם סוגריים מסולסלים לסימון תחילת וסוף המפה (בדומה ל-JSON):
--- # הגדרת מיפוי במספר שורות בהזחה
name: John Smith
age: 33
--- # הגדרת מיפוי בתוך השורה
{name: John Smith, age: 33}
בהגדרת מחרוזת אין צורך להוסיף סימני מירכאות. ישנן מספר דרכים להגדרת מחרוזות בעלות מספר שורות. כשמסמנים את תחילת המחרוזת באמצעות התו | נשמרים תווי ירידת השורה, וכשנעשה שימוש בתו < לסימון תחילת המחרוזת − פירוש המחרוזת יתעלם מירידות השורה ויתייחס אליהן כרווחים.
המחרוזת הבאה תכלול את תווי ירידת השורה:
data: |
There once was a tall man from Ealing
Who got on a bus to Darjeeling
It said on the door
"Please don't sit on the floor"
So he carefully sat on the ceiling
המחרוזת הבאה תתעלם מתווי ירידת השורה - מלבד המקרה של השורה הריקה (שם תהיה ירידת שורה):
data: >
Wrapped text
will be folded
into a single
paragraph
Blank lines denote
paragraph breaks
Remove ads
קישורים חיצוניים
אתר האינטרנט הרשמי של YAML (באנגלית)
ביאורים
- חלקים במסמך, ניתן לראות זאת כשני מסמכים שונים המוגדרים באותו קובץ
- רצף תווים בעל משמעות שונה מהתווים כפשוטם, למשל רצף של כמה תווים שבא לייצג תו אחר שאינו printable.
- גם Sublime באמצעות התוסף Pretty YAML
- למשל Eclipse באמצעות מספר תוספים או NetBeans ל-Ruby ו-Ruby on Rails, ראו כאן
Remove ads
הערות שוליים
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads