Syntaxhighlighter

Ich weiß ja nicht, wie weit ihr bisher mit dem Syntaxhighlighter fürs Boardupgrade seid, aber GeSHi ist offenbar recht “verbose”. Ich hab jetzt auch nicht großartig recherchiert, aber ein Clientseitiges Syntaxhighlighting mit JavaScript wäre wahrscheinlich deutlich Trafficsparender.

Edit: ich habe gerade mal nachgesehen: ein zufälliger Java-Quellcode mit 370 Zeichen ist im Plaintext 15.355 Zeichen lang (inkl. Leerzeichen). Der hier im Board generierte Quellcode ist ganze 167.160 Zeichen lang. Die aktuellere GeSHi-Version scheint etwas kompakteren Quellcode zu generieren (es werden CSS-Klassen verwendet, statt jeweils inline-Styles zu definieren), aber trotzdem vervielfacht sich die Codegröße.

Edit 2: Ich habe kurz gegoogled, und bin auf den “SyntaxHighlighter” gestoßen. Dort gibt es bereits Templates für mehrere Sprachen, die Liste befindet sich hier:
http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

ich hatte den alex… Syntax Kram fürs neue Forum auch schon vor mir zu liegen, aber irgendwie hab ich den nicht sooo ganz für voll genommen.
Dann guck ich ihn mir jetzt mal genauer an.

Nach eigener Aussage auf seiner GitHub-Seite ist es einer der meistverwendeten SyntaxHighlighter im Web.
Das Featureset sieht aber recht vielversprechend aus (viele verschiedene Sprachen bereits unterstützt und auch verschiedene Themes, wie beispielsweise ein Dark-Theme oder auch ein Eclipse-Theme).

Und wenn man etwas anpassen muss, kann man ja auch zum Projekt commiten.

Edit: Hier noch einmal eine Liste mit weiteren unterstützten Sprachen. Die Themeauswahl könnte man bestimmt auch in den Boardeinstellungen verankern. So hätten die Eclipse-User ihren gewohnten Style, während Nutzer anderer IDEs vielleicht ihren gewohnten Style einstellen könnten.

oh man, jetzt weiß ich wieder warum ich JS und HTML hasse, 2h rumprobiert und entweder gibts Fehlermeldungen von JS oder der Code verschwindet …

Ich wollte dich nicht piesacken :wink: Ich hab das natürlich selbst auch nicht versucht zu integrieren, finde aber, dass der Highlighter (bzw. ein clientbasierter Highlighter) schon seine Vorteile hat.
Kann man dir vielleicht irgendwie konkret helfen? Wo hakt es denn?
Bzgl. php, html, js und css bin ich nicht ganz unbefleckt (wenn auch kein Profi) und kann ggf. irgendwie helfen.

wenn du mir einfache simple Beispielseite bauen kannst (am besten dann fertig als Zip mit allen Dateien) wäre das echt super

In irgendeinem Rahmenwerk, oder auf der grünen Wiese?

Edit: ein „grüne Wiese Projekt“ ist direkt im Downloadpaket enthalten.

Bei mir funktioniert das auch ohne Anpassungen (obwohl ein -Tag fehlt :wink: )

Ich habe das enthaltene Beispiel mal etwas abgeändert, sodass der Autoloader verwendet wird. Außerdem habe ich ein Java, ein php und ein html-Beispiel eingebaut.
Aus dem Downloadpaket kann man bis auf den scripts und styles-Ordner alles löschen. Das was übrig bleibt, habe ich im Anhang auch eingepackt.

Hier die Beispielhtmldatei:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>SyntaxHighlighter Beispiele</title>
    <link type="text/css" rel="stylesheet" href="styles/shCoreDefault.css"/>
</head>

<body>

<h1>SyntaxHighlighter Beispiele mit Autoloader</h1>
<pre class="brush: java;">
package syntaxhighlighter.test;

public class Example {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}
</pre>
<pre class="brush: php;">
<?php

