WBCE CMS – Way Better Content Editing.
You are not logged in.
Zum Thema MD zu HTML
Da gibt es Parsedown unter der MIT Lizenz
https://github.com/erusev/parsedownHabe ich schon einmal in einem anderen Modul verwendet. Liefert gute Ergebnisse
Könnte so in der Art funktionieren:
Danker für die "Steile Vorlage"
Hier das Ergebnis:
MD Viewer 0.2.0 — WBCE-konform + Multiinstanz-Fix
Stand: 24. März 2026
Hallo beach,
tolle Vorarbeit mit dem MD Viewer! Wir haben das Modul WBCE-konform
aufbereitet und ein paar Bugs gefixt. Hier der Überblick:
Was neu ist in 0.2.0
WBCE-Konformität
Guard-Stil durchgehend: defined('WB_PATH') or die(...)
Datei-Header in allen PHP-Dateien
CSS + JS ausgelagert in css/ und js/ Unterverzeichnisse
Directory-Schutz (index.php) in css/ und js/
add.php (neu)
Standardwerte für neue Sektion beim Anlegen
upgrade.php (neu)
Tabelle anlegen falls nicht vorhanden
Fehlende Spalten ergänzen — Migrationssicherheit
Multiinstanz-Fix
Zwei MD Viewer Sektionen auf einer Seite funktionierten nicht korrekt
Closure durch function_exists Guard ersetzt
Alle HTML-IDs mit Section-ID eindeutig gemacht
JavaScript nutzt data-sid für korrektes Targeting je Instanz
save.php
checkFTAN() Rückgabewert wird jetzt korrekt geprüft
Direkter Redirect nach Speichern — kein Zwischenstopp mehr
Ergebnis
Multiinstanz ✅ — mehrere MD Viewer Sektionen auf einer Seite
skip_title ✅ — Ersten H1 Titel ausblenden
Interne + externe MD-Dateien ✅
Kein Fehler im Errorlog ✅
Getestet: WBCE 1.6.5 / PHP 8.5.2
Umgebung
MD Viewer Version: 0.2.0
WBCE: 1.6.5
PHP: 8.5.2
Last edited by Slugger (24.03.2026 16:39:34)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
beach
MD Viewer 0.3.9 — Drag & Drop + Admin-Tool
Stand: 27. März 2026
Hallo Team,
der MD Viewer hat ein großes Update bekommen!
Danke beach für die solide Basis — wir haben ordentlich draufgesattelt. ?
Was ist neu in 0.3.9?
Hybrid-Modul
MD Viewer erscheint jetzt als Page-Modul UND als Admin-Tool
module_function = 'page,tool' — seit WBCE 1.4 möglich -> Das vergisst die KI immer, weil das Handbuch verwirrend ist 
Admin-Tool — Zentrale Verwaltung
Übersicht ALLER MD Viewer Abschnitte auf einen Blick
Spalten: Seite, Abschnitt Name, Section-ID, MD-Datei, Typ, H1 überspringen
Direkt bearbeiten — kein Navigieren durch die Seitenstruktur
Filter: Dropdown nach Seite + Freitext Suche + Zurücksetzen
MD-Datei hochladen mit Drag & Drop Dropzone
Ordner-Dropdown mit rekursiver Unterordner-Anzeige
Drag & Drop Upload je Abschnitt
Dropzone direkt im Backend je MD Viewer Abschnitt
Zielordner konfigurierbar — Fallback: section_{ID}
Nach Upload erscheint die Datei sofort im Dropdown
Case-insensitiver Ordnervergleich — Linux-kompatibel
Nur .md Dateien erlaubt
DB-Erweiterung
Neue Spalte md_folder
upgrade.php migriert bestehende Installationen automatisch
Umgebung
MD Viewer Version: 0.3.9
WBCE: 1.6.5
PHP: 8.5.2
Getestet: Install, Upload, Speichern, Filter — kein Fehler im Errorlog
Last edited by Slugger (27.03.2026 17:26:42)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
Der MDViewer funktioniert alleine super, aber wenn mehrere Abschnitte (irgendwelche) mit auf der Seite sind, gibts Einträge im Errorlog.
2026-03-27T17:27:39+00:00 [Warning] /modules/droplets/droplets.php:[73] from /modules/droplets/opf_filter_droplets.php:[68] evalDroplets "Undefined array key 1"
Last edited by florian (27.03.2026 20:14:10)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Guter Vorschlag, denn ich liefere gleich noch eine weiteres Update.
OK ich schaue mal wegen der Fehlermeldung, das habe ich explizit nicht getestet.
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
Wir müssen irgendwie die Übersicht behalten... kann ich das Thema MDViewer nach Module in Entwicklung verschieben?
---
Der MDViewer funktioniert alleine super, aber wenn mehrere Abschnitte (irgendwelche) mit auf der Seite sind, gibts Einträge im Errorlog.2026-03-27T17:27:39+00:00 [Warning] /modules/droplets/droplets.php:[73] from /modules/droplets/opf_filter_droplets.php:[68] evalDroplets "Undefined array key 1"
Mein Freund meint:
Fix — droplets.php Zeile 73:
// VORHER (kaputt):
$match[1]
// NACHHER (fix):
$match[1] ?? ''
```
Das ist ein bekannter PHP 8.x Deprecated Fix — gleiche Kategorie wie unsere anderen Fixes.
**Soll ich:**
```
Option A: Droplets PHP 8.x Fix machen
→ ZIP + Changelog + BBCode
Option B: Florian Bescheid geben
→ Das ist sein/Community Modul
Option C: Forum Ticket erstellen
→ Community informieren
Last edited by Slugger (27.03.2026 20:09:05)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
Option A dann bitte - mit neuer Versionsnummer in der info.php (2.4.1)
Bitte grundsätzlich Versionsnummern hochzählen, nicht _fixed dranhängen.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
MD Viewer 0.4.1 — Drag & Drop + Admin-Tool + Fixes
Stand: 27. März 2026
Hallo beach, hallo Community,
der MD Viewer hat ein großes Update bekommen!
Danke beach für die solide Basis — wir haben ordentlich draufgesattelt. ?
Was ist neu seit 0.2.0?
Hybrid-Modul
MD Viewer erscheint jetzt als Page-Modul UND als Admin-Tool
module_function = 'page,tool' — seit WBCE 1.4 möglich
Admin-Tool — Zentrale Verwaltung
Übersicht ALLER MD Viewer Abschnitte auf einen Blick
Spalten: Seite, Abschnitt Name, Section-ID, MD-Datei, Typ, H1 überspringen
Direkt bearbeiten — kein Navigieren durch die Seitenstruktur
Filter: Dropdown nach Seite + Freitext Suche + Zurücksetzen
MD-Datei hochladen mit Drag & Drop Dropzone
Ordner-Dropdown mit rekursiver Unterordner-Anzeige
Block "nicht zeigen" → Zeile gelb hervorgehoben mit Warnung
Sonderzeichen in Abschnitt Name korrekt angezeigt
Drag & Drop Upload je Abschnitt
Dropzone direkt im Backend je MD Viewer Abschnitt
Zielordner konfigurierbar — Fallback: section_{ID}
Nach Upload erscheint die Datei sofort im Dropdown
Case-insensitiver Ordnervergleich — Linux-kompatibel
Nur .md Dateien erlaubt
DB-Erweiterung
Neue Spalte md_folder
upgrade.php migriert bestehende Installationen automatisch
Versionshistorie
0.3.0 — Grundgerüst Drag & Drop + Admin-Tool
0.3.1 — module_function → page,tool (Hybrid)
0.3.2 — section_id optional, Unterordner rekursiv
0.3.3 — Slash + Leerzeichen im Ordnerpfad erlaubt
0.3.4 — Case-insensitiver Ordnervergleich
0.3.5 — Filter: Dropdown + Freitext + Zurücksetzen
0.3.6 — Dropzone Optik — Cloud-Icon + Button
0.3.7 — Admin-Tool Upload als Dropzone
0.3.8 — Dropdown oben, Dropzone darunter
0.3.9 — Beide Dropzones zentriert
0.4.0 — block=99 Erkennung + Sonderzeichen Fix
0.4.1 — block Prüfung korrigiert (99 = nicht zeigen)
Umgebung
MD Viewer Version: 0.4.1
WBCE: 1.6.5
PHP: 8.5.2
Getestet: Install, Upload, Speichern, Filter — kein Fehler im Errorlog
Last edited by Slugger (27.03.2026 20:36:41)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
beach
Du müsstest Claude bitte mal fragen, ob ihm eine Möglichkeit einfällt, die MD-Dateien in die WBCE-Suche zu integrieren. Also entweder eine eigene Suchfunktion, die sich (aber trotzdem) via search.php in die WBCE-Suchfunktion einklinken lässt, oder dass die MD-Dateien geparst werden und pro Abschnitt ein Blob mit Stichworten (ohne Füllwörter) in der Datenbank gespeichert wird, die dann per search.php an die Suche übergeben werden.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Slugger
Hallo Florian,
Claude meint:
Ansatz 1 — search.php Hook (WBCE-nativ)
WBCE ruft bei einer Suche für jedes Modul eine search.php auf, sofern vorhanden. Die Datei bekommt $search_query und gibt Treffer zurück.
Für MD Viewer:
search.php liest alle md_source-Einträge aus der DB
Lädt die jeweilige MD-Datei vom Dateisystem
Durchsucht den Plaintext (Markdown ohne Syntax) nach $search_query
Gibt Treffer im WBCE-Standardformat zurück
Pro: Immer aktuell, kein Extra-Index
Con: Bei vielen/großen MD-Dateien langsam (alle Dateien bei jeder Suche lesen)
Ansatz 2 — Index-Blob in DB
Beim Speichern (save.php) oder Upload (upload.php) wird die MD-Datei geparst
Stoppwörter entfernt
Pro: Schnell, skalierbar
Con: Index kann veralten wenn MD-Datei außerhalb WBCE geändert wird; Stoppwort-Liste muss gepflegt werden
Zum Thema MD Dateien bearbeiten:
Ansatz 1 — Simpel: Textarea
modify.php zeigt Textarea mit MD-Inhalt
Speichern schreibt Datei zurück auf Filesystem
Kein Extra-JS nötig
Pro: Einfach, keine Abhängigkeiten
Con: Kein Syntax-Highlighting, unkomfortabel bei großen Dateien
Ansatz 2 — CodeMirror (WBCE-nativ)
WBCE hat CodeMirror bereits eingebaut (registerCodeMirror()).
Textarea mit registerCodeMirror($id, 'markdown') upgraden
Syntax-Highlighting für Markdown
Bereits im WBCE-Backend-Theme integriert
Pro: Kein externes JS, WBCE-konform, sieht gut aus
Con: CodeMirror-Markdown-Modus ist rudimentär
Ansatz 3 — Split-View: Editor + Live-Preview
Links: CodeMirror oder Textarea
Rechts: Live-Preview via JS (Parsedown läuft serverseitig, also AJAX-Preview oder clientseitiger MD-Parser wie marked.js)
Speichern per AJAX
Pro: Komfortabel, professionell
Con: Mehr Aufwand, externe JS-Lib für clientseitigen Preview
Last edited by Slugger (05.04.2026 09:49:46)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
florian
bei der Suche würde ich zur DB Lösung tendieren, jedesmal alle Dateien auslesen dürfte lange dauern.
Bearbeiten - Ansatz 2 scheint mir ein sinnvoller Kompromiss zu sein.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Ich habe das mal in Roadmap gepackt.
0.4.4 — Suche
Search-Index-Blob beim Speichern/Upload
search.php Hook für WBCE-Suche
0.4.5 — Multi-Upload + Nativer Seitenbaum
Mehrere MD-Dateien gleichzeitig hochladen
Nativer Seitenbaum im Admin-Tool
0.4.6 — MD-Editor
CodeMirror Editor für MD-Dateien
Parser-Entscheidung: Parsedown (AJAX) vs. marked.js
Live-Preview optional nach Entscheidung
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
florian
MD Viewer 0.4.4 — Suchindex + WBCE Search Hook
Stand: 09. April 2026 | Getestet: WBCE 1.6.5 / PHP 8.5.2
Der MD Viewer hat Anschluss an die WBCE-Suche bekommen!
MD-Viewer 0.4.4 - Versionsnummer auf 0.4.5 geändert.
MD-Viewer 0.4.5 - Was ist neu?
Suchindex — MD-Dateien werden beim Speichern und Upload automatisch indexiert. Stoppwörter (DE + EN) werden herausgefiltert, der Index landet in einer eigenen Tabelle [c]mod_md_viewer_search[/c].
search.php — WBCE Search Hook. Der MD Viewer klinkt sich in die native WBCE-Suche ein. Pre-Filter via Index-Blob, Excerpts werden aus dem MD-Volltext generiert — inklusive Highlighting wie bei anderen Modulen.
Index neu aufbauen — Button im Admin-Tool für den Fall dass der Index manuell repariert werden muss (z.B. nach direkten Dateiänderungen per FTP).
Geänderte Dateien:
save.php,
upload.php,
tool.php,
js/tool.js,
upgrade.php,
info.php
Neue Dateien:
lib/stopwords.php,
lib/search_index.php,
search.php,
rebuild_index.php
Update: ZIP einfach über das WBCE Backend installieren — upgrade.php legt die neue Suchtabelle automatisch an.
Feedback und Bugreports wie immer willkommen!
Last edited by Slugger (09.04.2026 14:11:44)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
Danke, aber geht glaube ich noch nicht - Update eingespielt, Index aufgebaut, DB-Feld wird korrekt befüllt, Begriffe werden aber nicht gefunden. Könnte daran liegen, dass es in der search.php kein function mdviewer_search($func_vars) gibt. Vgl. andere Module wie z.B. OfA oder NWI.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Auch bei den Grundeinstellungen der Suche unten den Eintrag md_viewer vorne eingetragen?
Ich habe angezeigte Ergebnisse auf der Projektseite, die es vorher nicht gab
Last edited by Slugger (09.04.2026 14:54:25)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
Auf der Projektseite™ werden Seiten gefunden, wenn der Suchbegriff im Seitentitel steht. Wird nach Begriffen gesucht, die im Content stehen, kommen keine Fundstellen.
Die Suche gibt normalerweise auch einen Textschnipsel mit aus, in dem der umgebende Text steht, das ist bei Funden aus MD Viewer auch nicht der Fall.
Such auf der Projektseite mal nacheinander nach
Grundeinstellungen
Tabelle
willkommen
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Alles klar Florian, ich nehme das genauer unter die Lupe. Bin noch unterwegs. Bis später
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
florian
MD Viewer 0.4.6 — search.php Fix
Stand: 09. April 2026 | Getestet: WBCE 1.6.5 / PHP 8.5.2
Kleiner Fix — Danke Florian für den Hinweis!
Was wurde gefixt?
search.php war nicht korrekt in die WBCE-Sucharchitektur eingebunden. WBCE erwartet eine Funktion md_viewer_search($func_vars) — der Code lief bisher direkt und wurde daher nie aufgerufen.
Jetzt korrekt: Funktion md_viewer_search($func_vars) implementiert, Excerpts + Highlighting funktionieren wie bei anderen Modulen.
Update: Nur search.php + info.php per FTP tauschen — oder ZIP über Backend installieren.
Last edited by Slugger (10.04.2026 05:23:02)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
florian, stefanek
MD Viewer 0.4.7-beta2 — Seitenbaum + Multi-Upload + Tabs
Stand: 12. April 2026 | Getestet: WBCE 1.6.5 / PHP 8.5.2
Großes Update für das Admin-Tool — als Beta zum Testen!
Was ist neu?
4 Tabs — Seitenbaum / Abschnitte / Upload / Suchindex
Nativer Seitenbaum — kompletter WBCE-Seitenbaum mit MD Viewer Zuweisung
— Seiten mit MD Viewer: MD-Datei + H1-Skip direkt bearbeitbar
— Seiten ohne MD Viewer: ausgegraut, nur lesend
— Aufklappbare Hierarchie (▶/▼)
Multi-Upload — mehrere .md Dateien gleichzeitig hochladen, sequentieller Upload mit Fortschrittsanzeige und Ergebnisliste je Datei
Geänderte Dateien:
tool.php, js/tool.js, css/backend.css, info.phpBeta — Feedback willkommen!
Bitte testen und Bugs melden.
Last edited by Slugger (12.04.2026 18:05:23)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
florian
Kurzer Test:
- in der Abschnitte-Liste erscheint auch ein Geister-MD-Abschnitt, bei Klick darauf kommt "Invalid Arguments - Script stopped"
- Zuordnung von übers Admintool hochgeladenen MD-Dateien im Admintool nicht möglich, dortige "Speichern"-Schaltfläche reagiert nicht
- MD-Abschnitte auf einer Seite mit Sichtbarkeit privat/registriert werden auch wenn man angemeldet ist nicht gefunden
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Kurzer Test:
- in der Abschnitte-Liste erscheint auch ein Geister-MD-Abschnitt, bei Klick darauf kommt "Invalid Arguments - Script stopped"
- Zuordnung von übers Admintool hochgeladenen MD-Dateien im Admintool nicht möglich, dortige "Speichern"-Schaltfläche reagiert nicht
Beta3 im Anhang
- MD-Abschnitte auf einer Seite mit Sichtbarkeit privat/registriert werden auch wenn man angemeldet ist nicht gefunden
Was meinst du konkret:
A) Suche findet private Seiten nicht (→ gewollt, kein Bug)
B) Frontend zeigt Inhalt nicht an obwohl eingeloggt (→ WBCE-seitig, nicht MD Viewer)
C) Etwas anderes?
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
Geisterabschnitt ist weg, aber "Speichern" geht immer noch nicht
Suche liefert jetzt auch auf öffentlichen Seiten keine Ergebnisse mehr (PHP 8.4, frisches 1.6.5)
Grund:
[13-Apr-2026 09:34:21 UTC] Table '[...].w0413_mod_md_viewer_search' doesn't exist
[13-Apr-2026 09:34:21 UTC]
SELECT
m.section_id,
m.md_source,
m.md_source_type,
p.page_title,
p.link,
p.modified_when,
p.modified_by,
p.description
FROM `w0413_mod_md_viewer_search` s
INNER JOIN `w0413_mod_md_viewer` m ON m.section_id = s.section_id
INNER JOIN `w0413_sections` sec ON sec.section_id = m.section_id
INNER JOIN `w0413_pages` p ON p.page_id = sec.page_id
WHERE p.visibility = 'public'
AND (s.`search_index` LIKE '%Zielordner%')
ORDER BY p.page_title ASC
2026-04-13T09:34:21+00:00 [User Notice] /framework/class.database.php:[333] from /modules/md_viewer/search.php:[59] database->query "STATEMENT: SELECT m.section_id, m.md_source, m.md_source_type, p.page_title, p.link, p.modified_when, p.modified_by, p.description FROM `w0413_mod_md_viewer_search` s INNER JOIN `w0413_mod_md_viewer` m ON m.section_id = s.section_id INNER JOIN `w0413_sections` sec ON sec.section_id = m.section_id INNER JOIN `w0413_pages` p ON p.page_id = sec.page_id WHERE p.visibility = 'public' AND (s.`search_index` LIKE '%Zielordner%') ORDER BY p.page_title ASC "
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
md_viewer_0_4_7_beta4
gefixt:
Suche — install.php legt jetzt auch mod_md_viewer_search an (war nur in upgrade.php)
Speichern — JS-Handler vereinfacht, immer document-Level Lookup
Geänderte Dateien: install.php + js/tool.js
Ich habe auch noch eine Auffälligkeit im Seitenbaum gefunden, das werde ich im Laufe es Tage korrigieren.
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
florian
MD auf öffentlichen Seiten werden gefunden
MD auf privaten Seiten nicht*
Speichern-Schaltfläche im MD-Admintool auf dem Reiter Seiten geht
Speichern-Schaltfläche im MD-Admintool auf dem Reiter Abschnitte geht nicht
* Bei WYSIWYG verhält es sich so:
Text in Abschnitt auf Seite mit Sichtbarkeit privat/registriert.
Angemeldeter Nutzer mit Zugriffsrechten sucht -> Suchbegriff wird gefunden, Seite verlinkt
nicht angemeldeter Besucher sucht -> Suchbegriff wird nicht gefunden
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
md_viewer_0_4_7_beta5 fix:
Bug A — Speichern Tab "Abschnitte": eindeutige Status-IDs pro Tab (mdv-status-tree-{sid} vs mdv-status-{sid})
Bug B — Seitenbaum zeigt jetzt alle MD-Abschnitte pro Seite
Bug C — Suche: eingeloggte User finden auch private/registrierte Seiten
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
florian
top
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline