تاریخچه Markdown

لوگوی رسمی Markdown

لوگو توسط Dustin Curtis مالکیت عمومی

Markdown چیست؟

Markdown یک زبان نشانه‌گذاری سبک با سینتکس ساده فرمت‌بندی متن است. هدف اصلی آن «قابل خواندن توسط انسان» بودن در فرم اصلی (کد منبع) و تبدیل آسان به HTML معتبر است. از زمان انتشار در سال ۲۰۰۴، به استاندارد عملی برای نویسندگان، توسعه‌دهندگان و تولیدکنندگان محتوا در وب تبدیل شده است.

Markdown دو چیز است: (۱) یک سینتکس ساده فرمت‌بندی متن؛ و (۲) یک ابزار نرم‌افزاری، که در اصل به زبان Perl نوشته شده، که این فرمت‌بندی را به HTML تبدیل می‌کند.

ریشه‌ها و انگیزه (قبل از ۲۰۰۴)

قبل از Markdown، نوشتن برای وب نیاز به دانش HTML (HyperText Markup Language) یا استفاده از ویرایشگرهای WYSIWYG («What You See Is What You Get») داشت که اغلب کدهای سنگین و سخت برای نگهداری تولید می‌کردند.

زبان‌های نشانه‌گذاری سبک دیگری مانند Textile و reStructuredText وجود داشتند، اما بسیاری هنوز مانند کد کامپیوتری به نظر می‌رسیدند یا نیاز به تگ‌های پیچیده داشتند. الهام Markdown از یک منبع ساده آمد: فرمت‌بندی استفاده شده در ایمیل‌های متن ساده.

در روزهای اولیه اینترنت، کاربران از قراردادهای بصری برای فرمت‌بندی ایمیل‌ها استفاده می‌کردند: *ستاره‌ها* برای تأکید، علامت‌های > برای نقل قول، و خط تیره‌ها برای لیست‌ها. این قراردادهای طبیعی پایه سینتکس Markdown شدند.

خلق (۲۰۰۴)

Markdown توسط John Gruber (متولد ۱۹۷۳)، بلاگر فناوری، طراح UI از فیلادلفیا، پنسیلوانیا، و خالق بلاگ محبوب Daring Fireball، با مشارکت‌های مهم Aaron Swartz (۱۹۸۶-۲۰۱۳)، برنامه‌نویس نابغه و فعال اینترنتی ایجاد شد.

Gruber ایده اصلی را داشت و اسکریپت اولیه Perl را نوشت که متن نشانه‌گذاری شده را به HTML تبدیل می‌کرد. فلسفه او واضح بود: سند نشانه‌گذاری شده باید همان‌طور که هست، به عنوان متن ساده قابل انتشار باشد، بدون اینکه به نظر برسد با تگ‌ها یا دستورالعمل‌های فرمت‌بندی پر شده است.

Aaron Swartz روی سینتکس با Gruber کار کرد. Swartz قبلاً atx (یک زبان نشانه‌گذاری دیگر) را ایجاد کرده بود و در ایجاد سینتکس‌های عنوان با استفاده از # تأثیر گذاشت، همچنین به اصلاح قوانین ترجمه HTML به متن کمک کرد.

نسخه ۱.۰.۱ در ۱۷ دسامبر ۲۰۰۴ تحت مجوز متن‌باز BSD به صورت عمومی منتشر شد.

«هدف اصلی طراحی سینتکس فرمت‌بندی Markdown این است که آن را تا حد امکان خوانا کند. ایده این است که یک سند فرمت‌بندی شده با Markdown باید همان‌طور که هست، به عنوان متن ساده قابل انتشار باشد، بدون اینکه به نظر برسد با تگ‌ها یا دستورالعمل‌های فرمت‌بندی نشانه‌گذاری شده است.»
John Gruber, Daring Fireball

خالقان

John Gruber

John Gruber

خالق Markdown

بلاگر فناوری و طراح UI متولد ۱۹۷۳ در فیلادلفیا. خالق Daring Fireball، یکی از تأثیرگذارترین بلاگ‌های فناوری با تمرکز بر محصولات اپل. همچنین پادکست The Talk Show را میزبانی می‌کند. Gruber مدرک کارشناسی علوم کامپیوتر را از دانشگاه Drexel گرفت.

