יחידה:CSV/תיעוד

מתוך ויקיפדיה, האנציקלופדיה החופשית

זהו דף התיעוד עבור יחידה:CSV

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

התאים השונים ב-CSV יכולים להכיל קוד-ויקי, דוגמת קישורים או אפילו תמונות, אבל לא פסיקים או שורות חדשות.

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

ה-CSV בדוגמאות
שנה,אירוע,דמות
1453,המצאת ה[[דפוס]],[[יוהאן גוטנברג]]
1920,[[מאורעות תל חי]],[[יוסף טרומפלדור]]
1986,[[שער יד האלוהים]],[[דייגו מראדונה]]

פרמטרים[עריכת קוד מקור]

  • csv:תוכן הטבלה, בפורמט CSV. פרמטר חובה. עליו להכיל CSV חוקי. כל שאר הפרמטרים אופציונליים:
  • content-only: אם מעבירים בפרמטר זה ערך לא ריק, הפונקציה תחזיר את שורות הטבלה, אך ללא "עטיפה". באופן זה, יכול מי שקרא לפונקציה לעטוף את התוכן (דוגמה בהמשך)
  • no-title: כאשר לפרמטר זה ערך לא ריק, אין טיפול מיוחד בשורה הראשונה של ה-CSV. כאשר הפרמטר לא קיים, או ריק, השורה הראשונה בטבלה תוצג כשורת כותרות
  • table-attrib: אטריבוטות לטבלה כולה. לא בשימוש כשמשתמשים ב-content-only. אם לא מועבר הפרמטר, הפונקצייה משתמשת באטריבוטה class = "wikitable sortable"
  • tr-attrib: אטריבוטות לכל האלמנטים מסוג tr
  • th-attrib: אטריבוטות לכל האלמנטים מסוג th
  • td-attrib: אטריבוטות לכל האלמנטים מסוג td

לפרמטרים מסוג attrib אפשר להעביר כל מה שניתן להעביר כאטריבוטות html לאלמנט מהסוג המתאים. כך למשל, לטבלה ניתן להעביר border (שמתנהג באופן שונה משדה border של אטריבוטת style), או cell-padding. בדרך כלל האטריבוטות שנעביר הן class ו-style.

האטריבוטות יוצמדו לכל האלמנטים מאותו סוג בטבלה. כשמשתמשים ביחידה מתוך תבנית, מומלץ לשלוט על העיצוב בעזרת css ומנגנון templatestyle, ולמעט בהעברת אטריבוטות שאינן class.

דוגמאות:

דוגמאות[עריכת קוד מקור]

דוגמה פשוטה[עריכת קוד מקור]

מעבירים לפונקציה CSV בלבד - התנהגות לפי ברירת המחדל: עיצוב wikitable סטנדרטי, השורה הראשונה של ה-CSV משמשת כותרות, טבלה ניתנת למיון:

{{#invoke:CSV|wikitable
 | csv = 
שנה,אירוע,דמות
1453,המצאת ה[[דפוס]],[[יוהאן גוטנברג]]
1920,[[מאורעות תל חי]],[[יוסף טרומפלדור]]
1986,[[שער יד האלוהים]],[[דייגו מראדונה]]
}}

והתוצאה:

שנהאירועדמות
1453המצאת הדפוסיוהאן גוטנברג
1920מאורעות תל חייוסף טרומפלדור
1986שער יד האלוהיםדייגו מראדונה


אטריבוטות[עריכת קוד מקור]

הפעם הטבלה אינה wikitable, ואינה ניתנת למיון. במקום זה נעביר אטריבוטות style, ‏ class, וכן אטריבוטות ספציפיות לטבלה (כאן העברנו border=2).

כמו כן נוסיף style לכותרות (th) ולתאים הרגילים בטבלה (td)
למען הקריאות, קוד הוויקי מוצג משמאל לימין. פרמטר csv הושמט, למען הבהירות - ערכו כמו בדוגמה הראשונה:
{{#invoke:CSV|wikitable
 | table-attrib = border = 2 class = "mw-collapsible mw-collapsed" style="margin:auto;" 
 | th-attrib = style="color:red;background-color:yellow;"
 | td-attrib = style="background-color:lightgreen;"
 | csv = ... כמו קודם

והתוצאה:

שנהאירועדמות
1453המצאת הדפוסיוהאן גוטנברג
1920מאורעות תל חייוסף טרומפלדור
1986שער יד האלוהיםדייגו מראדונה

תוכן בלבד, נחוצה עטיפה[עריכת קוד מקור]

לעתים רצוי לשכן את הטבלה שמוחזרת על ידי הפונקציה בטבלה "עוטפת". בדוגמה, נעשה זאת כדי להוסיף שורה לפני השורה הראשונה, עם colspan=3, כדי ליצור כותרת לטבלה כולה:

{| class = "wikitable sortable mw-collapsible"
|-
! colspan=3 | עולם כמנהגו נוהג
{{#invoke:CSV|wikitable
 | content-only = true
 | csv = ... כמו קודם
}}
|}

הקריאה לפונקציה wikitable מוקפת בקוד ויקי רגיל של טבלה, הטבלה העוטפת אחראית בעצמה על האטריבוטות - במקרה זה מחלקות CSS שמעצבות טבלה סטנדרטית (wikitable), ומפעילות קוד שמ מדיה ויקי שגורם לטבלה להיות ניתנת למיון (sortable) וניתנת לקיפול (mw-collapsible), אבל לא מוצגת מראש במצב מקופל (בלי המחלקה mw-collapsible). העטיפה גם מוסיפה את שורת הכותרת הראשונה של הטבלה ("עולם כמנהגו נוהג"), ומורה לטבלה לפרוס כותרת זו על פני שלוש שורות (colspan=3).

והתוצאה
עולם כמנהגו נוהג
שנהאירועדמות
1453המצאת הדפוסיוהאן גוטנברג
1920מאורעות תל חייוסף טרומפלדור
1986שער יד האלוהיםדייגו מראדונה

ניתן להשתמש בעטיפה כדי לספק שורת כותרות שאינה מועברת כ-CSV, ובכך לעקוף את מגבלותיו (בלי פסיקים, הכל בשורה אחת), לכותרות עצמן.

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

{| class = "wikitable sortable"
|-
! מתי || מה || מי
{{#invoke:CSV|wikitable
 | content-only = true
 | no-title = true
 | csv = 
1453,המצאת ה[[דפוס]],[[יוהאן גוטנברג]]
1920,[[מאורעות תל חי]],[[יוסף טרומפלדור]]
1986,[[שער יד האלוהים]],[[דייגו מראדונה]]
}}
|}

והתוצאה:

מתי מה מי
1453המצאת הדפוסיוהאן גוטנברג
1920מאורעות תל חייוסף טרומפלדור
1986שער יד האלוהיםדייגו מראדונה

יש לזכור, כאשר משתמשים בעטיפה, לסגור את הטבלה עצמה, אחרי סגירת הקריאה לפונקציה (invoke). ניתן להוסיף שורה או שורות footer לפני סגירת הטבלה.