it-themen:allgemein:erstellung_leetify-plugin
**Dies ist eine alte Version des Dokuments!**
Inhaltsverzeichnis
Entwicklung des Leetify Plugins
Diese Seite dokumentiert die schrittweise Erstellung des 'Leetify Plugins' für DokuWiki.
Ziel
Ein einfaches Plugin, das Text im Tag <leet> in Leetspeak umwandelt. Die Ausgabe soll optisch hervorgehoben dargestellt werden.
Plugin-Struktur
Das Plugin besteht aus folgenden Dateien:
plugin.info.txt– Metadaten für DokuWikisyntax.php– Implementierung der Leetspeak-Logik
Schritt-für-Schritt-Anleitung
1. Plugin-Ordner erstellen
Erstelle den Plugin-Ordner unter:
mkdir -p dokuwiki/lib/plugins/leetify
2. Datei: plugin.info.txt
Erstelle die Datei plugin.info.txt mit folgendem Inhalt:
base leetify author Lars & ChatGPT email dummy@example.org date 2025-05-21 name Leetify Plugin desc Wandelt Wörter im <leet>-Tag in Leetspeak um. url https://github.com/dein-repo/leetify
3. Datei: syntax.php
Erstelle syntax.php im gleichen Ordner. Dies ist der Kern des Plugins.
<?php
if (!defined('DOKU_INC')) die();
if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/');
require_once(DOKU_PLUGIN . 'syntax.php');
class syntax_plugin_leetify extends DokuWiki_Syntax_Plugin {
public function getType() { return 'formatting'; }
public function getPType() { return 'normal'; }
public function getSort() { return 195; }
public function connectTo($mode) {
$this->Lexer->addEntryPattern('<leet>(?=.*?</leet>)', $mode, 'plugin_leetify');
}
public function postConnect() {
$this->Lexer->addExitPattern('</leet>', 'plugin_leetify');
}
public function handle($match, $state, $pos, Doku_Handler $handler) {
return array($state, $match);
}
public function render($mode, Doku_Renderer $renderer, $data) {
if ($mode !== 'xhtml') return false;
list($state, $match) = $data;
if ($state === DOKU_LEXER_UNMATCHED) {
$leet = $this->toLeet($match);
$renderer->doc .= '<span class="leetify">' . hsc($leet) . '</span>';
}
return true;
}
private function toLeet($text) {
$search = ['s','e','a','o','i','l'];
$replace = ['5','3','4','0','1','1'];
return str_ireplace($search, $replace, strtolower($text));
}
}
4. Plugin testen
Füge auf einer beliebigen Wiki-Seite folgenden Code ein:
<leet>Herzlich Willkommen</leet>
Erwartete Ausgabe:
h3rz11ch w111k0mm3n
5. Optional: CSS hinzufügen
Zur besseren Darstellung:
.leetify {
font-family: monospace;
background: #222;
color: #0f0;
padding: 2px 6px;
border-radius: 4px;
}
Weiterentwicklungsideen
- Unterstützung von Zufalls-Leet
- GUI zur Konfiguration der Zeichenersetzung
- Un-Leet-Konvertierung
Lizenz
Dieses Plugin steht unter der MIT-Lizenz.
it-themen/allgemein/erstellung_leetify-plugin.1747836094.txt.gz · Zuletzt geändert: von lars