גבירותיי ורבותיי הנני בכבוד רב להודיע שהיום שלחתי קוח בפעם הראשונה בחיי, נא אחלו לי בהצלחה.

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

לא יודע עד כמה (כרגע) זה באמת יתרון משמעותי, אבל בהחלט כיף.
ובהמשך כשיהיה לי זמן אשדרג את כל העניין.

עכשיו יש לי קומיט של "תיקון טייפו".

אני מתלבט אם לשים ב gitignore את התיקייה של הפלטים (ה-PDF-ים המוכנים) של טייפסט.
אולי אני רוצה שזה יהיה לי זמין בשלוף מהגיטלאב.

@semicolon

הגישה שאני רואה הרבה, ומתאימה גם להקשר של קימפול קוד לקובץ בר הרצה וגם בהקשר של קימפול קבצי טייפסט ל־PDF (או כל פורמט פלט אחר לצורך העניין), היא שהקוד הנא נמצא במערכת בקרת הגרסאות של גיט גופא, אבל הפלטים של הקימפול שמורים כ־release של ה־Git forge. זה הרבה יותר נקי ואלגנטי ככה, ולא מערבב דברים שלא צריכים להיות מעורבבים.

@ruxotves
אם כבר בגיט עסקינן, ויש לי אותך בשרשור,
איך הגיוני לדעתך לנהל גרסאות שונות של אותן קוח (לדוגמא הבלטה של נסיון/כשרון אחר פר משרות אחרות שאני מנסה להגיע)?

נגיד לעשות branch נפרד לכל סוג דגש הגיוני? או שיש משהו יותר טוב?

@semicolon @ruxotves
אפשר בבראנצ', ואפשר להשתמש בדגלים בשלב ההידור עבור משרות שונות. כך שרק הניסיון שסומן רלוונטי יבנה (או בשלילה, מה שסומן לא רלוונטי לא יבנה) וכך לקבל PDF שונה לכל משרה.
@ynym @ruxotves
איך אפשר לעשות את זה?
דגלים אני מניח שאני מעביר לתוכנה של טייפסט?

@semicolon @ynym

כדי לתקשר עם טייפסט מבחוץ הדרך הקאנונית היא בעזרת sys.inputs, שזה מילון (dictionary) שמקבל ערכים שמועברים כארגומנטים לקומפיילר: https://typst.app/docs/reference/foundations/sys/

מה אתה עושה עם זה? מה שאתה רוצה, זה כמו כל משתנה בטייפסט. בהקשר של קו״ח אפשר להשתמש בזה באופן פשוט עם תנאים כדי שחלקים מסויימים יופיעו או לא יופיעו, אבל אפשר גם לעשות שימושים מורכבים יותר. »

System Functions – Typst Documentation

Documentation for the sys functions.

Typst

@semicolon @ynym

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

דוגמה מינימלית להבהרה, הקובץ שבטיוט הבא יפיק תוצאות שונות עבור שתי ההרצות הבאות של הקומפיילר:

typst c myfile.typ --input field=crochet
typst c myfile.typ --input field=gardening

@semicolon @ynym

```
#let interests = (
crochet: ("pattern design", "crochet jewelry", "yarnbombing"),
gardening: ("permaculture", "guerrilla gardening", "growing succulents"),
)

= Interests

#list(..interests.at(sys.inputs.at("field")).map(it => list.item(it)))
```

@semicolon @ynym

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