Nalepite Markdown i dobijate HTML koji možete ubaciti u stranicu, šablon ili polje u CMS-u — ili prebacite na prikaz da vidite kako se prikazuje. Podržani su naslovi, isticanje, linkovi, slike, ugnežđene liste, citati, blokovi koda i tabele sa uspravnim crtama. HTML iz vašeg teksta se ispisuje kao tekst, a ne izvršava, pa je prikaz bezbedan i za tekst koji nije vaš.
Sirovi HTML iz teksta se ispisuje kao tekst, a ne izvršava, a adrese linkova su ograničene na http, https, mailto, tel i relativne putanje — pa je prikaz bezbedan i za tekst koji nije vaš.
Kako radi
Pretvaranje ide u dva prolaza. Prvo se dokument deli na blokove: linija koja počinje sa jednom do šest tarabi je naslov, tri ili više crtica su horizontalna linija, blok između tri kvačice je kod, linije sa „>“ su citat, linije sa crticom ili brojem su lista, red sa uspravnim crtama iza kog sledi red crtica je tabela, a sve ostalo je pasus. Zatim tekst svakog bloka prolazi kroz drugi prolaz: kod u liniji, slike, linkovi, podebljano, kurziv, precrtano.
U tom drugom prolazu redosled je bitan. Svaki znak se prvo pretvori u HTML zapis (escape), pa se delovi sa kodom izdvoje u stranu da pravila za isticanje ne mogu da uđu u njih — zato `**nije podebljano**` u kvačicama ostaje bukvalno. Donje crte se tumače kao isticanje samo na granicama reči, pa imena_tipa_snake_case ostaju cela, što obični konverteri redovno pokvare.
Adrese u linkovima i slikama prolaze kroz listu dozvoljenih šema: http, https, mailto, tel, kao i relativne putanje i sidra. Sve ostalo — javascript:, data:, vbscript: — ostaje bez adrese, a tekst linka se ispisuje kao običan tekst. Uz to što se svaki znak unosa prethodno pretvori u zapis, upravo zbog toga je živi prikaz bezbedno prikazivati direktno u stranici.
Jedna namerna razlika od CommonMark standarda: pravi Markdown propušta sirovi HTML, a ovaj alat ne. Pretvaranje HTML-a u tekst je ispravno podrazumevano ponašanje za konverter koji prikazuje nalepljen tekst, ali znači da će dokument sa <div> omotačima ili sa iframe-om te oznake pokazati kao tekst, a ne primeniti ih. Izvan podržanog podskupa su i linkovi sa referencama, fusnote i naslovi podvučeni znacima = i -.
Primeri iz prakse
README u veb stranicu
Nalepite README projekta sa naslovima, listom i blokom koda i dobijate odgovarajuće h1/h2, ul/li i pre/code oznake — spremno za stranicu dokumentacije, bez uvlačenja Markdown biblioteke u build.
Tabela iz specifikacije
Tri linije „| Polje | Tip |“, „|:---|---:|“ i „| id | int |“ postaju cela tabela sa thead, tbody i poravnanjem po kolonama koje se čita iz dvotačaka u redu sa crticama.
Provera tuđeg Markdown teksta
Nalepite tekst iz nepoznatog izvora koji sadrži <script>alert(1)</script> i [link](javascript:alert(1)). Oznaka skripte se pojavljuje kao vidljiv tekst, link ostaje bez adrese — vidite šta dokument piše, a ništa od toga se ne izvršava.
Ugnežđena lista za CMS
Uvlačenje od dva razmaka pod crticom pravi ugnežđeni ul unutar nadređenog li, što polje za bogati tekst u CMS-u i očekuje. Konverteri bez ugnežđavanja umesto toga daju dve liste jednu do druge i uvlačenje tiho nestaje.
Česta pitanja
Koje Markdown mogućnosti su podržane?
Naslovi (# do ######), pasusi sa sačuvanim prelomima linija, podebljano, kurziv, kombinacija, precrtano, kod u liniji, blokovi koda sa oznakom jezika, linkovi, slike, obične i numerisane liste uz ugnežđavanje, citati, horizontalne linije i GFM tabele sa poravnanjem.
Šta nije podržano?
Linkovi sa referencama ([tekst][ref]), fusnote, naslovi podvučeni znacima = i -, definicione liste, kvadratići za zadatke kao prava polja i propuštanje sirovog HTML-a. To su ili retke stvari u nalepljenom tekstu ili nebezbedne za prikaz, a bez njih je izlaz predvidiv.
Zašto se moj HTML prikazuje kao tekst umesto da se primeni?
Zato što se svaki znak pre pretvaranja prevodi u HTML zapis. To je ustupak koji čini prikaz nalepljenog teksta bezbednim: nijedna oznaka iz izvora ne može da se izvrši ni da promeni strukturu stranice. Ako vam treba propuštanje HTML-a, koristite biblioteku u build procesu.
Je li živi prikaz bezbedan?
Da, po konstrukciji, a ne naknadnim filtriranjem. Unos se prevodi u zapis, sadržaj koda se izdvaja, a šeme adresa se biraju iz spiska dozvoljenih, pa nema puta kojim bi skripta došla do DOM-a. Ništa se ne skida posle, a tu naknadnu fazu obično i probijaju napadi na filtere.
Kako da nasilno prelomim red unutar pasusa?
Završite liniju sa dva razmaka ili obrnutom kosom crtom. Oba daju <br />. Jedan prelom bez toga ostaje u izlazu kao prelom unutar istog pasusa, što HTML prikazuje kao razmak — standardno Markdown ponašanje.
Zadržava li oznaku jezika za bojenje sintakse?
Da: ```js postaje <code class="language-js">, dogovor koji očekuju Prism i highlight.js. Alat sam ne boji sintaksu — samo ostavlja oznaku za onaj bojilac koji vaša stranica već koristi.
Zašto moj *kurziv* nije prikazan?
Isticanje traži da znak stoji uz tekst: *reč* radi, * reč * ne radi, a zvezdica unutar reči se ostavlja. Ako u tekstu zvezdice imaju bukvalno značenje, stavite ih u kvačice pa se tretiraju kao kod.
Mogu li da pretvorim ceo fajl?
Nalepite njegov sadržaj — to je najbrži put i nema ograničenja veličine osim onog koje postavlja pregledač. Slanje fajla namerno ne postoji: dokument ne mora da napusti računar da bi bio pretvoren.
Šta se dešava sa tabelom kojoj fali ćelija?
Red sa zaglavljem određuje broj kolona, a kraćim redovima se na kraju dodaju prazne ćelije. Tako kolone ostaju poravnane, umesto da se preostale vrednosti pomere jedno mesto ulevo, što se dešava kada konverter samo cepa red po uspravnim crtama.
Traži li izlaz neki CSS okvir?
Ne. HTML je običan i semantičan — h2, ul, pre, table — pa nasleđuje stilove vaše stranice. Prikaz ovde dodaje svoj lokalni stil samo da bi liste i tabele izgledale kako treba na ovoj stranici.
Je li izlaz minifikovan?
Ne, blokovi su razdvojeni prelomima da izlaz ostane čitljiv i pregledan u diff-u. Ako vam treba zbijeno, propustite rezultat kroz alat za minifikaciju HTML-a.
Da li se ono što nalepim negde šalje?
Ne. Pretvaranje je čista funkcija koja radi u stranici: nema servera, nema čuvanja, nema analitike nad sadržajem. Osvežite stranicu i dokumenta nema.
Srodni alati
HTML entiteti
Kodirajte tekst u HTML entitete ili dekodirajte imenovane, decimalne i heks entitete nazad u znakove. U pregledaču.
Alati za programere
HTML minifikacija
Minifikujte HTML u pregledaču — uklonite komentare i sažmite razmake uz zaštitu pre, script i style. Ništa se ne šalje.
Alati za programere
Velika i mala slova
Pretvorite tekst u VELIKA SLOVA, mala slova, Naslovna Slova ili rečenični oblik — uz ispravno tretiranje č, ć, š, đ, ž.
Alati za tekst
JSON u XML
Pretvorite JSON u uvučen XML u pregledaču — objekti postaju ugnežđeni elementi, nizovi se ponavljaju, uz podršku za naziv korena. Ništa se ne šalje.
Alati za programere
Dinari u evre
Pretvarajte srpske dinare u evre (i nazad) po zvaničnom srednjem kursu NBS, uz prikazan datum kursa.
Finansije i plata
Koraci u kilometre
Pretvorite korake u kilometre i obrnuto, uz dužinu koraka izračunatu iz vaše visine i toga da li hodate ili trčite. Radi u pregledaču.
Zdravlje i fitnes