Autoren (Grundlagen) (deutsche Übersetzung der Seite PmWiki.Links, Stand 2008-03-08)

Ein zentraler Clou der Wikis ist die Einfachheit, mit der man Verweise ('hyper links') auf andere Seiten in den Text einer Seite einfügen kann. PmWiki bietet verschiedene Mechanismen zur Erzeugung solcher Verweise.

Verweise zu anderen Seiten des Wikis

Um einen Verweis zu einer anderen Seite zu setzen, stellt man einfach den Namen jener Seite in doppelte eckige Klammern -- wie in [[Wiki Sandbox]] oder [[Installation]]. Aus diesen Formatierungsanweisungen erzeugt PmWiki Verweise auf die Seiten Wiki Sandbox? bzw. Installation.

Dies geschieht, indem PmWiki bei Text in doppelten eckigen Klammern den ersten Buchstaben jedes Worts durch einen Großbuchstaben ersetzt, die Leer- und Sonderzeichen (wie z.B. die Tilde '~') zwischen ihnen streicht und die resultierende Zeichenkette dann als Namen der Seite verwendet, zu der der Verweis führt. Ein Verweis zu einer Seite kann also auf verschiedene Weise geschrieben werden -- [[Wiki sandbox]], [[wiki sandbox]] und [[WikiSandbox]] verweisen alle auf die selbe Seite, nämlich WikiSandbox.

Mit anderen Worten: Wenn eine Seite angelegt wird, wird das Ziel des Verweises nach obigen Kriterien erzeugt, der Text des Verweises aber exakt so angezeigt, wie er eingegeben wurde.

An einen Verweis kann eine Nachsilbe angehängt werden, der Teil des Verweistextes, aber nicht des Ziels wird. So ist [[wiki sandbox]]es ein Verweis zu WikiSandbox, wird jedoch als wiki sandboxes? dargestellt.

Um Text, der nicht dargestellt werden soll, können Klammern gesetzt werden. [[(wiki) sandbox]] verweist auf WikiSandbox und wird dargestellt als sandbox?.

Schließlich kann man den Verweistext mit Hilfe eines senkrechten Striches (|) völlig unabhängig vom Seitennamen angeben. So verweist [[WikiSandbox | Spielplatz]] auf WikiSandbox, wird jedoch als Spielplatz? angezeigt. Mit einem Pfeil (->) kann die Reihenfolge von Verweis und Text umgekehrt werden: [[Spielplatz -> WikiSandbox]] wird ebenfalls zu (Spielplatz?).

Einige Seiten erkennen auch WikiWörter, wo im Text auftretende WikiWörter automatisch als Verweis auf eine Seite gleichen Namens behandelt werden. Dies hängt von der Konfiguration der jeweiligen PmWiki-Installation ab.

Abgekürzte Verweise

Die Verwendung spezieller Zeichen (etwa von Umlauten) in Seitennamen ist zwar unter PmWiki kein grundsätzliches Problem, aber manchmal unterscheiden sich die Zeichensätze zwischen dem Rechner, von dem aus eine Seite bearbeitet wird, und dem Rechner, der zum Lesen der Seite genutzt wird. Insbesondere mit UTF-8 kann es dann zu Problemen kommen. Insofern ist es besser, keine Sonderzeichen für Seitennamen zu verwenden und sich stattdessen ASCII-Zeichen zu beschränken. Jede Seite kann eine (:title <name>:)-Direktive enthalten um den lokalisierten Titel anstelle des Seitennamens anzuzeigen. Für diesen Fall sind die folgenden Tipps nützlich:

[[SeitenName|+]] erzeugt einen Verweis auf SeitenName und nutzt den Titel dieser Seite als Verweistext -- z.B. wird auf der Seite PmWikiFr/Sandbox mittels der Direktive (:title Bac à Sable:) ein Titel definiert, so dass der Verweis [[DocumentationIndex|+]] folgendermaßen dargestellt wird: Dokumentations-Index.

