Table of Contents

Ad-Hoc HTML Plugin for DokuWiki

Dieses Plugin erlaubt es, bestimmte HTML-Tags in DokuWiki Code zu gebrauchen. Es ist auch die Grundlage für die anderen Ad-Hoc-Plugins.

Hintergrund

Seit Version „Jack Jackrum“ ist die Möglichkeit, HTML-Tags in DokuWiki-Code einzufügen, nicht mehr in der Standardinstallation verfügbar (siehe htmlok). Diese Einschränkung ist sinnvoll, da diese Funktion auch zahlreiche Sicherheits-Implikationen hat, die von vielen technisch weniger versierten Nutzern nicht wirklich gut eingeschätzt werden können.

Gleichzeitig sind die HTML-Tags für erfahrenere Nutzer ein sehr hilfreiches Werkzeug, um Seiten zu strukturieren, oder um die Seiten barrierefrei zu gestalten (dies ist z.B. – aber nicht nur – für alle Behördenseiten verpflichtend. Siehe hierzu z.B.: Gesetze und Richtlinien zur Barrierefreiheit auf bund.de).

Aber zum Beispiel auch der Block hier oben rechts ist mittels <aside>- und <figure>-Tags ausgezeichnet, was ohne Zugriff auf diese Elemente im besten Fall nicht mehr semantisch korrekt, im schlimmsten überhaupt nicht ausführbar wäre.

Installation

Dieses Plugin kann einfach über die in DokuWiki eingebaute Plugin-Verwaltung installiert werden (AdminErweiterungen verwalten). Eine einfache Suche (unter „Suchen und installieren“) nach „Ad-hoc HTML“ sollte als erstes Ergebnis diess Plugin ergeben. Ein Klick auf den „Installieren“-Knopf erledigt den Rest.

Alternativ kann auch direkt von der GitHub Projektseite installiert werden. Dazu zunächst auf der „Releases“-Seite die neueste Version entweder als ZIP-Datei herunterladen, oder den Link zu dieser ZIP-Datei kopieren.

Dann zurück zu „Erweiterungn verwalten“: Unter „Manuell installieren“ entweder den Link in das Feld „Von Webadresse (URL) installieren“ einfügen, oder unter „Erweiterung hochladen“ die zuvor heruntergeladene ZIP-Datei auswählen.

Wichtig: Falls das Plugin bereits installiert war, unbedingt das Auswahlfeld „Existierende Dateien überschreiben“ aktivieren, da ansonsten das Update nicht funktioniert!

Ein Klick auf „Installieren“ installiert das Plugin.

Funktionen

Beispiel

Das folgende, einfache Beispiel zeigt, wie HTML im Wikitext benutzt werden kann:

Das <dfn #lemma><i :la>Ad Hoc</i> HTML Plugin</dfn> erlaubt mehr <b important>Flexibilität</b>
beim Gebrauch von <abbr "HyperText Markup Language">HTML</abbr>-Tags, ohne dass man sich mit
den **Komplikationen** und <strong warning>potentiellen Sicherheitsproblemen</strong>, die mit
voller <abbr>HTML</abbr>-Unterstützung kämen, herumschlagen muss.

HTML-Elemente

Die folgenden HTML-Elemente werden von diesem Plugin unterstützt:

Die Links hinter jedem Element gehen zu den entsprechenden MDN-Seiten, wo die jeweiligen Elemente genauer beschrieben werden, einschließlich Anwendungsbeispiele. Leider sind diese nur auf Englisch verfügbar.

Attribute

Ad-Hoc HTML benutzt eine eigene Syntax für die Elementattribute, die vor allem darauf ausgelegt ist, einfache Funktionen möglichst schnell und einfach zu machen und gleichzeitig mögliche Sicherheitsprobleme mit anderen Attributen (insbesondere den JavaScript-Attributen) zu vermeiden.

Grundsätzlich können Attribute keine Leerzeichen enthalten (für Ausnahmen, siehe unten), da dieses Zeichen als Trennung zwischen Attributen verwendet wird.

Klassennamen

Jeder Bezeichner in einem Element, der einen gültigen Klassennamen darstellt, wird als HTML-Klasse verstanden.

Zum Beispiel wird „<b wichtig>“ wie folgt in HTML umgesetzt: „<b class="wichtig">“.

Es können beliebig viele Klassennamen verwendet werden. „<aside outline box float-right>“ wird erwartungsgemäß zu „<aside class="outline box float-right">

IDs

Für ID-Attribute wird die CSS-Syntax verwendet, d.h. der ID-Name wird durch ein vorangestelltes „#” gekennzeichnet.

Aus „<div #text-header>“ wird im Seitenquelltext: „<div id="text-header">“.

