In HTML zijn er twee tekens die een speciale behandeling vereisen: <
en &
. Linkerhoekhaken worden gebruikt om tags te starten; ampersands worden gebruikt om HTML-entiteiten aan te duiden. Als je ze als letterlijke tekens wilt gebruiken, moet je ze als entiteiten escapen (bijvoorbeeld &lt;
, &amp;
).
Vooral ampersands zijn vervelend voor webschrijvers. Als je over 'AT&T' wilt schrijven, moet je ' AT&amp;T
' schrijven. Je moet zelfs de ampersands binnen URL's weglaten. Als u dus wilt linken naar:
http://images.google.com/images?num=30&q=larry+bird
je moet de URL coderen als:
http://images.google.com/images?num=30&q=larry+bird
in uw ankertag href
-kenmerk. Vanzelfsprekend wordt dit gemakkelijk vergeten en is het waarschijnlijk de meest voorkomende bron van HTML-validatiefouten op overigens goed gemarkeerde websites.
Met Markdown kun je deze karakters op natuurlijke wijze gebruiken en zorg je voor alle noodzakelijke ontsnappingen. Als u een ampersand gebruikt als onderdeel van een HTML-entiteit, blijft deze ongewijzigd; anders wordt het vertaald in &
.
Dus als u een copyright-symbool in uw artikel wilt opnemen, kunt u het volgende schrijven:
©
en Markdown zal het met rust laten. Maar als je schrijft:
AT&T
Markdown vertaalt het naar:
AT&T
Op dezelfde manier, omdat Markdown inline HTML ondersteunt, zal Markdown ze als zodanig behandelen als u punthaken gebruikt als scheidingstekens voor HTML-tags. Maar als je schrijft:
4 < 5
Markdown vertaalt het naar:
4 < 5
Binnen Markdown-codereeksen en -blokken worden punthaken en ampersands echter altijd automatisch gecodeerd. Dit maakt het gemakkelijk om Markdown te gebruiken om over HTML-code te schrijven. (In tegenstelling tot onbewerkte HTML, wat een vreselijk formaat is om over HTML-syntaxis te schrijven, omdat elke afzonderlijke <
en &
in uw voorbeeldcode moet worden geëscaped.)
Backslash-ontsnappingen
Met Markdown kunt u backslash-escapes gebruiken om letterlijke tekens te genereren die anders een speciale betekenis zouden hebben in de opmaaksyntaxis van Markdown. Als u bijvoorbeeld een woord wilt omringen met letterlijke sterretjes (in plaats van een HTML <em>
-tag), kunt u backslashes vóór de sterretjes gebruiken, zoals dit:
\*literal asterisks\*
Markdown biedt backslash-escapes voor de volgende tekens:
\ backslash
` backtick
* asterisk
_ underscore
{} curly braces
[] square brackets
() parentheses
# hash mark
+ plus sign
- minus sign (hyphen)
. dot
! exclamation mark