Syntaxhighlighting

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Dienstag 5. Oktober 2004, 17:46

Leonidas hat geschrieben:aber man muss nicht die Leute, die <? verwenden als ??? (paste here) abstempeln.


Hi. Das würde ich gerne einmal sehen, wo das gemacht wurde :lol: . Aber auch wenn beides geht... ist es nicht egal, was benutzt wird, solange das Template in korrekten ( == validierbaren) (X)HTML Code umgewandelt wird, ist es doch eigentlich egal. PHP ist IMHO selbst nicht so schön sauber wie Python, weshalb ich es niemals für größere Sachen einsetzen würde... :?
Benutzeravatar
seli
User
Beiträge: 12
Registriert: Montag 4. Oktober 2004, 22:58
Kontaktdaten:

Beitragvon seli » Dienstag 5. Oktober 2004, 18:02

Leonidas hat geschrieben:aber man muss nicht die Leute, die <? verwenden als ??? (paste here) abstempeln.

Ich hab bloss gesagt, dass '<?php' korrekter sei. Wenn du das als Provokation siehst tut es mir leid.

Ich suche mal irgendwo einen Artikel, der besagt dass <?php besser ist. Dann glaubt ihr mir vielleicht :P


Milan hat geschrieben:Aber auch wenn beides geht... ist es nicht egal, was benutzt wird, solange das Template in korrekten ( == validierbaren) (X)HTML Code umgewandelt wird, ist es doch eigentlich egal.

Ja, das Script funktioniert. Aber dank "toleranten" (soll nicht positiv sein) Browsern funktioniert auch eine HTML Seite ohne Doctype usw.


Milan hat geschrieben:PHP ist IMHO selbst nicht so schön sauber wie Python, weshalb ich es niemals für größere Sachen einsetzen würde... :?

Ich behaupte das exakte Gegenteil.
:wq
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

Beitragvon RainBowBender » Dienstag 5. Oktober 2004, 18:09

kriegt euch wieder ein.
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Dienstag 5. Oktober 2004, 18:30

Hi,

kann mich Rainbowbender nur anschließen. Wer sich genauer über PHP und <?php oder <? informieren will denen empfehle ich
http://www.phpcenter.de/


Gruß

Dookie
P.S.: wer sich das Script mal genauer angesehen hat, sieht, daß es sich dabei keinesfalls um ein Script handelt das man direkt im Browser aufrufen kann, sondern nur zum Include in eine php-Seite vorgesehen ist. Von daher ists wirklich egal ob <?php...?> oder nur <?...?>

Code: Alles auswählen

#!/usr/bin/env python
import this
Gast

Beitragvon Gast » Freitag 29. Oktober 2004, 13:00

hallo!

schöner mod!
aber ich glaube, es gibt da noch ein paar probleme mit dem highlighter.
schau dir am besten den quelltext von meinem post an, hier wirds nämlich gleich seltsam :D

Code: Alles auswählen

a = """test\""" # string endet erst hier-->"""
b = 'here\\'  # <-- doppelslash macht probleme
def def  # sehr schön :)  # <-- smileys? :(
a = foo[b]  ;)
die letzte zeile sollte nicht bold sein.
murphy

Beitragvon murphy » Freitag 29. Oktober 2004, 13:01

verzeihung, wollte gar nicht anonym kommen.
bin murphy und melde mich demnächst noch an ^^
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 29. Oktober 2004, 14:28

murphy hat geschrieben:

Code: Alles auswählen

a = foo[b]  ;)
die letzte zeile sollte nicht bold sein.

Ist sie doch auch nicht...
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Beitragvon murphy » Samstag 30. Oktober 2004, 01:36

ok, in wirklichkeit habe ich folgendes geschrieben:
[python]a = """test\""" # string endet erst hier-->"""
b = 'here\\' # <-- doppelslash macht probleme
def def # sehr schön :) # <-- smileys? :(
a = foo[b] ;)[/python]die letzte zeile sollte nicht [b]bold[/b] sein.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 30. Oktober 2004, 09:50

Meinst du sowas?

