Het verhaal achter de Markdown-editor

Markdown is een manier om opgemaakte tekst te schrijven die als platte tekst nog steeds natuurlijk leest. Sterretjes voor nadruk, hekjes voor koppen en streepjes voor lijsten kwamen uit de manier waarop mensen al e-mails schreven. Deze pagina vertelt hoe dat eenvoudige idee de taal werd van README-bestanden, notities en documentatie.

Een open notitieboek en een gloeiend gesplitst scherm met platte tekst aan de ene kant en opgemaakte tekst aan de andere kant op een donker bureau
Een open notitieboek en een gloeiend gesplitst scherm met platte tekst aan de ene kant en opgemaakte tekst aan de andere kant op een donker bureau

Geboren uit e-mail

In 2004 publiceerde John Gruber Markdown op zijn site Daring Fireball, met hulp van Aaron Swartz. Het doel was tekst die zoals hij is makkelijk te lezen en te schrijven is en toch netjes naar HTML omgezet wordt. Veel conventies kwamen uit e-mail en oudere tekstformaten zoals Setext: een regel onderstrepen met isgelijktekens voor een kop, een woord tussen sterretjes zetten voor nadruk en regels met een streepje beginnen voor een lijst. De eerste converter was één Perl-script.

Te veel dialecten

De oorspronkelijke beschrijving liet veel randgevallen open, zoals hoe ver een geneste lijst moet inspringen of wanneer een lege regel een blok beëindigt. Elke nieuwe implementatie koos anders, zodat dezelfde tekst er op verschillende sites anders uit kon zien. In 2014 publiceerden John MacFarlane, Jeff Atwood en anderen een precieze specificatie met honderden voorbeelden. Die heette eerst Standard Markdown en werd na bezwaren van Gruber hernoemd tot CommonMark.

GitHub Flavored Markdown

GitHub maakte Markdown met README-bestanden, issues en reacties onderdeel van het dagelijkse werk van programmeurs. In 2017 publiceerde het een formele specificatie voor GitHub Flavored Markdown als strikte uitbreiding van CommonMark. Die voegt tabellen met kolomuitlijning toe, takenlijsten met selectievakjes, doorhalen met twee tildes en automatisch herkende links. Omheinde codeblokken met een taalnaam, al populair, maakten syntaxismarkering mogelijk.

Waarom voorbeelden opgeschoond worden

Markdown staat ruwe HTML toe, handig maar riskant. Toont een pagina Markdown van iemand anders, dan kunnen een verborgen scripttag, een onerror-attribuut op een afbeelding of een javascript-link code uitvoeren in de browser van de lezer, een aanval die cross site scripting heet. Daarom toont deze editor ruwe HTML als tekst, verwijdert hij onveilige linkschema's en filtert hij het resultaat vóór weergave door een lijst van toegestane elementen en attributen.

Veelgestelde vragen

Wie heeft Markdown bedacht?

John Gruber maakte Markdown in 2004, met Aaron Swartz als belangrijke vroege medewerker en tester.

Wat is het verschil tussen CommonMark en GFM?

CommonMark is een precieze specificatie van de kern van Markdown. GitHub Flavored Markdown bouwt daarop voort en voegt tabellen, takenlijsten, doorhalen en automatische links toe.

Waarom wordt mijn HTML als tekst getoond?

Voor de veiligheid. Ruwe HTML kan scripts bevatten, dus de editor maskeert die en maakt alleen elementen waarvan hij weet dat ze onschadelijk zijn.

Klaar om het te proberen?

Open PictorX in uw browser - geen installatie, geen creditcard vereist om te starten.

Open de Markdown-editor