Skip to content

Verlinken von Wikipedia-Einträgen

Gestern habe ich ein WordPress-Plugin beschrieben, das Links in das DenkzeitWiki erzeugt, wenn es auf bestimmte Textmuster trifft. Gerade habe ich mal wieder Wikipedia verlinkt und mir ist aufgefallen, dass ich (und Clemens) das relativ häufig tue. Also wurde das Plugin erweitert:

$text = preg_replace('/\s(\w*){{{(([A-Z][a-z_]+)*)}}}(\w*)\s/','<a href="'.$wikipedia.'$2">$1$2$4</a>', $text);

Der Code sorgt dafür, dass Text mit drei geschweiften Klammern als Referenz auf einen Wikipedia-Eintrag verstanden wird. Im Vergleich zu den den Regular_Expressions von gestern kamen noch zwei Dinge hinzu: \s(\w*){{{(([A-Z][a-z_]+)*)}}}(\w*)\s. Dabei steht \w für einen Buchstaben, eine Zahl oder einen Unterstrich. \s steht für ein Whitespace-Zeichen, also z.B. Leerzeichen. In diesem neuen RE ist es also möglich die Referenz auf einen Wikipedia-Eintrag mitten in einem Wort anzubringen. Das ist nützlich, wenn man beispielsweise von Fraktalen spricht, aber Fraktal verlinken möchte. Außerdem erlaubt [a-z_] auch einen Unterstrich im WikiSeitennamen.

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

Jamie Zawinski [Quelle]

{ 2 } Comments

  1. Emerentia | 2005/4/13 at 10:32 | Permalink

    Es wäre nicht schlecht, wenn du ein kurzes Beispiel angeben könntest. Ich bin mir noch nicht ganz sicher, wie ich solche Wikipedia-Links anwende :-)

  2. Steffen Gl | 2005/4/14 at 10:43 | Permalink

    Ok, ein Beispiel: Wenn man auf dein Eintrag zu Vincent van Gogh linken möchte, dessen Seitenname auf Wikipedia Van_Gogh ist, dann kann man das mit {{{Van_Gogh}}} tun. Man kann auch Vincent{{{Van_Gogh}}} schreiben. Bisher kann man für den Wikinamen allerdings keinen Ersatztext angeben, also einen Text, der als Link angezeigt wird. {{{Van_Gogh Vincent van Gogh}}} geht also nicht. Könnte man aber schnell einbauen. Muss ich mir überlegen.

{ 1 } Trackback

  1. [...] Clemens hat vorgeschlagen, dass ich doch alternativen Text in Links zu Wikipedia zulassen könnte. Gute Idee. Das habe ich heut [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *