Das Plugin bindet Editor-Dateien auf Seiten ein, deren Skript tickets.php oder ticket.php heißt (Ticket-Ansichten), und bei ajax.php-Aufrufen, deren URL ticket enthält. AJAX-Anfragen selbst bekommen keine Assets. Das Plugin unterscheidet dabei nicht zwischen Staff-Bereich und Client-Portal: Es prüft nur den Skriptnamen.
Es übernimmt Eingabefelder mit dem Namen response (Antwort), note (interne Notiz) und message (Nachricht). Weitere Felder mit der Klasse richtext bekommen einen kompakten Editor: Toolbar ohne Bild-Schaltfläche, ohne Vorschau und ohne Bild-Upload.
Über dem Eingabefeld erscheint (bei aktivem Allow Format Switching) die Auswahl Format mit Markdown und HTML. Beim Wechsel auf HTML kehrt der normale osTicket-Editor zurück, beim Wechsel auf Markdown erscheinen Toolbar und Vorschau. Das gewählte Format sendet der Editor mit dem Formular als verstecktes Feld format mit.
| Schaltfläche | Markdown | Kürzel | Wirkung |
|---|---|---|---|
| Fett | **Text** |
Strg+B | Umschließt die Auswahl |
| Kursiv | *Text* |
Strg+I | Umschließt die Auswahl |
| Überschrift | # bis ###### |
Strg+H | Erhöht bei jedem Klick die Ebene von 1 bis 6, danach wieder 1 |
| Link | [Text](URL) |
Strg+K | Fragt die URL in einem Dialog ab |
| Inline-Code | `code` |
Umschließt die Auswahl | |
| Code-Block | ```sprache |
Fragt die Programmiersprache in einem Dialog ab | |
| Liste | - Punkt |
Aufzählung, eine Zeile pro Punkt | |
| Nummerierte Liste | 1. Punkt |
Nummerierung ab 1 | |
| Zitat | > Text |
Zitat pro Zeile | |
| Linie | --- |
Horizontale Linie | |
| Bild |  |
Öffnet den Dateidialog für einen Bild-Upload |
Auf dem Mac gilt Cmd statt Strg. Die Dialoge für Link und Code-Block sind im Plugin deutsch beschriftet (URL eingeben:, Programmiersprache (optional):).
Die Vorschau erscheint unterhalb des Eingabefelds. Sie wird 500 ms nach der letzten Eingabe über den Endpoint api/markdown-preview.php auf dem Server gerendert. Antwortet der Server nicht korrekt, rendert ein einfacher Konverter im Browser eine vereinfachte Vorschau. Diese Ersatz-Vorschau kennt keine Tabellen und keine Strikethrough-Syntax.
Auf schmalen Bildschirmen blendet die Schaltfläche Toggle Preview in der Toolbar die Vorschau ein und aus.
Im Markdown-Modus (nicht im kompakten Editor) lassen sich Bilder auf drei Wegen einfügen:
| Weg | Ablauf |
|---|---|
| Drag & Drop | Bilddatei in den Editor ziehen |
| Zwischenablage | Bild oder Screenshot mit Strg+V einfügen |
| Toolbar | Bild-Schaltfläche klicken und im Dateidialog auswählen |
Erlaubt sind JPEG, PNG, GIF, WebP und BMP. SVG ist nicht erlaubt. Das Plugin lädt das Bild über die osTicket-Draft-API ajax.php/draft/.../attach hoch, setzt während des Uploads den Platzhalter ![Uploading image-1...]() und ersetzt ihn danach durch . Als Alt-Text dient der Dateiname ohne Endung, aus dem die Zeichen [, ], ( und ) entfernt sind. Als URL akzeptiert das Plugin nur http://, https:// und file.php?.... Anderes ersetzt es durch #invalid-url.
Der Upload braucht den Draft-Kontext des Eingabefelds (Attribut
data-draft-namespaceoderdata-draft-id) und ein CSRF-Token auf der Seite. Ohne Draft-Kontext ist der Upload nicht verfügbar, ohne CSRF-Token bricht er ab.
Wählst du im Markdown-Modus einen Textbaustein aus der Auswahl #cannedResp, lädt das Plugin ihn über die osTicket-AJAX-Schnittstelle und wandelt das HTML im Browser in Markdown um. Im HTML-Modus bleibt das Standardverhalten von osTicket. Anhänge des Textbausteins werden in beiden Modi übernommen.
| HTML-Element | Markdown |
|---|---|
h1 bis h6 |
# bis ###### |
strong, b |
**fett** |
em, i |
*kursiv* |
a |
[Text](URL) |
img |
 |
blockquote |
> Zitat |
ul, ol |
- Punkt, 1. Punkt |
pre, code |
Code-Block, Inline-Code |
hr |
--- |
Die Textbausteine in der Datenbank bleiben unverändert.
Gerendert wird mit Parsedown (Version 1.7.4 laut composer.lock) im SafeMode.
# Überschrift 1
## Überschrift 2
**fett**, *kursiv*, ~~durchgestrichen~~, `Inline-Code`
- Aufzählung
- Punkt zwei
1. Nummerierte Liste
2. Punkt zwei
> Zitat
[Link-Text](https://example.com)

---
```php
echo "Hallo Welt";
```
javascript:) werden vom SafeMode und von Format::sanitize() entschärft. Siehe Technische Details.pre/code ausgegeben.Einträge mit dem Format markdown werden über die Klasse MarkdownThreadEntryBody gerendert, wo immer osTicket den Eintrag über seine Thread-Entry-Klassen ausgibt: Ticket-Ansicht der Agents, Client-Portal, PDF-Export und E-Mails. Beim PDF-Export ersetzt das Plugin Bilder mit http(s)-URL durch den Text [Image]. Die Suche nutzt den in Text umgewandelten HTML-Inhalt.
Wie das Markdown in ausgehende E-Mails kommt, steht unter Technische Details.