Editor: Inline-Code BBCode in Inline-Code klappt nicht

  • Inline-Code BBCode im Inline-Code klappt nicht wie erwartet.


    Erwartung:

    [*tt]test[*/tt] (ohne die *)


    Ergebnis:

    [tt]test[/tt]

    • Official Post

    Der BBCode-Parser kann nicht eindeutig feststellen, welcher schließende Tag zugehörig ist und arbeitet daher in solchen Fällen "ungreedy". Dies bedeutet, dass das erste passende, schließende Element bei Code-Elementen als zugehörig angesehen wird.

  • Der BBCode-Parser kann nicht eindeutig feststellen, welcher schließende Tag zugehörig ist und arbeitet daher in solchen Fällen "ungreedy". Dies bedeutet, dass das erste passende, schließende Element bei Code-Elementen als zugehörig angesehen wird.

    braucht der Parser dann, entschuldigung für die Umgangsprache - eine Brille - Der Grund warum ich Frage in dem Beispiel oben ist das deutlich das nach dem "Test" ist das erste Zeichen eine öffnende [-Klammer mit anschließendem / Tagbezeicher und abschließender ]-Klammer


    was ist da nicht erkenbar für den Parser? ich hätte es ja verstanden, das es kompliziert wird, wenn sich jemand die Mühe macht die Tags in einander zu verschachteln, aber das ist so wie ich dem Beispiel folge nicht der Plan gewesen


    Wenn der Test innerhalb des TT stehen soll und da steht

    Code
    [tt]Test[/tt]

    , warum kann der Parser das nicht interpretieren, wenn direkt hinter dem Test der schließtag steht?


    ist das dann ein generelles PHP-Problem, oder fehlt da bloß ggf. eine Zeichenfolge im Parsercode?


    Edit: hier funktioniert es doch im Forum und der "Schnellantwort" die kann das umsetzen, warum klappts dann beim TE nicht?


    test

    Hunde die bellen, beißen nicht? -> nun, ich bin kein Hund. -> Ich belle nicht. - Ich Beiße! 8o

    • Official Post

    Es geht um das folgende Konstrukt:

    Code
    [tt][tt]…[/tt][/tt]

    Das kann der Parser nicht auflösen, da dieser nicht erkennen kann, wann das der schließende Tag "wörtlich" gemeint ist und wann dieser Bestandteil des zu umschließenden Textes ist.


    Das Grundproblem bei BBCodes ist, dass nicht garantiert werden kann, dass die BBCodes gültig sind. Bei HTML sorgt der Editor dafür, dass das HTML grundsätzlich wohlgeformt ist und der serverseitige Parser arbeitet entsprechend restriktiv. Dadurch kann auch die Verschachtelung erkannt werden, denn ein reines "Abzählen" der offenen Tags erlaubt die korrekte Zuordnung.

  • Es geht um das folgende Konstrukt:

    Code
    [tt][tt]…[/tt][/tt]

    Das kann der Parser nicht auflösen, da dieser nicht erkennen kann, wann das der schließende Tag "wörtlich" gemeint ist und wann dieser Bestandteil des zu umschließenden Textes ist.


    Das Grundproblem bei BBCodes ist, dass nicht garantiert werden kann, dass die BBCodes gültig sind. Bei HTML sorgt der Editor dafür, dass das HTML grundsätzlich wohlgeformt ist und der serverseitige Parser arbeitet entsprechend restriktiv. Dadurch kann auch die Verschachtelung erkannt werden, denn ein reines "Abzählen" der offenen Tags erlaubt die korrekte Zuordnung.

    DAS hatte ich dann missverstanden und das leuchtet dann irgendwie doch - siehe "verschachtelte codes .." war ja aber auch nicht böse gemeint

    Hunde die bellen, beißen nicht? -> nun, ich bin kein Hund. -> Ich belle nicht. - Ich Beiße! 8o