Fayl formatlari
Markdown nima? Sintaksis, CommonMark va GFM
Markdown oddiy matnga bir nechta belgi yordamida sarlavha, roʻyxat va havolalar qoʻshadigan yengil belgilash tilidir. Uning tarixi, standartlari va MD fayllarni Word yoki PDF ga aylantirganda nima saqlanishi haqida.
Muallif: Hemen Dönüştür Editör EkibiEʼlon qilingan: 7 daqiqa oʻqish

Dasturiy loyihaning README faylini, qaydlar ilovasidagi sarlavhali roʻyxatlarni yoki messenjerda yulduzchalar bilan qalin qilingan soʻzlarni eslang. Ularning barchasi ortida bitta gʻoya turibdi: Markdown. Markdown oddiy matnga bir nechta sodda belgi qoʻshib, sarlavhalar, roʻyxatlar, havolalar va jadvallarni belgilash imkonini beradigan yengil belgilash tilidir. Fayl istalgan matn muharririda oʻqiladigan boʻlib qoladi, ammo kerak boʻlganda uni toza HTML sahifa, Word hujjat yoki PDF ga aylantirish mumkin. Bu maqolada Markdown qanday paydo boʻlgani, uning asosiy sintaksisi, CommonMark va GitHub Flavored Markdown oʻrtasidagi farqlar hamda MD fayllarni konvertatsiya qilishda nimalarga eʼtibor berish kerakligi koʻrib chiqiladi.
Markdown nima?
Markdown ham yozish qoidalari toʻplami, ham shu qoidalar bilan yozilgan matnni HTML ga aylantiradigan vositalarning umumiy nomidir. Fayllar odatda .md yoki .markdown kengaytmasi bilan saqlanadi. Uning muallifi John Gruber ga koʻra, asosiy dizayn maqsadi oʻqiluvchanlik: Markdown hujjat teglar yoki formatlash koʻrsatmalari bilan belgilangandek koʻrinmasdan, oddiy matn holida shundayligicha nashr etilishi mumkin boʻlishi kerak. HTML da <strong>muhim</strong> kerak boʻlgan joyda Markdown **muhim** dan foydalanadi va hatto xom koʻrinishi ham tabiiy oʻqiladi.
Qisqacha tarix
John Gruber Markdown ni 2004 yilda yaratgan, Aaron Swartz esa uning gʻoyalarini muhokama qilishda hamroh boʻlgan. Sintaksis oddiy matnli elektron pochta anʼanalariga (urgʻu uchun yulduzchalar, roʻyxat uchun defislar) hamda setext va Textile kabi oldingi belgilash tillariga tayangan. Gruber oʻzining Daring Fireball saytida eʼlon qilgan Perl skripti Markdown.pl ning 1.0.1 versiyasi 2004 yil 17 dekabr sanasiga ega.
Biroq Gruber ning tavsifi rasmiy spetsifikatsiya emas, balki misollar orqali tushuntirish edi. Noaniq holatlar (ichma-ich roʻyxatlar, chekinishli kod bloklari, HTML aralashtirish) har bir amalga oshirishni oʻz tanlovini qilishga majbur qildi va bir xil matn turli vositalarda turli natija bera boshladi. Bunga ikkita yirik javob boʻldi:
- CommonMark (2014): John MacFarlane boshchiligidagi spetsifikatsiya boʻlib, Markdown ni bir maʼnoli belgilaydi va yuzlab misollar bilan uni sinovdan oʻtkazish imkonini beradi. Birinchi versiyalar 2014 yil kuzida chiqdi; amaldagi versiya 2024 yil 28 yanvardagi 0.31.2. Spetsifikatsiya hali 1.0 deb eʼlon qilinmagan.
- GitHub Flavored Markdown (GFM, 2017): GitHub ning CommonMark ustiga qurilgan rasmiy spetsifikatsiyasi. U jadvallar, vazifalar roʻyxati, ustidan chizish, kengaytirilgan avtohavolalar va xavfsizlik uchun baʼzi xom HTML teglarni filtrlash kabi kengaytmalarni qoʻshadi. Eʼlon qilingan soʻnggi spetsifikatsiya 2019 yil 6 apreldagi 0.29-gfm.
Markdown internet infratuzilmasida ham tan olindi: 2016 yil martida eʼlon qilingan RFC 7763 text/markdown media turini (MIME turi) muallif qaysi Markdown variantini nazarda tutganini bildiruvchi ixtiyoriy variant parametri bilan roʻyxatga oldi.
Asosiy Markdown variantlari
CommonMark va GFM dan tashqari boshqa keng tarqalgan variantlar ham bor. RFC 7763 bilan birga eʼlon qilingan RFC 7764 ulardan bir nechtasini roʻyxatga oldi va foydalanish boʻyicha tavsiyalar berdi:
- Markdown Extra: izohlar (snoskalar), taʼriflar roʻyxati va jadvallarni qoʻshgan dastlabki kengaytma.
- MultiMarkdown: metamaʼlumotlar, iqtiboslar va oʻzaro havolalarga ega, akademik yozuvga moʻljallangan variant.
- Pandoc Markdown: Pandoc konvertori ishlatadigan, kitob va maqola yozish uchun koʻplab kengaytmalarga ega variant.
Amaliy qoida: agar hujjatingizda faqat sarlavhalar, roʻyxatlar, havolalar, kod va oddiy jadvallar boʻlsa, u deyarli hamma joyda bir xil koʻrinadi. Agar izohlar, taʼriflar roʻyxati yoki maxsus blok turlariga tayansangiz, maqsadli muhit qaysi variantni qoʻllab-quvvatlashini tekshiring.
Asosiy sintaksis
Markdown ning kundalik ishda kerak boʻladigan qismini bir necha daqiqada oʻrganish mumkin:
# Birinchi darajali sarlavha
## Ikkinchi darajali sarlavha
Bu xatboshida **qalin**, *kursiv* va `kod` bor.
- Markerli roʻyxat
- Ikkinchi band
- Chekinishli quyi band
1. Raqamli roʻyxat
2. Ikkinchi qadam
[Havola matni](https://example.com)

> Iqtibos
```
Koʻp qatorli kod bloki
```
GFM qoʻshgan jadvallar va vazifalar roʻyxati quyidagicha koʻrinadi:
| Format | Kengaytma |
|--------|-----------|
| Markdown | .md |
| Oddiy matn | .txt |
- [x] Qoralamani yozish
- [ ] Koʻrib chiqish
Xatboshilar boʻsh qatorlar bilan ajratiladi. Koʻpchilik amalga oshirishlarda bitta qator uzilishi oʻsha xatboshining bir qismi hisoblanadi; qatorni majburan uzish uchun uni ikki boʻshliq bilan tugating. Markdown ichida toʻgʻridan-toʻgʻri HTML ham yozishingiz mumkin. CommonMark bunga ruxsat beradi, ammo GFM kabi muhitlar xavfsizlik uchun baʼzi teglarni bloklaydi.
Markdown qayerda ishlatiladi?
- Dasturiy taʼminot ishlab chiqish: README, oʻzgarishlar jurnali va hissa qoʻshish qoʻllanmalari, shuningdek GitHub va GitLab kabi platformalardagi muammolar (issue) va kod tekshiruvi izohlari.
- Texnik hujjatlar: Markdown fayllardan veb-saytlar quradigan statik sayt generatorlari.
- Qaydlar yuritish: koʻplab qaydlar ilovalari qaydlarni Markdown sifatida saqlaydi yoki eksport qiladi.
- Chat va hamjamiyat platformalari: Reddit va Discord kabi platformalar Markdown variantlaridan foydalanadi.
- Yozish va nashr qilish: Pandoc kabi vositalar bilan bitta Markdown manbadan HTML, PDF, DOCX va EPUB yaratish.
- Sunʼiy intellekt vositalari: chat asosidagi AI yordamchilar javoblarini koʻpincha Markdown da formatlaydi.
Kuchli va zaif tomonlari
| Kuchli tomonlari | Zaif tomonlari |
|---|---|
| Hatto xom holida ham oʻqiladi | Variantlar turlicha ishlaydi |
| Oddiy matn: kichik, koʻchma, versiyalarni boshqarishga qulay | Shriftlar, ranglar va sahifa maketi yoʻq |
| HTML, PDF va Word ga oson aylanadi | Murakkab jadvallar (birlashtirilgan kataklar) yoʻq |
| Bir necha daqiqada oʻrganiladi | Rasmlar alohida fayllarda turadi |
| Hech qanday dasturga bogʻlanmagan | Boʻshliq va chekinish xatolari natijani oʻzgartiradi |
Markdown ni qaysi dasturlar ochadi?
Markdown oddiy matn boʻlgani uchun u istalgan matn muharririda, jumladan Bloknot va TextEdit da ochiladi. Formatlangan koʻrinish uchun Visual Studio Code dagi oʻrnatilgan Markdown oldindan koʻrish funksiyasidan yoki Obsidian va Typora kabi maxsus muharrirlardan foydalanishingiz mumkin. GitHub va GitLab omborlardagi .md fayllarni avtomatik koʻrsatadi. Word esa Markdown ni formatlangan matn sifatida ochmaydi, shuning uchun avval faylni konvertatsiya qilish kerak.
Keng tarqalgan muammolar va ularni hal qilish
Roʻyxat yoki sarlavha koʻrinmayapti
CommonMark sarlavha belgisidan keyin boʻshliq talab qiladi: ##Sarlavha emas, ## Sarlavha. Xatboshidan keyin keladigan roʻyxat ham toʻgʻri koʻrinishi uchun koʻpincha oraliqda boʻsh qator talab qiladi.
Qatorlar bir-biriga qoʻshilib ketadi
Bitta qator uzilishi xatboshini ajratmaydi. Yangi xatboshi uchun boʻsh qator qoldiring yoki xatboshi ichida qatorni uzish uchun uni ikki boʻshliq bilan tugating.
Jadval bir platformada ishlaydi, boshqasida ishlamaydi
Jadvallar Gruber ning asl Markdown iga ham, CommonMark yadrosiga ham kirmaydi; ular GFM kabi kengaytmalardan keladi. Maqsadli platforma qaysi variantni qoʻllab-quvvatlashini tekshiring.
Raqam bilan boshlanadigan xatboshi raqamli roʻyxatga aylanadi
"2024. serharakat yil boʻldi" kabi qator raqamlar va nuqta bilan boshlangani uchun roʻyxat sifatida talqin qilinishi mumkin. Bunga yoʻl qoʻymaslik uchun nuqtani teskari chiziq bilan ekranlang (2024\.).
Markdown fayllarni konvertatsiya qilish boʻyicha maslahatlar
Bizning konvertorimizda Markdown fayllar serverimizga yuklanadi va 30 daqiqa ichida oʻchiriladi. Oʻqish uchun CommonMark va GitHub uslubidagi kengaytmalar (jadvallar, vazifalar roʻyxati, izohlar, avtohavolalar) bilan Markdig kutubxonasidan foydalanamiz.
- Markdown dan PDF ga va Markdown dan Word ga konvertatsiya sarlavhalar, roʻyxatlar, kod bloklari, iqtiboslar va chegarali jadvallarni saqlaydi. Vazifalar roʻyxatidagi belgilash kataklari Word va PDF da koʻrinib turishi uchun ☑ va ☐ belgilariga aylantiriladi. Matn sukut boʻyicha 12 pt serifli shriftda, kod bloklari esa bir xil kenglikdagi shriftda teriladi.
- Markdown dan HTML ga konvertatsiya README ni belgilar kodlashi eʼlon qilingan, oʻzi yetarli veb-sahifaga aylantiradi.
- Teskari yoʻnalishda Word dan Markdown ga, HTML dan Markdown ga va PDF dan Markdown ga konvertatsiya GitHub bilan mos Markdown yaratadi: sarlavhalar, qalin va kursiv matn, roʻyxatlar, jadvallar, havolalar, kod bloklari va iqtiboslar saqlanadi; shriftlar, ranglar va sahifa maketi tashlab yuboriladi. Sarlavha qatori boʻlmagan jadvallarda birinchi qator sarlavhaga aylanadi, chunki GFM jadvallari buni talab qiladi. "1. Band" kabi raqam bilan boshlanadigan oddiy xatboshilar tasodifan roʻyxatga aylanib qolmasligi uchun ekranlanadi. Fayl BOM siz UTF-8 da saqlanadi.
Koʻp beriladigan savollar
MD faylni qanday ochish mumkin?
Uni istalgan matn muharriri ochadi. Formatlangan holda koʻrish uchun Visual Studio Code dagi oldindan koʻrish funksiyasidan yoki Markdown muharriridan foydalaning; Word da oʻqimoqchi boʻlsangiz, uni DOCX ga aylantiring.
CommonMark va GitHub Flavored Markdown oʻrtasida qanday farq bor?
CommonMark Markdown ning asosiy sintaksisini aniq qoidalar bilan belgilaydi. GFM esa CommonMark ustiga jadvallar, vazifalar roʻyxati, ustidan chizish va kengaytirilgan avtohavolalar kabi kengaytmalarni qoʻshadigan kengroq toʻplam.
Markdown da jadval yaratsa boʻladimi?
Ha, GFM kabi kengaytmalar bilan vertikal chiziqlar va defislar yordamida oddiy jadvallar yozishingiz mumkin. Birlashtirilgan kataklar kabi murakkab tuzilmalar uchun HTML jadvalidan foydalaning yoki hujjatni Word da tayyorlang.
Markdown va HTML oʻrtasida qanday farq bor?
Markdown HTML ga aylantirish uchun moʻljallangan soddaroq yozish formati. U HTML ifodalay oladigan hamma narsani ifodalay olmaydi, lekin xom koʻrinishi ancha oʻqiluvchan. Kerak boʻlganda Markdown ichida HTML yozishingiz ham mumkin.
Markdown ning rasmiy standarti bormi?
Gruber ning asl tavsifi rasmiy spetsifikatsiya emas. Bugungi kunda eng keng qabul qilingan aniq taʼrif CommonMark, text/markdown media turi esa 2016 yil martida RFC 7763 bilan roʻyxatga olingan.
Manbalar
- John Gruber, Daring Fireball: Markdown
- CommonMark Spec (versiyalar tarixi)
- GitHub Flavored Markdown Spec
- IETF RFC 7763: The text/markdown Media Type (2016 yil mart)
- IETF RFC 7764: Guidance on Markdown
- Wikipedia: Markdown (tarix, ikkilamchi manba)
- Markdig: .NET uchun CommonMark ga mos Markdown protsessori