Code: Alles auswählen

b = 'blabla'
a = foo[b]

Das geht imho problemlos, aber dein Test ist gar nicht schlecht, denn Smileys im Quellcode... naja, nicht so mein Fall.
Trotzdem muss ich sagen das Dookie's Highlighting echt gut gelungen ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Beitragvon murphy » Samstag 30. Oktober 2004, 18:24

Leonidas hat geschrieben:Das geht imho problemlos
nicht, wenn später noch ein [b] vorkommt.

leider ist das BBCode-system extrem mies designed, wirklich EXTREM mies :)
erweiterungen zu schreiben ist eine qual. ich schreibe selber an einem highlighter-mod und musste eine menge schlimme dinge tun, damit das läuft. aber am ende funktioniert es jetzt, zumindest habe ich lange keinen fehler entdeckt :)
wer sich das ganze mal anschauen will: http://rd.cYcnus.de
Python geht natürlich auch. und ich würde mich freuen, wenn ihr den scanner ausgiebig testet und versucht, ihn "kaputt" zu kriegen :)

der Pyhon-thread ist hier:
http://rd.cycnus.de/phpBB2/viewtopic.php?t=14

highlighting geht per oder auch nur [code=py].

mein ziel ist es, dass der scanner mindestens so gut ist wie der hier ;)

Trotzdem muss ich sagen das Dookie's Highlighting echt gut gelungen ist.
das stimmt. wie sieht es mit der geschwindigkeit aus? habe das noch nicht getestet...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 30. Oktober 2004, 19:34

Mhh, dein Hightlighter sieht cool aus!! Kann man die Farben ändern? Denn Dookies Highlighter hat schön die gleichen Farben wie das Highlighting in SciTE.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 30. Oktober 2004, 19:58

Hi murphy,

wie schauts bei längeren Listings mit der Zeilennummerierung aus? Durch die Verwendung von Bold werden bei der Geckoengine (Mozilla & co.) die Zeilen unterschiedlich hoch dargestellt und so stimmte die dann ab x Zeilen nicht mehr in den beiden Tabellenspalten überein bei meinen Tests.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Beitragvon murphy » Samstag 30. Oktober 2004, 21:50

Leonidas hat geschrieben:Kann man die Farben ändern?
jeder hat seine persönlichen lieblings-farben, aber ohne komplizierte änderungen in der DB ist es nicht möglich, seine farben selbst zu wählen: im moment steht alles statisch in der subsilver.css.
ich finde auch, man kann gute farben wählen (was ich versucht habe) und sich dann an die gewöhnen. leider gibt es keine standardisierte farbcodierung für alle sprachen.
was allerdings möglich ist: den Python-scanner so umzubauen, dass er genau eure farben benutzt, ohne die anderen sprachen zu beeinflussen.
vielleicht hat auch jemand ahnung, wie man DB-ergänzungen in phpBB vornimmt, und hilft mir :)

Dookie hat geschrieben:Durch die Verwendung von Bold werden bei der Geckoengine (Mozilla & co.) die Zeilen unterschiedlich hoch dargestellt und so stimmte die dann ab x Zeilen nicht mehr in den beiden Tabellenspalten überein bei meinen Tests.
kenne das problem. ist afaik ein fehler in der schriftart, die bei Mozilla unter KDE standardmäßig für monospace benutzt wird :(
dagegen: firefox unter Windows macht es richtig, IE auch. das wären schonmal 90% zufriedene kunden ;) ok, zurück zum thema.

subsilver.css:

Code: Alles auswählen

   font-family: 'Courier New', monospace;
Courier New gibt es wohl unter Linux nicht, und monospace heißt für mich "gleichgroß", wenn die schriftart das nicht bringt, ist das ein bug *grrr*
einstellen kann man das bei mir unter Options/General/Fonts&Colors/Monospace.
wenn man da eine sinnvolle schriftart einstellt, geht es auch bei Linux, jedenfalls ging es bei einem freund.

