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

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... :?
seli
User
Beiträge: 12
Registriert: Montag 4. Oktober 2004, 22:58
Kontaktdaten:

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.
[size=75]:wq[/size]
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

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

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]#!/usr/bin/env python
import this[/code]
Gast

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

verzeihung, wollte gar nicht anonym kommen.
bin murphy und melde mich demnächst noch an ^^
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Leonidas hat geschrieben:Das geht imho problemlos
nicht, wenn später noch ein 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: Alles auswählen

.

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

[quote]Trotzdem muss ich sagen das Dookie's Highlighting echt gut gelungen ist.[/quote]das stimmt. wie sieht es mit der geschwindigkeit aus? habe das noch nicht getestet...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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]#!/usr/bin/env python
import this[/code]
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

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.
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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]#!/usr/bin/env python
import this[/code]
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

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?
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Du brauchst nur die Dateien /templates/subSilver/overall_header.tpl und /templates/subSilver/simple_header.tpl so anzupassen, daß sie die css.php verwenden.
Also

Code: Alles auswählen

<link rel="stylesheet" href="templates/subSilver/css.php" type="text/css">
an passender Stelle einfügen.

Nochmal wegen der Zeilennummerierung. Du kannst nie sicher sein, daß nicht einer für die Anzeige nichtproportionalen Textes im Browser seine eigene Schriftart einstellt. dann ist wieder alles durcheinander mit den Zeilennumern. Ich hab leider keine parktikable Lösung für das Problem gefunden, darum gibts bei meinem Syntaxhighlighter keine Zeilennummern.


Gruß

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

erstmal vielen dank für die hilfe. ich kann ja leider nicht alles alleine testen, und solche bugreports sind gold wert.
Dookie hat geschrieben:Du brauchst nur die Dateien /templates/subSilver/overall_header.tpl und /templates/subSilver/simple_header.tpl so anzupassen, daß sie die css.php verwenden.
ok, das war zu einfach :oops:
aber: mir wärs doch lieber, wenn die css statisch wäre - spart traffic.

außerdem glaube ich, die lösung gefunden zu haben. sie lautet:

Code: Alles auswählen

	line-height: 14px;
kannst du es jetzt nochmal ausprobieren?

wenn das funktioniert, kannst du ja deinen highlighter erweitern.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Was habt's ihr? Mit meinem Mozilla 1.7 (Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.7) Gecko/20040616) gehen die Nummern auch mit Bold problemlos, ich gehöre zu den zufriedenen Usern :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

ich sag ja, unter windows gehts. keine ahnung, was die bei Linux da verbockt haben.
aber ich will ungern die Unix-fans verprellen, wo ich doch selber langsam umsteige ;)
btw: benutze selbst den firefox! IE kann ja keiner aushalten.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

murphy hat geschrieben:btw: benutze selbst den firefox! IE kann ja keiner aushalten.
Full Ack!
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten