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.

 

Kommentare (7)

  1. b. 27 minutes later

    Hej du Ruby Fanboy,

    ich hatte letztens an dich und dein Blog denken muessen.

    Jekyll ist ein “static blog generator”. Du kannst mit deinem Lieblingseditor Blogposts schreiben und auch markdown Syntax verwenden.

  2. Stefan About 1 hour later

    Das klingt doch mal nach einem echten Dreamteam!

  3. Stefan About 1 hour later

    Ein wenig geeky ist das Ding ja schon, aber hey es gibt sogar einen Typo-Konverter!

  4. b. About 1 hour later

    Waere es in Python geschrieben wuerde ich mich sofort dran machen und fuer Django einen Blog schreiben, den ich dann damit fuettere. Aber rubygems mag ich nicht so.

  5. Stefan About 1 hour later

    Und so hat halt jeder seine Präferenzen :)

  6. Carsten About 3 hours later

    Ist ja wirklich praktisch – mit %28 und %29 kann man also diesen unhandlichen HTML-Kram umgehen ;)

  7. Stefan About 4 hours later

    Jaja, machen Sie sich nur lustig :P

Kommentar schreiben

Markdown Syntax