nun könnte man ja fragen, warum ich nichts dagegen tue. ich könnte eine große tabelle machen, in der jede codezeile ein <tr> einnimmt. finde ich grausam und ist ein irrer aufwand und fehleranfällig und...bäh.
und mehr als monospace angeben kann ich nicht...oder? falls mir jemand den namen der schriftart sagt, die auch unter linux funktioniert, wäre ich dankbar. dann schreibe ich sie hinter das 'Courier New' und du kannst es nochmal testen.
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 30. Oktober 2004, 23:44

das würde nicht helfen, ich hab Courier New auf meinem Linux. Und browse mit Galeon (Browser mit Geckoengine für Gnome) Also wär ich einer der unzufriedenen Besucher ;)

Du Brauchst nix an der Datenbank ändern, kannst ja mit CSS arbeiten und für das Syntaxhighlighting spezielle CSS-Dateien verwenden. Mit PHP kann man auch dynamische CSS-Dateien erzeugen.

Code: Alles auswählen

<?
/*
 * based on subSilver Theme from phpBB version 2+
 */
header("Content-type: text/css; charset=utf-8");
if (preg_match("/MSIE/i", $HTTP_USER_AGENT)){
   $font_family_noprop = "font-family: \"Courier New\",\"Courier\",monospace";
} else {
   $font_family_noprop = "font-family: \"Courier\",\"Courier New\",monospace";
}
?>
body { font-family: Verdana, Arial, Helvetica, sans-serif; margin: 20px}
...
/* Quote & Code blocks */
.code{background:#ffffff;border:1px solid #000000; color:#004400;
font-size:14px; <? echo $font_family_noprop ?>; padding:5px}

.helpline { background-color: #DEE3E7; border-style: none; }

table {padding: 0px; margin: 0px; border:0; border-spacing:0}

.python {background:#f2f2f2;border:1px solid #cccccc; color:#000000;
font-size:13px; <? echo $font_family_noprop ?>; padding:5px; overflow:auto}
.pythontab {background:#f2f2f2;border:0; color:#000000;
font-size:13px; <? echo $font_family_noprop ?>;  line-height:17px; padding:0px; margin:0px;}
.linenr {background:#f2f2f2;border-right:0 solid #cccccc; color:#777777;
font-size:13px; <? echo $font_family_noprop ?>; line-height:17px; padding-right:4px; margin:0px}
.hi_statement { color: #0000ff; font-weight: bold; }
.hi_function { color: #000088; }
.hi_preproc { color: #880000; font-weight: bold; }
.hi_number { color: #880000; }
.hi_comment { color: #006600; font-style: italic; }
.hi_string { color: #006600; }
.hi_exception { color:#000000; }

Hab ich so gemacht, weil Courier New bei einem User unter Windows mit dem IE in der eingestellte Grösse seltsam ausschaute, da der IE dann nen Bitmap Font statt einem TTF verwendet und skaliert.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Beitragvon murphy » Sonntag 31. Oktober 2004, 00:00

Dookie hat geschrieben:das würde nicht helfen, ich hab Courier New auf meinem Linux. Und browse mit Galeon (Browser mit Geckoengine für Gnome) Also wär ich einer der unzufriedenen Besucher ;)
das ist hart :(
was soll ich tun? die zeilennummern sind wichtig.
es wäre äußerst blöd, wenn der ganze schöne mod bei einigen nicht funktioniert, nur weil die schriftart nicht spurt. hab leider grad keine möglichkeit, das selber zu testen.

Du Brauchst nix an der Datenbank ändern, kannst ja mit CSS arbeiten und für das Syntaxhighlighting spezielle CSS-Dateien verwenden.
mmh? also bei mir gibt es nur eine subsilver.css, und die wird nicht geparsed. wie sollte ich da was dynamisches einbauen?
ich wollte ja gerade verhindern, dass der mod zu sehr in bestehenden dateien rumfuhrwerkt, damit er einfach zu installieren ist...
was musstest du denn alles ändern, damit du mit einer subsilver.css.php arbeiten konntest?

Wer ist online?

Mitglieder in diesem Forum: Google [Bot], martinjo