Fehler beim Syntaxhighlighting


  • Mod

    Demo:

    for(int i =0; i < 10; ++i)
      foo = 0;
    

    [i]kursiv

    Den Fehler, dass die Tags innerhalb des Codeblocks fälschlich erkannt werden, kann ich ja noch nachvollziehen, aber es wäre cool, wenn mir jemand die Herkunft des ":XXXXXXXXXX" (anscheinend ist die Zahl vom Inhalt des Beitrags abhängig und ich habe keine Lust, hier ein Quine zu suchen 😮 ) erklären kann.


  • Administrator

    SeppJ schrieb:

    ..., aber es wäre cool, wenn mir jemand die Herkunft des ":XXXXXXXXXX" (anscheinend ist die Zahl vom Inhalt des Beitrags abhängig und ich habe keine Lust, hier ein Quine zu suchen 😮 ) erklären kann.

    PhpBB2 hat "coole" Optimierungen drin. Jedes BBCode-Tag wird vor dem Speichern in der DB mit einer Tag-ID versehen, welche pro Beitrag vergeben wird. Die Idee dahinter ist, dass die BBCode-Erkennung einmal durchgeführt werden muss, nämlich wenn der Beitrag in die DB gespeichert wird. Danach kann mit einem str_replace gearbeitet werden und entsprechend die erkannten Tags nur mit HTML Code ersetzen. Damit sind keine Regex bei der Ausgabe nötig. Auch können so später neue Tags eingeführt werden, welche in alten Beiträgen keine Probleme verursachen.

    Die Idee ist zwar nett, aber leider auch nicht so ganz vollständig durchgedacht. Zudem hat man durch eigene Erweiterungen der BBCode-Tags in diesem Forum sich zum Teil nicht an diese Tag-ID Sache gehalten, wodurch wir schon seit längerem ein schönes Mischmasch haben.

    Der Bug hier ist allerdings tatsächlich, dass diese ID sichtbar ist. Eigentlich sollte diese beim Syntax-Highlighting entfernt werden.



  • #NächsteGeneration

    PS: @SeppJ, Ich hoffe den Code hast du nicht selber verfasst, oder?


  • Mod

    Arcoth schrieb:

    PS: @SeppJ, Ich hoffe den Code hast du nicht selber verfasst, oder?

    Es handelt sich um ein reduziertes Minimalbeispiel zu einem Beitrag, den ich so im C++-Forum gesehen habe. Warum fragst du? 😕



  • SeppJ schrieb:

    Arcoth schrieb:

    PS: @SeppJ, Ich hoffe den Code hast du nicht selber verfasst, oder?

    Es handelt sich um ein reduziertes Minimalbeispiel zu einem Beitrag, den ich so im C++-Forum gesehen habe. Warum fragst du? 😕

    Na weils viel effizienter geht?
    Edit: Wobei, vielleicht greift da gar ein Optimizer.


  • Administrator

    Ich habe mal einen sehr einfachen Fix eingebaut.


  • Mod

    Dravere schrieb:

    Ich habe mal einen sehr einfachen Fix eingebaut.

    Mein Hauptanliegen war aber eigentlich, dass Tags außerhalb von Codeblöcken nicht funktionieren, wenn sie innerhalb davon zufällig vorkommen (mit [i] als typischem Beispiel). Die komische Zahl war nur ein dabe auftretender Nebeneffekt (wenn auch noch störender als eine falsche Formatierung).


  • Administrator

    SeppJ schrieb:

    Dravere schrieb:

    Ich habe mal einen sehr einfachen Fix eingebaut.

    Mein Hauptanliegen war aber eigentlich, dass Tags außerhalb von Codeblöcken nicht funktionieren, wenn sie innerhalb davon zufällig vorkommen (mit [i] als typischem Beispiel). Die komische Zahl war nur ein dabe auftretender Nebeneffekt (wenn auch noch störender als eine falsche Formatierung).

    Ich weiss. Allerdings dies zu korrigieren, ist nur mit sehr viel Aufwand möglich. Aktuell lohnt sich das nicht.


Anmelden zum Antworten