archilles scriptworld Forum

» Startseite
  » Support-Foren
      » Skriptsupport
        » Talkboard Forum
            · Wo kann ich etwas am Parser ändern?

Seite: 1

Wo kann ich etwas am Parser ändern? TheMasterJK
Hallo,

ich hab gesucht, aber irgendwie bin ich nicht fündig geworden... ich hab echt keine Ahnung, wie du das machst... :D

Deswegen frag ich jetzt hier...

Da das Forum, das ich betreibe für Physik und Mathestudenten ausgelegt ist brauch ich ne TeX-Implementierung... nach längerem verzweifelten Suchen habe ich auch was gefunden, was ich einbinden könnte, allerdings parst das Ding selber... und nun macht der das aber blöd, wenn ich ihn den normalen Forentext parsen lasse... da stehen dann nämlich auf einmal überall <br> da... deshalb würde ich gerne nur den Teil parsen lassen, der wirklich TeX enthält, also ne art [ tex ] Tag machen...

Nun weiß ich leider nicht wo...

Könntest du mir da bitte auf die Sprünge helfen?

Vielen Dank!
mfg
TheMasterJK

Re: Wo kann ich etwas am Parser ändern? Archilles
Hallo,

einen eigenen Parser kannst du auf unterschiedliche Weise einbinden. Am sinnvollsten wäre wohl eine, welche bei einem Forumupdate nur minimale Eingriffe erfordert. Dazu sollte der Tex-Parser in eine eigene Funktion gepackt werden, die einerseits natürlich das Textstück vom Hauptparser annimmt und seine Version dann zurückgibt. Die Funktion lagert am besten auch in einer eigenen Datei. Für die Aktivierung gibt es zwei Möglichkeiten. Entweder ein neues Tag, wobei dann allerdings hier auch Formatierungen möglich sind, ähnlich quote oder b, i und u. Oder als Bestandteil in einem Code-Block. Dann benötigt man allerdings etwas woran der Codeparser den Tex-Modus erkennt. Bei PHP ist das ja sein Einleitungsstring "<?php".

Dann beschränken sich die Eingriffe im Forumcode auf die dll-preprocessor.class.php. Nach dem Schema:

PHP-Quelltext:
============================================================

<?php
function KERN_Text_Preprocessor_Code(){
  if ( 
"PHP-Einleitung gefunden" )
  
// erledige PHP-Parser
  
elseif ( "Tex-Einleitung gefunden" ){
  require_once(
'tex-parser.php');
  
// erledigt Tex-Parser
  
}
  else
  
// formatiere ohne Einfärbungen
}?>

Re: Wo kann ich etwas am Parser ändern? Archilles
So, ich habe den Parser etwas geändert, sodaß er weitere Modi für das Highlighting aufnehmen kann. Der vorhandene Code-Tag wird erweitert, um einen Kommentar und den Modus angeben zu können. Ohne diese Angaben, d.h. (code) funktioniert weiterhin, wird automatisch erkannt. Was eingefärbt werden soll, wird anhand regulärer Ausdrücke erkannt und CSS-Klassen bereitgestellt. Das bedeutet, daß jeder sein "eigenes" Farbschema, außer bei PHP-Quellcode (nutzt PHP-interne Funktion), einstellen kann.

Im folgenden Bild sehen die beiden Tags so aus:

(code=kernel_nav_tplV2.tpl,HTML)
(code=,UNIFIED_DIFF)
Unterstützt: NONE, HTML, PHP und UNIFIED_DIFF
______________________________________________________

embedded image
Klick für großes Bild...

Seite: 1

Copyright (c) by "archilles scriptworld Forum", 2009. All rights reserved.
This archive has no free license, but any copyright laws applicable by your local country.