عکس از Randy Stewart Wikimedia Commons CC BY-SA 3.0

Aaron Swartz

Aaron Swartz

هم‌خالق Markdown (۱۹۸۶-۲۰۱۳)

برنامه‌نویس نابغه، کارآفرین، نویسنده و فعال اینترنتی. در ۱۴ سالگی RSS 1.0 را هم‌نویسندگی کرد. یکی از معماران اولیه Creative Commons، توسعه‌دهنده Open Library و هم‌بنیان‌گذار Reddit بود. در سال ۲۰۱۳ به تالار مشاهیر اینترنت پیوست.

عکس: Wikimedia Commons CC BY-SA 3.0

«Aaron Swartz شایسته اعتبار زیادی برای بازخوردش در طراحی سینتکس فرمت‌بندی Markdown است. Markdown به لطف ایده‌ها، بازخورد و آزمایش‌های Aaron بسیار بهتر است.»
— John Gruber

تکه‌تکه شدن: دوران غرب وحشی (۲۰۰۵-۲۰۱۲)

از آنجا که اسکریپت Perl اصلی Gruber برخی ابهامات داشت و همه موارد استفاده (مانند جداول یا تعاریف ریاضی) را پوشش نمی‌داد، جامعه شروع به ایجاد پیاده‌سازی‌های خود در زبان‌های دیگر مانند Python، Ruby، PHP و JavaScript کرد.

این منجر به تکه‌تکه شدن شد. توسعه‌دهندگان ویژگی‌های اضافی اضافه کردند که در مشخصات اصلی وجود نداشتند. به اصطلاح «طعم‌های» Markdown ظاهر شدند:

MultiMarkdown (۲۰۰۵) — توسط Fletcher Penney ایجاد شد، پشتیبانی از جداول، پانویس‌ها، متادیتا و صادرات LaTeX را اضافه کرد.

PHP Markdown Extra — یک نسخه محبوب برای CMS‌های مبتنی بر PHP (مانند WordPress و Drupal)، توسط Michel Fortin ایجاد شد.

GitHub Flavored Markdown (GFM) — شاید تأثیرگذارترین نوع. GitHub از Markdown برای فایل‌های README.md، نظرات و issues استفاده کرد، هایلایت سینتکس برای بلوک‌های کد، لیست‌های وظایف و جداول را اضافه کرد. محبوبیت GitHub، Markdown را به عنوان ابزار ضروری برای توسعه‌دهندگان تثبیت کرد.

خط زمانی

2004

انتشار اصلی

John Gruber در ۱۷ دسامبر Markdown 1.0.1 را در بلاگ Daring Fireball منتشر کرد، شامل یک اسکریپت Perl برای تبدیل و پشتیبانی اولیه برای Movable Type، Blosxom و BBEdit.

2004

PHP Markdown

Michel Fortin Markdown را به PHP منتقل کرد و یکی از اولین پیاده‌سازی‌های جایگزین را ایجاد کرد. بعداً افزونه‌هایی مانند جداول و پانویس‌ها را در PHP Markdown Extra اضافه کرد.

2008

GitHub از Markdown استفاده می‌کند

GitHub شروع به استفاده از Markdown برای READMEها و مستندات کرد و سینتکس را به طور گسترده در میان توسعه‌دهندگان در سراسر جهان محبوب کرد.

2012

GitHub Flavored Markdown (GFM)

GitHub افزونه خود را بر اساس پارسر Sundown ایجاد کرد و جداول، هایلایت سینتکس، لیست‌های وظایف و لینک‌های خودکار را اضافه کرد.

2012

شروع استانداردسازی

با این همه «طعم» مختلف، یک سند Markdown می‌توانست بسته به سایت یا برنامه استفاده شده متفاوت رندر شود. این شرکت‌هایی مانند Stack Exchange و GitHub را ناامید کرد. Jeff Atwood (هم‌بنیان‌گذار Stack Overflow) و John MacFarlane تلاش‌هایی را برای ایجاد یک مشخصات استاندارد سخت‌گیرانه آغاز کردند.

2014

CommonMark

در ابتدا «Standard Markdown» نامیده می‌شد، پروژه با مخالفت John Gruber مواجه شد که استدلال می‌کرد Markdown او استاندارد است و نمی‌خواهد اشخاص ثالث نام را تصاحب کنند. پس از اختلاف، به CommonMark تغییر نام یافت. مشخصات مجموعه‌های آزمایشی ارائه می‌دهد تا اطمینان حاصل شود Markdown در هر سیستمی یکسان رفتار می‌کند.