namespace syntaxhighlighter	est;

class Example {
    public static function main() {
        echo "Hello, world!";
    }
}
?>
</pre>
<pre class="brush: xml;">
<!DOCTYPE html>
<html>
<head>
    <title>Hello, world</title>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>    
</pre>
<script type="text/javascript" src="scripts/shCore.js"></script>
<script type="text/javascript" src="scripts/shAutoloader.js"></script>
<script type="text/javascript">
    SyntaxHighlighter.autoloader(
            ['java',             'scripts/shBrushJava.js'],
            ['javascript', 'js', 'scripts/shBrushJavaScript.js'],
            ['php',              'scripts/shBrushPhp.js'],
            ['sql',              'scripts/shBrushSql.js'],
            ['xml',              'scripts/shBrushXml.js']
    );
    SyntaxHighlighter.all();
</script>
</body>
</html>

aaaahhhh, ich hatte nur auf der GitHub Seite geguckt :wut:

danke

Da habe ich zuerst auch gesucht und mir irgendwann gedacht: so kompliziert kann das gar nicht sein.
Um darauf zu kommen, dass man den Autoloader erst am Ende der Seite statt wie in seinem Beispiel am Anfang einbinden muss, habe ich allerdings auch eine Zeit gebraucht :wink:

Ein Eclipse-Theme wäre natürlich vorteilhaft.

und warum wäre es das?

Weil der Code dann vertrauter erscheint.

Dann bitte aber auch noch die „Themes“ für IntelliJ Idea, BlueJ, JDeveloper und Netbeans.

Mal davon abgesehen, das die Farben Geschmackssache sind.

Falls das mit dem SyntaxHighlighter umgesetzt werden sollte, steht ja auch immer noch mein Vorschlag im Raum, das Theme im Kontrollzentrum auswählen zu können. Wenn das erstmal realisiert ist, wird sicherlich auch auf Wünsche Einzelner eingegangen, wenn bestimmte Farbschemata eingereicht werden.
Falls das nicht im Kontrollzentrum wählbar wird, kann man immer noch mit einer Browsererweiterung die relevante CSS-Datei austauschen.

Obwohl ich auch kein Eclipseuser bin, denke ich, dass die Masse (noch? immer) auf Eclipse setzt. Daher wäre ein Eclipsetheme in der Standardeinstellung wohl angebracht.

Aber wir diskutieren hier schon wieder über ungelegte Eier :wink:

[QUOTE=cmrudolph]. Wenn das erstmal realisiert ist, wird sicherlich auch auf Wünsche Einzelner eingegangen, wenn bestimmte Farbschemata eingereicht werden.
[/QUOTE]

Heißt, der User soll das fertige Schema einreichen und es wird dann eingebunden?
Das fände ich ok, der Aufwand wäre gering und es würde keine „Ich will aber“ Welle gestartet. (Stell dir nen Daumen hoch Smiley vor) :wink:

Genau so stelle ich mir das vor. Wenn man sich mal ansieht, wie die Themenvorlagen für den SyntaxHighlighter aussehen, dann sollte das für jeden, der Wert darauf legt „seinen gewohnten Style“ wiederzufinden keine Herausforderung sein, einen zu erstellen.

@cmrudolph danke noch einmal, das hat funktioniert
Leider dauert es noch etwas mit dem Highlighter, fürs neue nehmen wir noch einmal den alten weil für den JS müssen in paar Hürden noch genommen werden.
Er macht irgendwie Leerzeilen rein und vorallem springt er nicht an wenn man Beträge direkt editiert.
Aber ich denke früher oder später werden wir den nehmen

Ein Alternativvorschlag wäre vielleicht noch google code prettify. Falls es damit nicht auch das Problem gibt:

Moin,

imho reicht nach einem edit der Aufruf von SyntaxHighlighter.highlight() um die Syntaxhervorhebung neu anzustoßen.

Viele Grüße
Fancy