MD

Wat is een MD-bestand?

Platte tekst met een handvol opmaaktekens. Waarin vrijwel alle documentatie en zo goed als elke README geschreven is.

Wat MD is

MD is een puur tekstformaat dat in elke editor opengaat. Het wordt gebruikt voor bewerken en gegevens tussen programma’s verplaatsen.

De extensie is .md en de volledige naam Markdown. Allebei zeggen ze minder dan wat het bestand kan bevatten, en daar gaat de rest van deze pagina over.

Waar MD vandaan komt

Het gaat terug tot 2004. De specificatie is CommonMark.

De leeftijd is om een praktische reden interessant: hoe ouder een formaat, hoe meer programma’s de tijd hebben gehad om het te leren.

De specificatie is openbaar

Ze is volledig gepubliceerd, dus wie het formaat wil uitvoeren kan dat uit het document doen in plaats van door te kijken hoe anderen het doen. Daarom duikt het in zo veel programma’s op, en daarom gaan bestanden van twintig jaar geleden nog steeds open. Openbaar is niet hetzelfde als royaltyvrij: waar een formaat een codec omhult, is de octrooilicentie een aparte vraag waarop de standaard geen antwoord geeft.

Wat MD opent

Visual Studio Code, Obsidian en Typora lezen het, en de meeste programma’s van dezelfde soort ook.

Als een bestand niet opengaat ligt het zelden aan het formaat — vaker is het programma ouder dan het formaat. Converteren naar iets ouders is de betrouwbare weg eromheen, en daarvoor is de rest van deze site bedoeld.

Het in de browser openen

Geen enkele browser leest het.

Dat is veruit de meest voorkomende reden om het te converteren: niet dat het formaat slecht is, maar dat de plek waar je het bestand wilt tonen het niet kan lezen.

Het is een werkformaat

MD is bedoeld om te openen en te wijzigen. Houd het bestand in dit formaat zolang het werk loopt, en exporteer eruit wanneer er een afgeronde versie nodig is.

Waar Markdown voor dient

Markdown bestaat omdat HTML met de hand schrijven omslachtig is en een tekstverwerker een bestand oplevert dat niemand kan diffen. Het is een set conventies die al in gewone-tekst-e-mail in gebruik waren voordat ze een naam hadden: een regel die met een hekje begint is een kop, sterretjes om een woord maken het vet.

Die eigenschap is waarom het de documentatiewereld overnam. Een README, changelog of technische notitie in Markdown is een tekstbestand — het gaat in versiebeheer, twee mensen kunnen bewerken en samenvoegen, en een reviewer kan het verschil lezen zonder iets te renderen.

De smaken, en het ene verschil dat iedereen verrast

Er is geen enkele Markdown. De oorspronkelijke beschrijving uit 2004 was informeel en liet veel open, dus implementaties vulden de gaten verschillend in. CommonMark is de serieuze poging tot een precieze specificatie. GitHub Flavored Markdown is CommonMark plus een handvol toevoegingen.

De toevoeging die de meeste verwarring veroorzaakt: tabellen. Met verticale strepen gescheiden tabellen zijn geen onderdeel van CommonMark — het is een GitHub-uitbreiding. Een tabel die perfect rendert in een repository en elders als een rij strepen tevoorschijn komt, is geen kapot bestand.

Front matter, en waarom de bovenkant van het bestand vreemd oogt

Veel Markdown-bestanden openen met een blok tussen drie streepjes met iets als een titel, datum en tags. Dat is front matter — meestal YAML — en het is helemaal geen Markdown. Statische-sitegeneratoren lezen het als metadata en strippen het vóór het renderen.

Een tool die front matter niet kent, toont het als letterlijke tekst bovenaan de pagina. Begint een omgezet document met drie streepjes en sleutel-waardeparen, dan is dat wat er gebeurde.

Wat Markdown bewust niet kan

Geen paginaformaat, geen marge, geen lettertype, geen paginabreuk, geen voettekst. Dat is een kenmerk, geen omissie: het bestand beschrijft structuur en laat het uiterlijk over aan wat het rendert. Hetzelfde document wordt een webpagina, een PDF en een diapresentatie zonder herschreven te worden.

Er is ook geen commentaar en geen manier om "deze alinea is de derde revisie" te zeggen. Versiebeheer doet die taak in plaats daarvan, en beter.

Een afgewerkt document uit Markdown halen

De gebruikelijke bestemming is PDF, voor alles dat naar iemand gaat die niet uitmaakt waarin het geschreven werd. De omzetting maakt van de structuurmarkeringen echte opmaak: koppen worden koppen, codeblokken houden hun monospace-lettertype.

HTML is het andere gangbare doel, dichter bij een vertaling dan een omzetting omdat Markdown als afkorting daarvoor ontworpen is. DOCX is de moeite waard voor een specifieke situatie: een document geschreven in een teksteditor overdragen aan iemand die alleen een Word-bestand met bijgehouden wijzigingen accepteert.

Afbeeldingen en links zijn verwijzingen, geen inhoud

Een Markdown-bestand dat zes diagrammen toont, bevat geen diagrammen. Het bevat zes paden, en de afbeeldingen staan ernaast op schijf of op een server. Verplaats het bestand zonder de map eromheen en elke afbeelding is weg.

Dat telt bij het omzetten. Een converter kan alleen een plaatje insluiten dat hij kan vinden. Zijn de afbeeldingen het punt, zet dan om naar PDF, waar alles in één bestand eindigt.

Markdown bewerken zonder speciale software

Elke teksteditor volstaat — Kladblok, TextEdit, nano — want het bestand is tekst. Dat is de hele aantrekkingskracht, en waarom een Markdown-document uit 2004 vandaag opent zonder iets te installeren.

Speciale editors voegen een live voorbeeld toe, nuttig tijdens het schrijven en volledig irrelevant voor het bestand. Visual Studio Code, Obsidian en Typora renderen allemaal terwijl je typt; geen van drieën slaat iets op dat de anderen niet kunnen lezen.

De gegevens, op één plek

Kenmerken en herkomst van het formaat MD.
Extensie.md, .markdown
Mediatypetext/markdown
Voor het eerst gepubliceerd2004
SpecificatieCommonMark