Markdown (wvdsmd)
Plugin: lib/plugins/wvdsmd (GPL 2) · Engine: wvdsdwmd (aus der WvdS-DW-Suite übernommen; ohne eigene Seite auf dieser Installation)
Autor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Markdown-Authoring nach dem Modell des WordPress-Plugins „Ultimate Markdown„, vollständig DokuWiki-adaptiert. Grundsatzentscheidung (verifiziert gegen inc/pageutils.php dieser Version): .txt bleibt die kanonische Datei — wikiFN()/page_exists()/Attic/Changelog sind ohne Event-Seam auf .txt verdrahtet; .md als einzige Datei würde Historie und Existenzprüfung brechen. Markdown ist deshalb Autoring-Format, nicht Speicher-Format.
Funktionsweise
- Autodetection: Erste Zeile
<!DOCTYPE markdown>⇒ die Seite ist eine Markdown-Seite.PARSER_WIKITEXT_PREPROCESSverpackt den Inhalt transparent in den<markdown>-Inline-Modus der wvdsdwmd-Engine (eine Engine im Haus: Parsedown + Sanitizer + FrontMatter + LinkBridge). Ohne wvdsdwmd rendert die Seite als normaler Wikitext (graceful). - Editor: Auf Edit-Ansichten von Markdown-Seiten lädt das Plugin die vendorte EasyMDE (MIT, offline) und ersetzt die Textarea; die Marker-Zeile ist im Editor unsichtbar und wird beim Speichern wieder vorangestellt. DokuWiki-Save/Draft-Fluss bleibt unverändert; ohne JS funktioniert die normale Textarea.
- Import: Verwaltung → „WvdS Markdown-Dokumente“: .md-Upload (mehrfach, ≤ 1 MB/Datei), Ziel-Namespace; YAML-Front-Matter
id/titlewird angewendet; Speicherung übersaveWikiText()⇒ Historie/Attic normal. - Export: Einzelseite als .md-Download (Marker gestrippt, verlustfreier Roundtrip) oder Namespace als ZIP (nur mit PHP-Zip-Erweiterung). Nur Markdown-Seiten sind exportierbar — Wiki-Syntax→Markdown-Konvertierung ist bewusst kein Ziel.
- Headless:
plugin.wvdsmd.importDocument(id, mdText, summary)/plugin.wvdsmd.exportDocument(id)über die Remote-API.
Rechte
Admin-Seite auch für Manager (Inhalts-Werkzeug); je Seite gilt die normale ACL — im Helper erzwungen: Import braucht EDIT auf bestehenden bzw. CREATE auf neuen Seiten (Core-Parität), Export READ. Ein Front-Matter-id darf nur innerhalb des gewählten Ziel-Namespace umlenken (Confused-Deputy-Härtung). Upload-Limits: 50 Dateien/Request, 1 MB/Datei.
wvdsdwmd-Adoption
wvdsdwmd stammt aus dem Repo wk-dw-md-plugin (devops.wvds.it). Die Registry-Anbindung ist zwar Duck-Typed-No-Op, aber das Render-Interface (MarkdownRenderer extends Contract) braucht wkcore zur Compile-Zeit — deshalb ist wkcore (Repo wk-dw-core-plugin) mitinstalliert; es ist zugleich die Layer-1-Basis für den späteren Instanz-Sync (AP13). Das alte mdpage-Plugin ist deaktiviert (doppelte <markdown>-Registrierung). Librarian-Kompatibilitätspatch: Typehint dokuwiki\Parsing\Handler → Doku_Handler in syntax.php (die Klasse existiert in 2025-05-14b noch nicht; ohne Patch E_COMPILE_ERROR bei jeder ungecachten Parsung). Bei Updates aus dem Repo den Patch erneut anwenden oder upstream versionieren.