Fayl formatları
Markdown nədir? Sintaksis, CommonMark və GFM
Markdown bir neçə simvolla sadə mətnə başlıqlar, siyahılar və keçidlər əlavə edən yüngül işarələmə dilidir. Onun tarixini, standartlarını və MD fayllarını Word-ə və ya PDF-ə çevirəndə nəyin qorunduğunu izah edirik.
Müəllif: Hemen Dönüştür Editör EkibiDərc olunub: 6 dəq oxuma

Proqram layihəsinin README faylını, qeyd tətbiqindəki başlıqlı siyahıları və ya çat tətbiqində ulduzlarla qalın etdiyiniz sözləri xatırlayın. Onların hamısının arxasında eyni ideya dayanır: Markdown. Markdown sadə mətnə bir neçə sadə simvol əlavə etməklə başlıqları, siyahıları, keçidləri və cədvəlləri təyin etməyə imkan verən yüngül işarələmə dilidir. Fayl istənilən mətn redaktorunda oxunaqlı qalır, lakin lazım olanda səliqəli HTML səhifəsinə, Word sənədinə və ya PDF-ə çevrilə bilir. Bu məqalədə Markdown-un necə yarandığı, onun əsas sintaksisi, CommonMark ilə GitHub Flavored Markdown arasındakı fərqlər və MD fayllarını çevirərkən nələrə diqqət etmək lazım olduğu izah edilir.
Markdown nədir?
Markdown həm yazı qaydaları toplusu, həm də bu qaydalarla yazılmış mətni HTML-ə çevirən alətlərin ümumi adıdır. Fayllar adətən .md və ya .markdown genişlənməsi ilə saxlanılır. Onun yaradıcısı John Gruber-in sözlərinə görə, əsas dizayn məqsədi oxunaqlılıqdır: Markdown sənədi teqlər və ya format göstərişləri ilə işarələnmiş kimi görünmədən, sadə mətn kimi olduğu kimi dərc oluna bilməlidir. HTML-də <strong>vacib</strong> lazım olduğu yerdə Markdown **vacib** yazır və hətta xam variant da təbii oxunur.
Qısa tarixçə
John Gruber Markdown-u 2004-cü ildə yaratdı; Aaron Swartz isə onun ideyalarını müzakirə etdiyi həmsöhbət kimi töhfə verdi. Sintaksis sadə mətnli e-poçt ənənələrinə (vurğu üçün ulduzlar, siyahılar üçün defislər) və setext, Textile kimi əvvəlki işarələmə dillərinə əsaslanırdı. Gruber-in Daring Fireball saytında dərc etdiyi Perl skripti Markdown.pl-in 1.0.1 versiyası 17 dekabr 2004-cü il tarixlidir.
Lakin Gruber-in təsviri rəsmi spesifikasiya deyil, nümunələrlə izah idi. Qeyri-müəyyən hallar (iç-içə siyahılar, girintili kod blokları, HTML-in qarışdırılması) hər tətbiqi öz seçimini etməyə vadar etdi və eyni mətn müxtəlif alətlərdə fərqli nəticə verməyə başladı. Buna iki əsas cavab gəldi:
- CommonMark (2014): John MacFarlane-in rəhbərlik etdiyi, Markdown-u birmənalı müəyyən edən və yüzlərlə nümunə ilə yoxlanıla bilən edən spesifikasiya. İlk versiyalar 2014-cü ilin payızında çıxdı; hazırkı versiya 28 yanvar 2024-cü il tarixli 0.31.2-dir. Spesifikasiya hələ 1.0 elan olunmayıb.
- GitHub Flavored Markdown (GFM, 2017): GitHub-ın CommonMark üzərində qurulmuş rəsmi spesifikasiyası. O, cədvəllər, tapşırıq siyahıları, üstündən xətt çəkmə, genişləndirilmiş avtokeçidlər və təhlükəsizlik üçün bəzi xam HTML teqlərinin süzgəcdən keçirilməsi kimi genişlənmələr əlavə edir. Son dərc olunmuş spesifikasiya 6 aprel 2019-cu il tarixli 0.29-gfm-dir.
Markdown internet infrastrukturunda da tanındı: 2016-cı ilin martında dərc olunan RFC 7763 text/markdown media növünü (MIME tipini) müəllifin nəzərdə tutduğu Markdown növünü bildirən isteğe bağlı variant parametri ilə qeydiyyata aldı.
Əsas Markdown növləri
CommonMark və GFM-dən başqa digər geniş yayılmış növlər də var. RFC 7763 ilə birlikdə dərc olunan RFC 7764 onlardan bir neçəsini qeydiyyata aldı və istifadə üzrə tövsiyələr verdi:
- Markdown Extra: izahatlar (footnotes), tərif siyahıları və cədvəllər əlavə edən erkən genişlənmə.
- MultiMarkdown: metaməlumatlar, sitatlar və çarpaz istinadlarla akademik yazıya yönəlmiş növ.
- Pandoc Markdown: kitab və məqalə yazmaq üçün çoxlu genişlənmələri olan, Pandoc çeviricisinin istifadə etdiyi növ.
Praktik qayda: sənədinizdə yalnız başlıqlar, siyahılar, keçidlər, kod və sadə cədvəllər varsa, o, demək olar ki, hər yerdə eyni görünəcək. İzahatlara, tərif siyahılarına və ya xüsusi blok növlərinə əsaslanırsınızsa, hədəf mühitin hansı növü dəstəklədiyini yoxlayın.
Əsas sintaksis
Markdown-un gündəlik lazım olan hissəsini bir neçə dəqiqəyə öyrənmək olar:
# Birinci səviyyə başlıq
## İkinci səviyyə başlıq
Bu abzasda **qalın**, *kursiv* və `kod` var.
- Markerli siyahı
- İkinci bənd
- Girintili alt bənd
1. Nömrəli siyahı
2. İkinci addım
[Keçid mətni](https://example.com)

> Sitat bloku
```
Çoxsətirli kod bloku
``` GFM ilə əlavə olunan cədvəllər və tapşırıq siyahıları belə görünür:
| Format | Genişlənmə |
|--------|-----------|
| Markdown | .md |
| Sadə mətn | .txt |
- [x] Qaralamanı yaz
- [ ] Nəzərdən keçir Abzaslar boş sətirlərlə ayrılır. Tək sətir keçidi əksər tətbiqlərdə eyni abzasın davamı sayılır; sətri məcburi keçirmək üçün sətrin sonuna iki boşluq qoyun. Markdown-un içində birbaşa HTML də yaza bilərsiniz. CommonMark buna icazə verir, lakin GFM kimi mühitlər təhlükəsizlik üçün bəzi teqləri bloklayır.
Markdown harada istifadə olunur?
- Proqram təminatının hazırlanması: README-lər, dəyişiklik jurnalları və töhfə bələdçiləri, həmçinin GitHub və GitLab kimi platformalarda issue-lar və kod icmalı şərhləri.
- Texniki sənədləşmə: Markdown fayllarından sayt quran statik sayt generatorları.
- Qeyd aparma: bir çox qeyd tətbiqi qeydləri Markdown kimi saxlayır və ya ixrac edir.
- Çat və icma platformaları: Reddit və Discord kimi platformalar Markdown növlərindən istifadə edir.
- Yazı və nəşr: Pandoc kimi alətlərlə vahid Markdown mənbəyindən HTML, PDF, DOCX və EPUB yaratmaq.
- Süni intellekt alətləri: çat əsaslı süni intellekt köməkçiləri cavablarını çox vaxt Markdown ilə formatlayır.
Güclü və zəif tərəfləri
| Güclü tərəflər | Zəif tərəflər |
|---|---|
| Xam halda belə oxunaqlıdır | Növlər fərqli davranır |
| Sadə mətn: kiçik, daşınan, versiya nəzarəti ilə uyğun | Şrift, rəng və ya səhifə tərtibatı yoxdur |
| HTML, PDF və Word-ə asanlıqla çevrilir | Mürəkkəb cədvəllər (birləşdirilmiş xanalar) yoxdur |
| Bir neçə dəqiqəyə öyrənilir | Şəkillər ayrı fayllarda saxlanılır |
| Heç bir proqrama bağlı deyil | Boşluq və girinti səhvləri nəticəni dəyişir |
Markdown-u hansı proqramlar açır?
Markdown sadə mətn olduğu üçün Notepad və TextEdit də daxil olmaqla istənilən mətn redaktorunda açılır. Formatlı önizləmə üçün Visual Studio Code-un daxili Markdown önizləməsindən və ya Obsidian, Typora kimi xüsusi redaktorlardan istifadə edə bilərsiniz. GitHub və GitLab repozitoriyalardakı .md fayllarını avtomatik göstərir. Word isə Markdown-u formatlı mətn kimi açmır, ona görə də faylı əvvəlcə çevirmək lazımdır.
Tez-tez rast gəlinən problemlər və həlləri
Siyahı və ya başlıq görünmür
CommonMark başlıq işarəsindən sonra boşluq tələb edir: ##Başlıq yox, ## Başlıq. Abzasdan sonra gələn siyahının düzgün göstərilməsi üçün də çox vaxt aralarında boş sətir lazım olur.
Sətirlər bir-birinə qarışır
Tək sətir keçidi abzası bölmür. Yeni abzas üçün boş sətir buraxın və ya abzas daxilində sətri keçirmək üçün sətrin sonuna iki boşluq qoyun.
Cədvəl bir platformada işləyir, digərində yox
Cədvəllər Gruber-in orijinal Markdown-unun və ya CommonMark nüvəsinin hissəsi deyil; onlar GFM kimi genişlənmələrdən gəlir. Hədəf platformanın hansı növü dəstəklədiyini yoxlayın.
Rəqəmlə başlayan abzas nömrəli siyahıya çevrilir
"2024. il çox gərgin keçdi" kimi sətir rəqəmlər və nöqtə ilə başladığı üçün siyahı kimi təhlil oluna bilər. Bunun qarşısını almaq üçün nöqtəni tərs xətlə ekranlaşdırın (2024\.).
Markdown fayllarını çevirmək üçün tövsiyələr
Bizim çeviricidə Markdown faylları serverimizə yüklənir və 30 dəqiqə ərzində silinir. Oxumaq üçün CommonMark və GitHub üslubunda genişlənmələrlə (cədvəllər, tapşırıq siyahıları, izahatlar, avtokeçidlər) Markdig kitabxanasından istifadə edirik.
- Markdown-dan PDF-ə və Markdown-dan Word-ə çevirmə başlıqları, siyahıları, kod bloklarını, sitat bloklarını və haşiyəli cədvəlləri saxlayır. Tapşırıq siyahısındakı işarə qutuları Word-də və PDF-də görünən qalması üçün ☑ və ☐ simvollarına çevrilir. Mətn standart olaraq 12 pt serifli şriftlə, kod blokları isə sabit enli şriftlə yazılır.
- Markdown-dan HTML-ə çevirmə README faylını simvol kodlaşdırması elan olunmuş müstəqil veb səhifəyə çevirir.
- Əks istiqamətdə Word-dən Markdown-a, HTML-dən Markdown-a və PDF-dən Markdown-a çevirmə GitHub ilə uyğun Markdown yaradır: başlıqlar, qalın və kursiv mətn, siyahılar, cədvəllər, keçidlər, kod blokları və sitat blokları saxlanılır; şriftlər, rənglər və səhifə tərtibatı atılır. Başlıq sətri olmayan cədvəllərdə birinci sətir başlığa çevrilir, çünki GFM cədvəlləri başlıq tələb edir. "1. Bənd" kimi rəqəmlə başlayan adi abzaslar təsadüfən siyahıya çevrilməməsi üçün ekranlaşdırılır. Fayl BOM-suz UTF-8 kimi saxlanılır.
Tez-tez verilən suallar
MD faylını necə açım?
İstənilən mətn redaktoru onu açacaq. Formatlı görmək üçün Visual Studio Code-un önizləməsindən və ya Markdown redaktorundan istifadə edin; Word-də oxumaq istəyirsinizsə, onu DOCX-ə çevirin.
CommonMark ilə GitHub Flavored Markdown arasında fərq nədir?
CommonMark Markdown-un əsas sintaksisini dəqiq qaydalarla müəyyən edir. GFM isə CommonMark-ın üzərinə cədvəllər, tapşırıq siyahıları, üstündən xətt çəkmə və genişləndirilmiş avtokeçidlər kimi genişlənmələr əlavə edən üst çoxluqdur.
Markdown-da cədvəl yaratmaq olarmı?
Bəli, GFM kimi genişlənmələrlə şaquli xətlər və defislərdən istifadə edərək sadə cədvəllər yaza bilərsiniz. Birləşdirilmiş xanalar kimi mürəkkəb strukturlar üçün HTML cədvəlindən istifadə edin və ya sənədi Word-də hazırlayın.
Markdown ilə HTML arasında fərq nədir?
Markdown HTML-ə çevrilmək üçün nəzərdə tutulmuş daha sadə yazı formatıdır. O, HTML-in ifadə edə bildiyi hər şeyi ifadə edə bilmir, lakin xam forması xeyli oxunaqlıdır. Lazım olanda Markdown-un içində yenə də HTML yaza bilərsiniz.
Markdown-un rəsmi standartı varmı?
Gruber-in orijinal təsviri rəsmi spesifikasiya deyil. Bu gün ən geniş qəbul olunmuş dəqiq tərif CommonMark-dır, text/markdown media növü isə 2016-cı ilin martında RFC 7763 ilə qeydiyyata alınıb.
Mənbələr
- John Gruber, Daring Fireball: Markdown
- CommonMark Spec (versiya tarixçəsi)
- GitHub Flavored Markdown Spec
- IETF RFC 7763: The text/markdown Media Type (mart 2016)
- IETF RFC 7764: Guidance on Markdown
- Wikipedia: Markdown (tarixçə, ikinci dərəcəli mənbə)
- Markdig: .NET üçün CommonMark ilə uyğun Markdown prosessoru


