Regulärer Ausdruck bei Medienanbietern

  • Affected Version
    WoltLab Suite 5.2

    Ich versuche gerade, ein paar Markdown-Befehle zu simulieren. Eigentlich könnte das ja ganz gut über die Medienanbieter-Funktion laufen, aber es funktioniert so gar nicht. MÜSSEN die überprüften Daten bei Medienanbieter Links sein?


    Hier ein Beispiel:


    regulärer Ausdruck: \*(?<Kursiv>.+)\*


    HTML-Code: <p style="font-style: italic;">{$Kursiv}</p> oder auch <i>{$Kursiv}</i> (funktioniert beides nicht)


    Hat jemand ne Idee?

  • Danke für die Hilfe.


    Was macht denn das P? Ich muss zugeben, dass ich mich noch nicht so wahnsinnig intensiv mit Regulären Ausdrücken auseinander gesetzt habe, hab das aber auch nicht gefunden...



    Und damit funktioniert es leider auch nicht.

  • Tim Düsterhus

    Hey, danke, hab ich mir fast schon gedacht... Weißt du, obs ne relativ einfache Möglichkeit gibt, das im Source-Code zu ändern? Könnte mir vorstellen, dass Beschränkungen raus nehmen unkomplizierter ist, als welche rein zu schreiben ;)

    • Official Post

    Hallo,


    das ist keine „Beschränkung“ per sé. Die automatische Umwandlung in den Medien-BBCode ist Bestandteil der automatischen Umwandlung von unverlinkten URLs: https://github.com/WoltLab/WCF…arser.class.php#L436-L439


    Vermutlich würde dein Vorhaben sogar bereits wie gewünscht funktionieren, wenn du den [media]-BBCode explizit setzt, aber das ist natürlich nciht Sinn der Sache und wäre insgesamt ein wenig von hinten durch die Brust ins Auge. Sinnvoller wäre es, wenn du das Markdown bei der Eingabe tatsächlich ins HTML wandeln würdest. Ansatzpunkt wäre der HtmlInputProcessor, ich bin aber nicht im Detail damit vertraut und sehe ad hoc auch kein passendes Event. Möglicherweise kann Alexander Ebert sagen wo am besten anzusetzen wäre.

    • Official Post

    Ich halte das Vorhaben insgesamt für nicht sinnvoll, da die Logik zum Erzeugen von gültigem HTML bereits sehr komplex ist und bestimmte Komponenten (z. B. BBCodes) auf sehr spezifische Konstrukte angewiesen sind. Eine vernünftige Markdown-Unterstützung kann nur funktionieren, wenn dies zu einem sehr frühen Zeitpunkt geschieht und penibel auf gültige Konstrukte geachtet wird. Dazu kommt noch, dass das Markdown nur bei der Eingabe existiert, bearbeitet man später einen entsprechenden Eintrag, so fehlt vom Markdown jede Spur.


    Persönlich mag ich Markdown sehr, es ist insgesamt relativ einfach und geht schnell von der Hand. Ich hatte sogar mal einen Entwurf gebaut, um Markdown nativ zu unterstützen, es dann aber schlußendlich wieder verworfen. Eine grobe Unterstützung ist relativ schnell gebaut ("ist ja schnell gebaut und ganz einfach"), aber wie so oft steckt der sprichwörtliche Teufel im Detail und am Ende hangelt man sich von einem Problem zum nächsten.


    Also ja, es ist machbar, aber mit so einem unverhältnismäßig hohem Zeit- und Arbeitsaufwand, und ohne eine Garantie, dass es jemals problemfrei funktionieren wird. Dementsprechend rate ich ausdrücklich von dem Vorhaben ab, es ist die Lebenszeit einfach nicht wert.