[[SeitenName|#]] erzeugt einen Referenz-Verweis wie folgt (vgl. unten): [1].

[[!SeitenName]] erzeugt einen Verweis auf SeitenName in der Gruppe Category. Siehe Kategorien.

[[~Autor]] erzeugt einen Verweis auf die Autor in der Gruppe Profiles. PmWiki erzeugt einen solchen Verweis automatisch für den aktiven Autor, wenn es irgendwo im Wiki-Quelltext auf drei aufeinanderfolgende Tilden stößt (~~~). Das Hinzufügen eine vierten Tilde führt dazu, dass das aktuelle Datum und die aktuelle Uhrzeit hinzugefügt werden.

Verweise auf bestimmte Stellen (Ankerpositionen) einer Seite

Um in einer Seite eine Stelle zu definieren, zu der direkt gesprungen werden kann, wird [[#name]] verwendet. Dies erzeugt einen Anker, welcher die Stelle eineindeutig auf der Seite kennzeichnet. Um an diese Stelle zu springen, kann folgende Anweisung verwendet werden:

  • [[#name|Verweistext]] innerhalb der gleichen Seite, oder
  • SeitenName#name or [[SeitenName#name|Verweistext]] für eine Stelle auf einer anderen Seite
  • Die Form [[SeitenName(#name)]] ist nützlich, um den Ankertext im Link zu verbergen.

Beispielsweise ist dies ein Verweis auf den Abschnitt Intermaps weiter unten.

Hinweise:

  • Der Anker muss mit einem Buchstaben beginnen (nicht mit einer Ziffer)
  • Ein Verweis auf einen Anker muss dem Anker in Groß- und Kleinschreibung gleichen. Der Internet Explorer mag zwar hinsichtlich der Großschreibung unempfindlich sein, aber Firefox ist es nicht. Beispielsweise ist weiter unten ein Anker namens "[[#robots]]" definiert; ein Verweis wie [[#Robots | Robots]] funktioniert im IE, nicht aber in Firefox: Robots.

Links aus dem Wiki heraus

Verweise auf externe Websites (URLs)

Verweise auf externe Netzseiten fangen einfach mit einer Buchstabenfolge wie 'http:', 'ftp:', usw. an. So verlinken http://www.google.de/ und [[http://www.google.de/]] beide zu Google. Wie weiter oben beschrieben, kann ein Autor den Verweistext genau bezeichnen, indem er vom Senkrechtstrich oder der Zeichenfolge mit dem Pfeil Gebrauch macht -- zum Beispiel [[http://www.google.de/ | Google]] und [[Google -> http://www.google.de]].

Wenn die externe URL Klammern () enthält, lassen sich diese vor einer (Fehl-)Interpretation durch PmWiki schützen, indem man &#40; '(' und &#41; ')' verwendet.

Verweise auf lokale Dateien

Man kann auf Dateien in lokalen Dateisystemen verweisen, indem man die dem Pfad der Dateien als Präfix 'file:///' voranstellt (zumindest für den Internet Explorer). So sind file:///S:\ProjPlan.mpp und [[Laufwerk S->file:///S:\]] beides gültige Verweise. Für Windows-Dateisysteme ist es eventuell besser, Netzwerk-Ordner (z.B. \\server1\verzeichnis\unterverzeichnis) anstelle von Laufwerkbuchstaben zu verwenden, da sich Letztere für verschiedene Nutzern unterscheiden können.

Besonderheiten von Verweisen

Verweise als Referencen

Verweise können auch als Referenzen spezifiziert werden, so dass das Verweis-Ziel nicht durch einen Verweistext, sondern durch eine "anonyme", numerische Referenz beschrieben wird. Die folgende Formatierungsanweisung dient dazu, fortlaufend nummerierte Referenz-Verweise innerhalb einer Wikiseite zu erzeugen:

Das Formatieren des Verweises als [[http://google.com |#]] erzeugt beim Betrachten der Seite lediglich: [2]. Beim nächsten Verweis im Referenz-Format erhöht sich die Referenz-Nummer automatisch um eins: Die Eingabe von [[http://pmwiki.com |#]] erzeugt [3] usw ...

InterMap

InterMap-Verweise werden ebenfalls unterstützt (siehe InterMap). Insbesondere kann der Path: InterMap-Eintrag zum erzeugen relativer oder absoluter Verweise genutzt werden (z.B. Path:../../einverzeichnis/foo.html oder Path:/verzeichnis/irgendwas.gif).

Verweise zu Seiten in anderen Wikigruppen

Siehe Wikigruppen.

Verweise, die ein neues Fenster öffnen

Um einen Link in einem neuen Fenster zu öffnen wird %newwin% verwendet.

  • %newwin% http://pmichaud.com %% erzeugt diesen Verweis: http://pmichaud.com
  • %newwin% [[http://google.com/ | Google]] erzeugt diesen Verweis: Google
  • %newwin% [[WikiSandbox]] %% erzeugt diesen Verweis: WikiSandbox?

Alternativ kann man auch das Attribut target verwenden, um Verweise in einem neuen Fenster zu öffnen:

%target=_blank% Alle Verweise in diesem Absatz, wie bspw. http://www.pmichaud.com, öffnen sich in einem neuen Fenster.

Alle Verweise in diesem Absatz, wie bspw. http://www.pmichaud.com, öffnen sich in einem neuen Fenster.

Verweise, denen Robots? nicht folgen

Indem man einem Verweis die Anweisung %rel=nofollow% voranstellt, kann man robots und link checker veranlassen, diesem Link nicht zu folgen.

Verweise und CSS-Klasses

PmWiki vergibt automatisch bestimmte CSS-Klassen für verschiedene Typen von Verweisen. Unter anderem versetzt einen dies in die Lage, die Verweis-Typen unterschiedlich zu formatieren.

Hinweis: Diese Auflistung kann unvollständig sein.

.selflink
Ein Verweis auf die aktuelle Seite. Nützlich etwa, um in Navigationsleisten anzuzeigen, wo man sich gerade befindet.
.wikilink
Ein Verweis auf eine andere Seite innerhalb des Wikis.
.urllink
Ein Verweis auf eine Seite außerhalb des Wikis.

Man könnte etwa eine Klasse .anchor für Verweise auf Anker definieren
[[#target]] oder auch <A name='target'></A>
indem man die folgenden Zeilen in 'config.php' einfügt:

 Markup('[[#','<[[','/(?>\\[\\[#([A-Za-z][-.:\\w]*))\\]\\]/e',
    "Keep(TrackAnchors('$1') ? '' : \"<a name='$1' id='$1' class='anchor'></a>\", 'L')");

Hinweise

Hinweis: Das Standardverhalten von "+" (siehe oben) kann derart modifiziert werden, dass nicht einfach nur der Titel der Seite angezeigt wird, sondern auch alle Leerzeichen im Titel beachtet werden ("spaced title"). Dazu fügt man Folgendes zu 'config.php' hinzu:

## [[target |+]] title links
Markup('[[|+', '<[[|',
  "/(?>\\[\\[([^|\\]]+))\\|\\s*\\+\\s*]]/e",
  "Keep(MakeLink(\$pagename, PSS('$1'),
                 PageVar(MakePageName(\$pagename,PSS('$1')), '\$Titlespaced')
                ),'L')");

<< Erzeugung neuer Seiten | Dokumentationsindex | Bilder >>

Wie erzeuge ich einen Verweis, der in einem neuen Browserfenster geöffnet wird?

Benutze den Wikistil %newwin% -- so wie im folgenden Beispiel:

%newwin% http://example.com/

http://example.com/

Wie erzeuge ich einen Verweis, der in einem neuen Browserfenster geöffnet wird und kann gleichzeitig das Aussehen dieses neuen Fenster beeinflussen?

Dazu ist Javascript erforderlich. Siehe das Kochbuch-Rezept Cookbook:PopupWindow (nur auf Englisch verfügbar).

We kann ich eine E-Mail-Adresse in einee Wikiseite einfügen?

Benutze die Formatierungsanweisung mailto: -- so wie in den folgenden Beispielen: Use the mailto: markup, as in one of the following:

* mailto:meineadresse@example.com
* [[mailto:meineadresse@example.com]]
* [[mailto:meineadresse@example.com | Schreib mir eine E-Mail!]]
* [[mailto:meineadresse@example.com?subject=Irgendein Betreff&body=Text der E-Mail | Schreib mir eine E-Mail!]]

Siehe auch die Kochbuch-Rezepte Cookbook:EProtect und Cookbook:ProtectEmail für ausführlichere Informationen über den Schutz von E-Mail-Adressen vor Spammern (nur auf Englisch verfügbar).

Wie kann ich einen WikiWort-Verweis zu einem Verweis auf eine externe anstatt auf eine interne Seite machen?

Benutze die Formatierungsanweisungen für Verweise. Es gibt folgende zwei Möglichkeiten:

[[http://example.com/ | WikiWort]]
[[WikiWort -> http://example.com/]]

Wie finde ich alle Seiten, die auf eine bestimmte Seite verweisen (sogenannte 'backlinks')?

Benutze die Direktive (:pagelist:)-Direktive mit der Option "link=" -- so wie im folgenden Beispiel:

(:pagelist link=IrgendeineSeite:)   -- zeige alle Verweise auf IrgendeineSeite
(:pagelist link={$FullName}:)  -- zeige alle Verweise auf die aktuelle Seite

Welche Verweis-Schemen (URI-Schemen) unterstützt PmWiki?

Siehe die eigene Seite Link schemes (nur auf Englisch verfügbar).

Wie kann ich Verweise auf anderer Internet-Protokolle -- wie etwa nntp:, ssh:, xmpp: etc. -- ermöglichen.

Siehe das Kochbuch-Rezept Cookbook:Add Url schemes (nur auf Englisch verfügbar).

We öffne ich externe Verweise in einem neuen Fenster oder markiere sie mit einem Icon?

Siehe das Kochbuch-Rezept Cookbook:External links (nur auf Englisch verfügbar).