2016

ثبت IETF

IETF RFC 7763 و RFC 7764 را منتشر کرد و به طور رسمی نوع رسانه text/markdown را ثبت کرد.

2017

GFM مبتنی بر CommonMark

GitHub Sundown را منسوخ کرد و مشخصات رسمی GitHub Flavored Markdown را بر اساس CommonMark با استفاده از کتابخانه cmark منتشر کرد.

استاندارد جهانی

استاندارد جهانی

پسوندهای فایل: .md و .markdown. در میلیون‌ها سایت استفاده می‌شود، از جمله Stack Overflow، Reddit، Discord، Notion و Obsidian.

وضعیت فعلی

امروز، Markdown از دنیای برنامه‌نویسی فراتر رفته و در فرهنگ دیجیتال همه‌جا حاضر است. حوزه‌های اصلی استفاده آن عبارتند از:

مستندات فنی — استاندارد صنعت است. سایت‌هایی مانند Microsoft Learn، Google Cloud Docs و مستندات GitHub با Markdown نوشته شده‌اند.

تولیدکنندگان سایت استاتیک (SSG) — ابزارهایی مانند Jekyll، Hugo و Gatsby از فایل‌های Markdown برای تولید کل سایت‌ها استفاده می‌کنند.

یادداشت‌ها و بهره‌وری — موج جدیدی از برنامه‌های «مغز دوم» مانند Obsidian، Notion، Roam Research و Logseq از Markdown برای ذخیره‌سازی داده‌ها استفاده می‌کنند و تضمین می‌کنند کاربران در فرمت‌های اختصاصی گیر نمی‌افتند.

علم داده — Jupyter Notebooks، ابزار ضروری برای دانشمندان داده (Python/R)، از سلول‌های Markdown برای توضیح کد و ارائه نتایج استفاده می‌کنند.

پیام‌رسان‌ها — Slack، Discord، WhatsApp و Telegram زیرمجموعه‌هایی از Markdown را برای فرمت‌بندی پیام پشتیبانی می‌کنند.

آینده و میراث

Markdown ثابت کرده که یک فناوری مقاوم است. برخلاف فرمت‌های اختصاصی (مانند .doc) که با گذشت زمان تغییر می‌کنند و خراب می‌شوند، یک فایل Markdown نوشته شده در سال ۲۰۰۴ هنوز امروز توسط هر انسان یا کامپیوتری کاملاً قابل خواندن است.

روند فعلی به «Markdown گسترش‌یافته» مانند MDX اشاره می‌کند که امکان استفاده از کامپوننت‌های React در داخل Markdown را می‌دهد و سادگی نوشتن را با تعاملی بودن وب مدرن ترکیب می‌کند.

«Markdown انتشار وب را دموکراتیک کرد، به نویسندگان اجازه داد بدون نگرانی از طراحی روی محتوا تمرکز کنند، و به توسعه‌دهندگان اجازه داد مستندات زیبا و کاربردی بدون سنگینی پردازشگرهای کلمه پیچیده ایجاد کنند.»

میراث ادامه دارد

بیش از دو دهه پس از ایجاد، Markdown همه‌جا حاضر است. سادگی که Gruber و Swartz به دنبال آن بودند به واقعیت تبدیل شد: میلیون‌ها نفر هر روز با Markdown می‌نویسند، اغلب بدون اینکه بدانند از یک زبان نشانه‌گذاری استفاده می‌کنند.

دیدگاه Aaron Swartz از یک اینترنت باز و قابل دسترس در روح Markdown زنده است: یک ابزار رایگان و ساده که تولید محتوا برای وب را دموکراتیک می‌کند. تعهد او به عدالت اجتماعی و دسترسی آزاد به اطلاعات عمیقاً بر نحوه اشتراک‌گذاری دانش آنلاین تأثیر گذاشت.

اسکریپت اصلی Markdown.pl از سال ۲۰۰۴ به‌روزرسانی نشده، اما میراث آن در صدها پیاده‌سازی در عملاً هر زبان برنامه‌نویسی، از C تا JavaScript، از Python تا Go زنده است.

مراجع و لینک‌های رسمی