Dokument Markdown (.md)

Specifikacija Standard

Markdown (MD) je najpopularniji laki jezik za označavanje na svetu, koji je dizajnirao Džon Gruber (John Gruber) da bude izuzetno lako čitljiv i pišljiv kao običan tekst, uz čisto pretvaranje u strukturirani HTML.

Pregled i metapodaci

Operativni sistemi i analizatori datoteka identifikuju Markdown datoteke proverom početnog binarnog niza bajtova:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

Potpis zaglavlja na nivou bajtova (magični bajtovi)

Operativni sistemi i analizatori datoteka identifikuju Markdown datoteke proverom početnog binarnog niza bajtova:

HEKSADECIMALNI POTPIS (OFFSET 0):

Nema fiksnog potpisa (Markdown je običan tekst)

ASCII REPREZENTACIJA: Nema fiksnog potpisa

Standardizacija: Specifikacija CommonMark / GitHub Flavored Markdown (GFM)

Tehničke specifikacije

Arhitektura kontejneraObična UTF-8 tekstualna datoteka koja koristi lagano formatiranje interpunkcijom (naslovi, liste, podebljavanje, kurziv, blokovi koda)
KompresijaNekomprimovan tekst (lako se komprimuje pomoću Gzip ili Brotli)
Bajtni redosled (Endianness)Tekstualni tok UTF-8 / Unicode
Prostori bojaNije primenljivo (tekstualni jezik za označavanje)
Kanali i strukturaNaslovi, blok-citati, neuređene/uređene liste, ograde za kod, hiperveze, slike i tabele
Maksimalne dimenzijeNeograničena dužina tekstualnog dokumenta
TransparentnostNema (čist tekst)
Strimovanje i progresivno učitavanjePostepena tokenizacija blokova i elemenata unutar reda, red po red

Tehnička matrica poređenja: Markdown u odnosu na konkurente

Tehnički atributMarkdown (Trenutno)HTMLTXTPDF
Jednostavnost pisanjaIzuzetno brzo kucanje običnog tekstaOpširna sintaksa oznaka (<p>, <div>)Brzo kucanje (bez formatiranja)Zahteva grafički uređivač rasporeda
Čitljivost za ljude (sirovi tekst)Izuzetna čitljivost običnog tekstaPretrpano oznakama i zagradamaIzuzetna čitljivost tekstaBinarni nečitljivi sirovi bajtovi
HTML konverzijaDirektan deterministički izlaz 1 na 1Izvorni jezik vebaZahteva ručno formatiranjeFiksni grafički izlaz
Alati za programerePodrška se razlikuje u zavisnosti od programa.Podrška se razlikuje u zavisnosti od programa.Podrška se razlikuje u zavisnosti od programa.Distribucija dokumenata

Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak

Blokovi koda se prikazuju kao obični pasusi ili se zaglavlja ne formatiraju.

Osnovni uzrok: Nedostaje razmak nakon simbola '#' za zaglavlje ili zatvorene trostruke obrnute apostrofe (```) za blokove koda.

Oporavak: Validirajte i ponovo formatirajte Markdown sintaksu pomoću File2File.app Markdown Linter alata.

Bezbednosna analiza i vektori napada parsera

Markdown konverteri često podrazumevano dozvoljavaju sirovi ugrađeni HTML, što može dovesti do skriptovanja na više lokacija (XSS) ako se HTML ne sanira.

Poznati vektori napada

  • XSS injekcija kroz sirove HTML elemente (npr. '<script>' ili '<img onerror=...>') ugrađene unutar Markdown teksta.
  • Uskraćivanje usluge (DoS) kroz duboko ugnežđene strukture blok-citatâ ili lista u neusklađenim parserima.
  • Zlonamerne šeme hiperveza ('javascript:') unutar sintakse Markdown veza.

Najbolje prakse za zaštitu: Uvek sanirajte generisani HTML izlaz pomoću DOMPurify i zabranite nebezbedne URI protokole.

Istorijat i prekretnice

2017GitHub Flavored Markdown (GFM) je standardizovan na osnovu formalne CommonMark specifikacije.
2014Inicijativu CommonMark pokrenuli Džef Atvud (Jeff Atwood) i Džon Makfarlan (John MacFarlane) radi standardizacije dvosmislenih graničnih slučajeva Markdowna.
2004Džon Gruber i Aron Švarc (Aaron Swartz) izdaju originalnu Markdown 1.0 specifikaciju i Perl skriptu za konverziju.

Ključne prednosti

  • Maksimalna čitljivost za ljude: formatirani tekst izgleda čisto i prirodno čak i kada se gleda u osnovnom terminalu ili uređivaču običnog teksta.
  • Markdown se često koristi u dokumentaciji, ali se sintaksa i prikaz razlikuju među alatima.
  • Nema zaključavanja kod određenog dobavljača (vendor lock-in): datoteke sa običnim tekstom ostaće čitljive vekovima bez vlasničkog softvera za pregled.

Tehnička ograničenja i nedostaci

  • Originalna specifikacija iz 2004. imala je dvosmislena pravila parsiranja, što je dovelo do suptilne fragmentacije dijalekata (CommonMark vs GFM vs Kramdown).
  • Nema izvornu podršku za složene funkcije preloma stranice, kao što su višestruki stubci u stilu časopisa, prelamanje teksta ili brojevi stranica.
  • Ugrađene slike se povezuju spolja umesto da se čuvaju unutar datoteke dokumenta.

Zanimljivosti

  • Aron Švarc, koji je sa Džonom Gruberom razvio Markdown sa 17 godina, takođe je suosnivač Reddita i tvorac RSS 1.0.
  • Mnogi GitHub repozitorijumi koriste datoteku README.md da predstave projekat, ali repozitorijumi mogu da koriste i druga imena ili da nemaju takvu datoteku.
  • Filozofija dizajna Markdowna navodi: 'Glavni cilj dizajna za Markdown sintaksu formatiranja jeste da ona bude što čitljivija.'

Često postavljana tehnička pitanja

Čemu služi Markdown?

Markdown se koristi za pisanje dokumentacije i GitHub README fajlova, objavljivanje tekstova na blogovima, vođenje beleški u aplikacijama kao što su Obsidian i Notion, kao i za pisanje poruka na platformama kao što su Discord i Slack.

Kako mogu da konvertujem Markdown u PDF ili HTML?

Možete da konvertujete Markdown (.md) datoteke u stilizovane PDF dokumente ili čist HTML kod jednim klikom pomoću File2File.app, direktno u veb-pregledaču.

Šta je GitHub Flavored Markdown (GFM)?

GFM je GitHubova proširena verzija Markdowna koja dodaje podršku za tabele, liste zadataka s poljima za potvrdu ([x]), precrtani tekst (~~text~~) i blokove koda s isticanjem sintakse.