Auch hier gilt, dass die ID-Bezeichner gültig sein müssen. Hierfür wird ein (recht einfacher) Check durchgeführt und wenn die ID nicht gültig ist, wird das Attribut nicht erzeugt.

Sprache

Das „lang“-Attribut dient dazu, einen Teil der Seite (z.B. ein Wort oder eine Phrase) zu markieren, welche in einer anderen Sprache vorliegt, als der umgebende Text. In der Syntax für dieses Plugin wird der Doppelpunkt („:“) gebraucht, um Sprachattribute zu kennzeichnen.

Zum Beispiel ist auf dieser Seite der Ausdruck „ad hoc“ lateinisch und daher wie folgt ausgezeichnet: „<i :la>ad hoc</i>“. Im Seitenquellcode wird daraus: „<i lang="la">ad hoc</i>

Auch für die Sprachkennzeichner gibt es eine Plausibilitätsprüfung. Diese ist aber flexibel genug, um praktisch alle üblichen (und die meisten unüblichen!) BCP-47 Codes abzudecken, einschließlich Regionalsprachen, Dialekte, Transliterationen und vieles weitere.

Für Sprachen, die üblicherweise von links nach rechts geschrieben werden (z.B. Arabisch oder Hebräisch) wird außerdem das „dir“-Attribut mit dem Wert „ltr“ (vom Englischen „left-to-right“) gesetzt. Dies gilt nicht, wenn die Sprache z.B. in Lateinischer Transkription geschrieben wird (siehe unten), das kann aber nicht alle Fälle abgecken, in denen die Textrichtung anders ist als erwartet (z.B. können bestimmte kurdische Dialekte sowohl von rechts nach links, als auch in umgekehrter Richtung geschrieben werden).

In diesen Fällen ist es möglich, das erweiterte Attribut[dir="…"]“ (siehe unten) zu benutzen, um die Textrichtung unabhängig vom Sprachattribut festzulegen. Eine solche Festlegung überschreibt immer die Textrichtung der Sprache.

Einige Beispiele mit Sprachkennzeichnern für häufig gebrauchte Situationen sind in der folgenden Tabelle aufgeführt:

Code Sprache Beispiel Beispiel (Transkription) Schreibrichtung
:fr Französisch <i :fr>Le Monde</i> LTR
:en Englisch <i :en>Fallacies Online</i> LTR
:la Lateinisch <i :la>Advocatus diaboli</i> LTR
:ja Japanisch <span :ja></span> <i :ja-Latn>Mu</i> LTR
:grc Altgriechisch <span :grc>Μετά</span> <i :grc-Latn>metá</i> LTR
:he Hebräisch <bdo :he>עברית</bdo> <i :he-Latn>ʿIvrit</i> RTL
Auswahl an Sprachcodes

Titel-Text

Das „title“-Attribut erlaubt es, einen Text anzugeben, der als sog. „Tool-tipp“ angezeigt wird, wenn der Besucher den Mauszeiger über einem Element für einen Moment still hält. Dieser Text ist auch für Screenreader wichtig, da er zusätzlich oder anstelle des Elementtextes vorgelesen werden kann.

Mit Ad-Hoc HTML wird jeder Text, der in doppelten Anführungsstrichen steht, als „title“-Attribut umgesetzt. Zum Beispiel: „<abbr "Drei-Buchstaben Abkürzung">DBA</abbr>“ wird zu „<abbr title="Drei-Buchstaben Abkürzung">DBA</abbr>“.

Dies ist das einzige Attribut, welches auch Leerzeichen unterstützt. Alles was in den Anführungsstrichen steht, wird direkt in den Seiten-Quelltext übernommen.

Erweiterte Attribute

Alle anderen Attribute müssen mit der „erweiterten“-Syntax eingefügt werden. Diese besteht darin, Attributnamen und -wert, durch ein Gleichheitszeichen getrennt in eckige Klammern zu setzen. Anders als bei HTML-Attributen wird der Wert (auf der rechten Seite) ohne Anführungszeichen angegeben und kann auch keine Leerzeichen enthalten. Zum Beispiel: „<time [datetime=2024-01-01]>Neujahr</time>

In einigen Fällen sind auch „leere“ Attribute erlaubt, also solche ohne Wert. Zum Beispiel: „<span [hidden]>…“

Die erlaubten Attribute sind stark eingeschränkt und wo möglich werden die Werte auch einer Plausibilitätsprüfung unterzogen, sodass in vielen Fällen ausdrücklich nur erlaubte (laut Spezifikation) Attributwerte umgesetzt werden.

Allgemeine Attribute

Die folgenden Attribute sind für alle Elemente erlaubt:

Darüber hinaus gibt es Attribute, die nur in bestimmten Elementen erlaubt sind: