markdown links with parentheses 29. Jan 2009
Wer beim Verfassen von Webinhalten nicht mit unhandlichem HTML-Konstrukten hantieren möchte und darüber hinaus sicherstellen möchte, dass seine Website aus validem HTML-Code besteht, der benutzt in aller Regel Textile oder Markdown um seine Texte zu formatieren. Für letztere Auszeichnungssprache gibt es bekanntermaßen zwei Möglichkeiten Links zu formatieren.
[Beispieltext](http://beispiel.com/)
[Beispieltext][1]
[1]:http://www.beispiel.com/
Das ist alles wunderbar solange man keine Klammern verwendet. Wenn man jedoch bei der ersten Syntax eine schließende Klammer oder bei letzterer Syntax eine öffnende oder schließende Klammer in der URL verwendet dann wird die Umsetzung von Markdown in HTML gestört. Nehmen wir mal an ich würde ein Posting über die neue Platte der Stars verfassen und dabei auf den Wikipedia-Artikel verlinken wollen, dann könnte ich folgendes versuchen:
[Stars](http://en.wikipedia.org/wiki/Stars_(band))
[Stars][1]
[1]:http://en.wikipedia.org/wiki/Stars_(band)
Das Resultat des HTML-Rendering für die jeweiligen URLs wäre wie folgt:
<a href="http://en.wikipedia.org/wiki/Stars_(band">Stars</a>)
<a href="http://en.wikipedia.org/wiki/Stars_" title="band">Stars</a>
Es sind offensichtlich die URLs bei den Klammern abgeschnitten. Um das Problem zu beheben kann man einfach eine manuelle URL-Kodierung durchführen. Man ersetzt einfach die öffnende Klammer durch %28 und die schließende Klammer durch %29 und dann klappts auch mit dem HTML-Rendering.
[Stars](http://en.wikipedia.org/wiki/Stars_%28band%29)
[Stars][1]
[1]:http://en.wikipedia.org/wiki/Stars_%28band%29
Ergibt folgendes:
<a href="http://en.wikipedia.org/wiki/Stars_%28band%29">Stars</a>
<a href="http://en.wikipedia.org/wiki/Stars_%28band%29">Stars</a>
Das nächste mal lernen wir dann wie man referentielle Links in Codeblöcke einfügt ohne dass diese als solche interpretiert werden.