Dokument Markdown (.md)
CommonMark StandardnoMarkdown (MD) najpopularniji je svjetski laki označni jezik (lightweight markup language) koji je dizajnirao John Gruber kako bi bio iznimno lako čitljiv i pisao se kao običan tekst, uz čisto pretvaranje u strukturirani HTML.
Pregledaj i metapodaci
Operativni sustavi i alati za analizu datoteka identificiraju Markdown datoteke provjerom početnog niza binarnih bajtova:
Potpis zaglavlja na razini bajtova (Magic Bytes)
Operativni sustavi i alati za analizu datoteka identificiraju Markdown datoteke provjerom početnog niza binarnih bajtova:
HEX POTPIS (POMAK 0):
23 20 / 2D 2D 2DASCII PRIKAZ: # / ---
Standardizacija: CommonMark Specification / GitHub Flavored Markdown (GFM)
Tehničke specifikacije
| Arhitektura spremnika | Plain UTF-8 text file utilizing lightweight punctuation formatting (headings, lists, bold, italics, code blocks) |
| Kompresija | Uncompressed text (readily compressed with Gzip or Brotli) |
| 字节序 | UTF-8 / Unicode text stream |
| Prostori boja | N/A (Plaintext Markup) |
| Kanali i struktura | Headings, blockquotes, unordered/ordered lists, code fences, hyperlinks, images, and tables |
| Maksimalne dimenzije | Unbounded text document length |
| Prozirnost | None (pure text) |
| Streaming i progresivno | Streaming line-by-line block and inline tokenization |
Tehnička matrica usporedbe: Markdown vs Konkurencija
| Tehnički atribut | Markdown (Trenutno) | HTML | TXT | |
|---|---|---|---|---|
| Jednostavnost pisanja | Iznimno brzo tipkanje običnog teksta | Opsežna sintaksa oznaka (<p>, <div>) | Brzo tipkanje (bez formatiranja) | Zahtijeva grafički uređivač izgleda |
| Čitljivost za čovjeka (sirovo) | Netaknuta prirodna čitljivost teksta | Zagušeno oznakama i zagradama | Netaknuta čitljivost teksta | Binarni nečitljivi sirovi bajtovi |
| HTML konverzija | Izravan deterministički izlaz 1 na 1 | Matični web-jezik | Zahtijeva ručno formatiranje | Fiksni grafički izlaz |
| Alati za razvojne programere | Univerzalno u Git-u, GitHub-u, dokumentaciji | Univerzalno u web-razvoju | Univerzalna osnovna pohrana | Distribucija dokumenata |
Uobičajeni načini oštećenja i vodič za heksadecimalni oporavak
Blokovi koda prikazuju se kao obični odlomci ili se zaglavlja ne uspijevaju formatirati.
Temeljni uzrok: Nedostaje razmak nakon simbola '#' za zaglavlje ili nezatvorene trostruke obrnute apostrofe (```) za blokove koda.
Oporavak: Provjerite valjanost i ponovno formatirajte Markdown sintaksu pomoću File2File Markdown Lintera.
Sigurnosna analiza i vektori napada na parser
Pretvarači Markdowna često zadano omogućuju sirovi ugrađeni HTML, što može uvesti napade skriptiranjem na međusobnim web-mjestima (XSS) ako se sadržaj ne očisti.
Poznati vektori napada
- XSS injekcija putem sirovih HTML elemenata (npr. '<script>' ili '<img onerror=...>') ugrađenih unutar Markdown teksta.
- Uskraćivanje usluge (DoS) putem duboko ugniježđenih struktura citata ili popisa u parserima koji nisu sukladni standardima.
- Zlonamjerne sheme hiperveza ('javascript:') unutar sintakse poveznica u Markdownu.
Najbolje obrambene prakse:
Povijesni izvori i prekretnice
Ključne prednosti
- Maksimalna čitljivost za čovjeka: formatirani tekst izgleda čisto i prirodno čak i kada se pregledava u osnovnom terminalu ili uređivaču običnog teksta.
- Univerzalni standard u softverskoj industriji: pokreće GitHub README datoteke, Discord poruke, Reddit komentare, dokumentaciju (Obsidian, Notion) i generatore statičkih web-mjesta.
- Nema vezivanja uz određenog dobavljača (vendor lock-in): datoteke s običnim tekstom ostat će čitljive stoljećima bez vlasničkog softvera za pregledavanje.
Tehnička ograničenja i nedostaci
- Izvorna specifikacija iz 2004. imala je dvosmislena pravila parsiranja, što je dovelo do suptilne fragmentacije dijlekata (CommonMark vs. GFM vs. Kramdown).
- Nema izvornu podršku za složene značajke izgleda stranice poput višestupčanih časopisnih izgleda, prelamanja teksta ili brojeva stranica.
- Ugrađene slike povezane su izvana umjesto da su pohranjene unutar datoteke dokumenta.
Zanimljive tehničke činjenice
- Aaron Swartz, koji je suosnovao Markdown s Johnom Gruberom u dobi od 17 godina, također je suosnivač Reddita i kreator RSS-a 1.0.
- Svako pojedino GitHub spremište na svijetu koristi datoteku 'README.md' kako bi predstavilo svoj izvorni kod razvojnim programerima.
- Filozofija dizajna Markdowna navodi: 'Glavni cilj dizajna za Markdownovu sintaksu formatiranja jest učiniti je što je moguće čitljivijom.'
Često postavljana tehnička pitanja
Za što se koristi Markdown?
Markdown se koristi za pisanje dokumentacije, GitHub README datoteka, objava na blogovima, bilješki u aplikacijama poput Obsidiana i Notiona te za sastavljanje poruka na platformama poput Discorda i Slacka.
Kako mogu pretvoriti Markdown u PDF ili HTML?
Markdown (.md) datoteke možete jednim klikom pretvoriti u stilizirane PDF dokumente ili čisti HTML kôd pomoću alata File2File.app izravno u svom web pregledniku.
Što je GitHub Flavored Markdown (GFM)?
GFM je GitHubova proširena verzija Markdowna koja dodaje podršku za tablice, popise zadataka s potvrdnim okvirima ([x]), precrtani tekst (~~text~~) i blokove koda s istaknutom sintaksom.