Externe wie interne Querverweise wirken wie Hyperlinks. Wir benennen sie vereinfachend als Links
. Für externe Querverweise (Hyperlinks auf eine URL außerhalb des iX-Wiki) muss im Wikitext nur die Webadresse eingetragen werden. Die internen Querverweise (Verweise werden mit tags formuliert und verweisen i. d. R. auf eine Überschrift innerhalb einer Wikiseite. Diese wird aufgrund der wikiinternen Namenskonvention ein paar Übersetzungsregeln (keine Großbuchstaben, Umlaute transkribieren, Leerzeichen werden zu Unterstrich, …) beachtend hinter einem Hashtag als Parameter angegeben. Einfacher ist es häufig, einen bestehenden Link aus dem TOC oder aus der Adresszeile des Browsers als Kopierquellle zu nutzen. Es gibt auch die Möglichkeit, eigene Sprungmarken zu definieren.
Beispiele seiteninterner Links:
a) ohne einen Linktext [[]] technische_infos (Hier bildet dann der aktuelle Namespace den Linknamen automatisch, i. d. R. ein simpler Link, um an den Seitenanfang der aktuellen Seite zu springen.)
b) mit Angabe des aufzurufenden Namespaces und Doppelpunkt am Ende als Standardverweis 1)
c) mit Linktext (Wiki-Standard, um zu anderer Seite zu wechseln)
d) Überschriftsnavigation zu Abschnitt Querverweis (zur Navigation innerhalb der gleichen Seite oder zu spezifischen Stellen in anderen Seiten).
e) zu einem wrap-Marker. Beispielcodes hierzu:
a) [[]] b) [[playground:]] c) [[playground:start|Linktext]] d) Auf Überschriften verweisender Link: [[playground:start#querverweise|zur Abschnitt Querverweis]] e) Auf wrap-Marker verweisender Link: [[#sprungmarkentechnik]]
Individuelle Sprungmarken sind mit Hilfe des wrap
-Plugins auch innerhalb der Seiten ohne Überschriften möglich. Man muss dann neben dem Link natürlich auch den Anker definieren (Ähnlichkeiten mit html-code sind evolutionsbedingt…). Der Anker ist praktisch nur im Quelltext erkennbar, darf aber nicht in einer Einklappung verborgen sein. Sonst klappt der Link nicht (wie auch bei den Links auf Überschriften), wird aber auch nicht als toter Wiki-Link angezeigt - das kann Verwirrung beim Anwender oder der Fehlersuche stiften. Groß-Kleinschreibung ist nicht Pflicht, Einheitlichkeit in der Schreibweise erleichtert aber die spätere Bearbeitung. Der einfache Verweis auf eine seiteninterne Überschrift funktioniert auch ohne namespace:seitenname-Nennung …Querverweise
e) Der Link: [[#sprungmarkentechnik]] Der Anker: <wrap #sprungmarkentechnik>text or nothing</wrap> oder eine entsprechende Überschrift ==== Sprungmarkentechnik ====
Die Fußzeile2) bietet eine weitere Form eines Querverweises. Dieser ist bidrektional.
Was nicht unterstützt wird, sind multiple Fußzeilen im Format n:1. Die Ankertechnik mit Wrap (Variante d) kann jedoch mit Fußzeilen kombiniert werden: TestAnkerlink klappt . Test eines von einer Fußzeile kommend (Backlink) klappt auch . Insofern wären hiermit n:1-Konstellationen möglich. Der Status der Einklappung des span-Wrappings kann jedoch nur in der Fußzeile selbst, nicht im Tooltip geändert werden. Letzterer liefert immer ein aktuelles Abbild der referenzierten Fußzeile.
e) ((Fußzeilentext))
Für alle Varianten von Querverweisen gilt:
..\lib\tpl\dokuwiki\css\_links.css
im Codeabschnitt zu .dokuwiki a.wikilink1
vorgenommen werden, indem dort die Parameterzeile text-decoration: underline;
eingefügt wird: /* existing wikipage */ .dokuwiki a.wikilink1 { text-decoration: underline; }
... /* existing wikipage */ .dokuwiki a.wikilink1 { } ...
Alternative mit Unterstreichung
... /* existing wikipage */ .dokuwiki a.wikilink1 { text-decoration: underline; } ...
DokuWiki (somit auch iX-Wiki) bietet eine Volltextsuche an, basierend auf einem zuvor gebildeteten Index. Der Index wird automatisch gebildet über alle Seiten und Namespaces, außer den per hidepage-Parameter ausgenommen Seiten (sidebar und playground). Das Suchfeld rechts oben auf jeder Wiki-Seite erlaubt eine einfache wie auch spezifische Suche:
Begriff 1 Begriff2
Begriff1|Begriff2
Begriff1 -Begriff2
„Begriff1 Begriff2“
Begriff1*
oder *Begriff1*
@fachadministration:faktura
führt zu der Suche von Faktura im Namensraum fachadministration (setzt die Kenntnis der Namensräume voraus).Strg + F
) nutzen.PHP-Technik der Suchfunktion und Indexierung in DokuWiki
Siehe auch https://www.dokuwiki.org/de:search
DokuWiki verwendet einen Index um sogar in großen Wikis Suchanfragen sehr schnell zu verarbeiten. Um alles finden zu können, muss der Index mit den aktuellen Daten gefüllt sein. Informationen über den Seiteninhalt werden hinzugefügt und abgeändert, wenn sich ein User die Seite anzeigen lässt. Jede Seite enthält ein unsichtbares Bild (webbug), dass die Index-Aktualisierung aufruft, falls nötig.1) (Die Aktualisierung gilt als nötig, falls der Zeitstempel der Seite neuer ist, als der Zeitstempel der Index-Datei.)
Der Index besteht aus verschiedenen Dateien, die im Verzeichnis data/index liegen. „w[n].idx“ beinhaltet eine Liste aller Wörter (mit Ausnahme von Stoppwörtern), der Länge n, die auf den Wikiseiten vorkommen. Pro Zeile in „w[n].idx“ gibt es eine Zeile in „i[n].idx“, welche die Seiten, auf denen das Wort vorkommt, in der Form „pn*freq“ auflistet. „pn“ ist eine Zeilennummer von „page.idx“, „freq“ ist eine Zahl, die angibt, wie oft das Wort auf der Seite vorkommt. Kommt das Wort auf mehreren Seiten vor, sind die Seitenreferenzen mit einem Komma getrennt.
Der Indexer ..\inc\indexer.php
benutzt eine sprachspezifische Stoppwort-Datei ..\inc\lang\de\stopwords.txt
, die eine Liste von sehr alltäglichen Begriffen, die niemals indiziert werden (z.B. das Wort „das“ im Deutschen). Eine Suche nach einem solchen Begriff wird keine Treffer liefern.
Wenn ein Wiki von einer älteren Version ohne Index upgedatet wird, wird die Suche keine Treffer liefern, bis der Index erstellt wurde. Man kann entweder warten, bis dies durch das Stöbern im Wiki passiert, oder das bereitgestellte Kommandozeilen-Skript bzw. Plugin in der Administration verwenden, um den Index zu aktualisieren (Neuerstellung des Index über 800 Seiten dauert hier ca. 30 Minuten).
Lt. DokuWiki-Entwickler müsse man beachten, dass in den Indexdateien unter Linux der Zeilenumbruch mit LF und nicht mit CRLF erwartet werde. Hier könne es z. B. bei einem Upload mit FTP im ASCII-Mode zu einer Änderung der Indexdateien kommen.
Man könnte den Suchindex auch auf dem Online-Wiki erstellen, ohne dass ein Benutzer in dem Wiki online sein muss oder dass man das searchindex-Plugin via Administration aufrufen muss. Das sollte auch einfach über einen Kommandozeilenaufruf zu realisieren sein und ließe sich sogar automatisieren (z.B. in cron oder dem Script welches die Daten von Windows nach Linux kopiert): vgl. https://www.dokuwiki.org/cli#indexerphp
Hinweise zur Suchproblematik siehe thread im DokuWiki-Forum: https://forum.dokuwiki.org/d/20654-volltextsuche-scheitert-in-online-variante/11
Nach Bearbeitung (bzw. während der Bearbeitung des Seitentextes schon in der Vorschau) fallen Layoutumbrüche oder sogar scheinbar fehlende Inhalte auf. Klassiker für solche Layoutfehler sind meistens Fehler von paarweise erwarteten Steuerzeichen:
code
): ( code
) oder ( code)
→ (code
) Überflüssige Zeilenumbrüche werden vom Wikisystem oftmals kompensiert. Folgt auf den Zeilenumbruch kein adäquater Inhalt, wird der Zeilenumbruch nicht ausgeführt und ist somit nur im Editor sichtbar. Der Zeilenenumbruch wird mit doppeltem Backslash \\ gefolgt von einem Leerzeichen codiert.
Aus der automatisierten Datenübernahme sind solche überflüssigen Codes am Ende von Zellen in Tabellen oder Aufzählungen zu finden. Sie können in der weiteren Verarbeitung worst case wirksam werden und sollten daher nach Möglichkeit entfernt werden.
Mittels WRAP-Klammern und Folding können auch Unterabschnitte eingeklappt werden. Wir haben beobachtet, dass dann solche Unterabschnitte nicht mehr über über die einzelnen Bearbeiten-Schalter einer Startseite, wo Seiten per include
integriert sind, mit Inhalt geöffnet werden. Das Editorfenster ist dann unerwartet leer! Abhilfe schafft derzeit, erst die entsprechende Unterseite wie parameter
, howto
oder technical
anstelle der start
-Seite zu öffnen und dann dort zu bearbeiten.
++++folding A| =====Abschnitt A eingeklappt===== ++++ <WRAP> ++++folding A1| ====Abschnitt A1 eingeklappt==== ++++ </WRAP> <WRAP> ++++folding A2| ====Abschnitt A2 eingeklappt==== ++++ </WRAP> ++++
s. a. meine Anfrage bei DokuWiki vom 27.06.2022: https://www.dokuwiki.org/plugin:wrap:discussion#questionedit_of_nested_wrap_in_included_pages_looses_target_in_editor
Zum allgemeinen Verständnis und Diskussion über Merkmale oder Funktionen im iX-Wiki ist es hilfreich, die Bedeutung oder auch Differenzierung allgemeiner und Wiki-spezifischer Fachbegriffe zu kennen - oder zumindest zu wissen, wo diese informationen zu finden sind. Nachfolgend ist sozusagen ein quick & dirty-Überblick über die Terminologie, welche wir in der letzten Zeit benötigten, um die redaktionelle Umsetzung unserer Gestaltungswünsche im Wiki zu formulieren.
conf/acronyms.local.conf
im UTF-8-Format gepflegt werden (beachte https://www.dokuwiki.org/abbreviations). attic
-Verzeichnissen gespeichert. So kann i. d. R. jede einzelne Seite mit Wiki-Bordmitteln auf frühere Versionsstände verglichen und auch zurückgeführt werden.Code-Darstellung
wiederzugeben. Wird von den doppelten Zeichen (letzlich sind es ja Pärchen, also vier) eines vergessen bzw. gelöscht, läuft das Format 'ungebremst' bis zur nächsten identischen Formatauszeichnung weiter, manchmal kommt es zum Abbruch der Darstellung der restlichen Seite.CodeX' und das ist nur hier gewollt.' Bla bla…
ID
einer Seite. 3) Namenskonvention
des Wikis) als Bestandteil eines Verweises mit führendem Hashtag an die id
im Verweis-tag angegeben wird. playground:technische_infos
. Sie finden diese ID als Bestandteil der Adresse der angezeigten Webseite im Browser und als Registerbeschriftung (rechts oben im Seitenrahmen). data\media
gespeichert. Bilder können als Medien in einzelnen Seiten direkt oder verlinkt eingebunden werden. Nicht zulässige (da nicht direkt anzeigbare) Medien können als Downloadangebot in ZIP-Archiven gepackt werden. :
) werden zum Erzeugen von Namensräumen (namespaces) verwendet.data\pages
bzw. einem Unterverzeichnis davon (s. namespace). Eine page kann automatisch durch Bearbeitung angelegt, durch Entfernen des gesamten Inhalts aber auch wieder gelöscht werden.id=playground:start
sidebar.txt
-Dateien können pro Namespace existieren. Im html-Jargon wird der oftmals links angeordnete Bereich einer aufgeteilten Webseiten sidebar genannt. Elemente der Sidebar steuern hierbei oft die Inhalte der Hauptseite. Inhaltsverzeichnis
tag
[täg] (wir nutzen hier besser die originale englische Bezeichnung wg. der Verwechselungsgefahr mit dem dt. Tag) ist eine Markierung beginnend mit einer tag-Bezeichnung und ggf. Parametern und endend mit einem tag-Ende, meist mit spitzen Klammern, geschweiften Klammern oder ohne Klammern, dafür dann mit einer Wiederholung von speziellen Codezeichen. Beispiel: <wrap important>Beim Mischen von mehreren tags bitte die Klammerebenen beachten. Die ++Klammerebenen des folded-Plugins| kommen ohne spitze Klammern aus und sind an doppelten oder vierfachen Pluszeichen zu erkennen und++ sind eigentlich auch tags.</wrap>
⇒ Beim Mischen von mehreren tags bitte die Klammerebenen beachten. Die Klammerebenen des folded-Plugins kommen ohne spitze Klammern aus und sind an doppelten oder vierfachen Pluszeichen zu erkennen und sind eigentlich auch tags.Useheading
(„Erste Überschrift als Seitennamen verwenden“). Hierdurch wird anstelle des (klein geschriebenen) Seitennamens die erste Überschrift von der verlinkten Seite als anzuzeigender Name genutzt. Das beeinflusst u. a. die Anzeige des Seitentitels in der Browserleiste und in den Ergebnissen von Suchanfragen, den angezeigten Text nach dem Erzeugen eines Links auf eine Wiki-Seite (solange kein expliziter Name angegeben wird). Die im iX-wiki verwendete Konfiguration ist useheading: navigation
⇒ die Überschrift wird für alles andere außer dem Seiteninhalt genutzt (z. B. Krümelpfad, Backlinks, Suchergebnisse, Titel in Browserleiste und Browsertab usw.).