חזרה
SiTech Professional Insights
עשרים שנה ל-pandoc: הממיר שהתחיל כתרגיל ב-Haskell
SiTech Team2 წთ. საკითხავი

עשרים שנה ל-pandoc: הממיר שהתחיל כתרגיל ב-Haskell

ג'ון מקפרליין מסכם עשרים שנה למהדורה הראשונה של pandoc: 51 פורמט קלט, 76 פורמט פלט, 3,876 המרות אפשריות ויותר מ-600 תורמים — ומתלבט מה יהיה תפקידו בעידן המודלים.

ג'ון מקפרליין, יוצר pandoc, פרסם סקירה לרגל עשרים שנה למהדורה הראשונה של ממיר המסמכים. את pandoc 0.1 הוא העלה לאתר שלו ב-3 באוגוסט 2006 תחת רישיון GPL חופשי. הגרסה הראשונה כללה כ-3,000 שורות קוד ב-Haskell, בלי תלויות מלבד ספריית התקן של GHC, ויכלה להמיר מסמכי Markdown, reStructuredText, HTML ו-LaTeX זה לזה, וכן ל-RTF ול-S5. אחרי יותר ממאתיים מהדורות הפך הפרויקט לתוכנית הפופולרית ביותר שנכתבה ב-Haskell, הוא תומך ביותר מחמישים פורמטים של מסמכים ומותקן על מיליוני מחשבים.

למה Haskell ולמה AST

לדברי מקפרליין, הבחירה הייתה הפוכה ממה שמניחים: תחילה החליט להשתמש ב-Haskell, ורק אחר כך להמיר מסמכים. אחרי שהתרשם מפוסט של חבר על השפה, קרא את "A Gentle Introduction to Haskell" וחיפש פרויקט מעשי כדי ללמוד אותה. מימושי Markdown של אז ב-Perl, Python, Ruby ו-PHP עבדו על ביטויים רגולריים; pandoc בחר דרך אחרת — לפרסר את Markdown לעץ תחביר מופשט (AST) אמיתי ואז לרנדר אותו לפורמטים אחרים. זו ארכיטקטורה אמינה וגמישה יותר: N קוראים ו-M כותבים נותנים N × M המרות.

שני עשורים של מהדורות

pandoc 1.0 יצא בספטמבר 2008 עם כותבים ל-MediaWiki, Texinfo, OpenDocument ו-ODT ובלוקי קוד עם הדגשת תחביר; את הספריות zip-archive ו-highlighting-kate כתב מקפרליין בעצמו כי לא היו כאלה ב-Haskell. pandoc 1.9 (2012) הוסיף פלט ל-Word docx. pandoc 2.0 (2017) שינה את הקוראים והכותבים כך שיוכלו לבצע פעולות קלט-פלט כשהפורמט דורש זאת, והציג מסנני Lua הפועלים ישירות על ה-AST. pandoc 3.0 (2023) פיצל את הפרויקט לארבע חבילות — ספרייה, מנוע Lua, שרת ו-CLI — והוסיף אלמנט Figure; בהמשך נוספה תמיכה ב-Typst (3.1.3) וב-djot (3.1.12), ו-pandoc 3.9 (פברואר 2026) אפשר הידור ל-WebAssembly והרצה בדפדפן.

במספרים

הסקירה מונה את הנתונים העדכניים: 51 פורמטי קלט ו-76 פורמטי פלט — 3,876 המרות שונות; 85,684 שורות Haskell בארבע החבילות המרכזיות, וכמעט כפול מכך עם התלויות שנוצרו במיוחד עבור pandoc; 7,346 issues שנסגרו ב-GitHub; ולמעלה מ-600 תורמים, ובהם אלברט קרוינקל, ג'סי רוזנטל וכריסטיאן דפרס. ב-2018 קיבל הפרויקט תרומה של 100,000 דולר מ-Handshake, ששימשה במשך חמש שנים למענקים קטנים למתחזקים הפעילים ביותר.

מה הלאה

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

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.