Problem: XH-Suche / Glossaire / Syntaxhighlighter
Problem: XH-Suche / Glossaire / Syntaxhighlighter
Hat man auf eine Website Code mit dem Plugin "Syntaxhighlighter" gestellt und vielleicht noch zufällig das Plugin "Glossaire" aktiv und sucht dann vielleicht auch noch mit der XH-Suche nach einem Wort das genau in diesem Code vorkommt, dann geschehen eigenartige Dinge.
Na ja, so eigenartig sind die Dinge gar nicht - eigentlich ganz logisch:
Glossaire versucht das gefundene Wort mit einem<a>-Tag zu markieren.
Die XH-Suche versucht es Gelb hervorzuheben.
Beide "schmuggeln" also ihre eigenen CSS-Klassen ein.
"Syntaxhighlighter" macht nun das Unpassendste, was es tun kann - es zeigt den Code als Code an.
Hier ein Beispiel mit allen Bedingungen, wie oben beschrieben und dem Suchwort "template": Hat irgendwer eine Idee, wie man das verhindern könnte?
Wahrscheinlich bleibt nichts anderes, als auf "Syntaxhighlighter" zu verzichten und alles in einen code-Div zu packen - denn dort passiert das nicht.
Na ja, so eigenartig sind die Dinge gar nicht - eigentlich ganz logisch:
Glossaire versucht das gefundene Wort mit einem<a>-Tag zu markieren.
Die XH-Suche versucht es Gelb hervorzuheben.
Beide "schmuggeln" also ihre eigenen CSS-Klassen ein.
"Syntaxhighlighter" macht nun das Unpassendste, was es tun kann - es zeigt den Code als Code an.
Hier ein Beispiel mit allen Bedingungen, wie oben beschrieben und dem Suchwort "template": Hat irgendwer eine Idee, wie man das verhindern könnte?
Wahrscheinlich bleibt nichts anderes, als auf "Syntaxhighlighter" zu verzichten und alles in einen code-Div zu packen - denn dort passiert das nicht.
You do not have the required permissions to view the files attached to this post.
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
Na sowas
Das ist natürlich schon ein wenig Sch...
Nicht wirklich.
Wahrscheinlich ein Problem der Reihenfolge.
Aber die wird sich nicht ändern lassen (denke ich).
Der Syntaxhighlighter müsste also wissen, dass er <span class="xh_find"> und <a class="gpop" href="#gpop2"> ignorieren soll.
Aber da muss ich passen. Das ganze Plugin scheint mir auch etwas überholungsbedürftig.
3.0.83 (July 02 2010)
v3.0.90
script type="text/javascript"
./plugins/syntaxhighlighter//lib/styles/shCoreXH.css" (doppelter /)
Das wird an der Sache natürlich sehr wahrscheinlich nichts ändern.
Gruß Olaf, Plugins for CMSimple_XH
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
Ja, das denke ich auch.
Syntaxhighlighter müsste als erstes ausgeführt werden, und erst danach die XH-Suche und Glossaire über den Inhalt laufen.
Geht das nicht irgendwie?
Ja schon, aber eigentlich ist es ja noch nutzbar - wenn die o.g. Probleme nicht wären.
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
Bezüglich Glossaire bin ich nicht sicher, aber das Highlighting der XH-Suche passiert serverseitig, während der Syntax-Highlighter clientseitig arbeitet, also immer erst später ausgeführt wird.
Aber das eigentlich Problem ist, dass weder die XH-Suche noch Glossaire irgendetwas in <pre> Elementen ändern sollten; schließlich handelt es sich dabei um vorformatierten Text, und den bringt man so eben durcheinander. Für XH_highlightSearchWords() müssten wir da aber weg von regulären Ausdrücken; wird einfach zu komplex.
ACK.
Christoph M. Becker – Plugins for CMSimple_XH
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
https://github.com/cmsimple-xh/cmsimple ... .php#L2468
Code: Select all
$patterns[] = '/(?:<(?:"[^"]*?"|[^>]*?)*>|(' . preg_quote($word, '/') . ')|&[^;]*;)/isu';
Man könnte aber aus $text die Bereiche <pre> ... </pre> vor dem Ersetzen kopieren und hinterher damit wieder ersetzen, damit blieben diese im Ergebnis unverändert.
An dieser Stelle erst mal abwarten, vielleicht finden wir ja eine Lösung.
Gruß Olaf, Plugins for CMSimple_XH
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
Als schnellen Workaround entscheiden ob Syntaxhighlighting oder Suchbegriffhervorhebung und Glossar wichtiger sind, und dann den inkompatiblen Rest deaktivieren. Um die Suchbegriffhervorhebung zu deaktivieren, einfach die Definition ändern:
Code: Select all
function XH_highlightSearchWords(array $words, $text)
{
return $text;
}
Jupp, ist jetzt schon zu komplex. Wir hatten vor einer ganzen Weile darüber diskutiert (ich denke im Forum, kann es aber auf die Schnelle nicht finden). Da wurde jedenfalls schon nachgedacht, ob man statt regulärer Ausdrücke doch besser das DOM nutzt.olape wrote: ↑Tue May 24, 2022 12:42 pmhttps://github.com/cmsimple-xh/cmsimple ... .php#L2468Ich bekomme es mit nachlesen schon kaum zusammen.Code: Select all
$patterns[] = '/(?:<(?:"[^"]*?"|[^>]*?)*>|(' . preg_quote($word, '/') . ')|&[^;]*;)/isu';
Christoph M. Becker – Plugins for CMSimple_XH
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
Na ja, im konkreten Fall habe ich mich eigentlich schon entschieden (nur, was machen alle anderen?).
http://fhs.bplaced.net/xh-wiki/?fuer-en ... h=template
Ich denke, Syntaxhighlighter wird wohl rausfliegen und ein pseudo-Highlighting per CSS reinkommen - was wirklich schade ist.
In einem normalen DIV machen die Suche und auch Glossaire nix schlimmes (siehe Beispiel-Adresse).
Jetzt wäre es noch schön, wenn man per Script (meinetwegen per jQuery) wenigstens alle Dinge, die in '...' stehen (oder in [...]) mit einer CSS-Klasse hervorheben könnte.
Im Beispiel gibt es noch einen Haken: beim Code-Kopieren bekommt man (ungünstige) Zeilenschaltungen mit.
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
Viele wird es ohnehin nicht geben, die Syntaxhighlighter_XH auf ihrer Website verwenden. Aber ich denke, es gibt doch noch eine brauchbare Lösung: bevor der Syntaxhighlighter initialisiert wird, könnte man das zusätzliche (unerwünschte) Markup per JS entfernen. Je nachdem wie man es sieht, könnte man durchaus auch argumentieren, dass zumindest .xh_find entfernt werden muss (ansonsten Bug in Syntaxhightlighter_XH); das Glossaire-Markup, und Markup von anderen Plugins ist unklarer (woher soll Syntaxhighlighter_XH wissen, was andere Plugins so treiben?)
Na ja, ich schau mir das zeitnah genauer an (spätestens am Donnerstag sollte ich etwas Zeit finden).
Sorry, verstehe ich nicht – stehe wohl auf dem Schlauch.
Was meinst du damit? Geht es um den Syntaxhighligher_XH, oder um die "normalen" Bereiche?
Christoph M. Becker – Plugins for CMSimple_XH
Re: Problem: XH-Suche / Glossaire / Syntaxhighlighter
In beiden Fällen meinte ich meine Version ohne Syntaxhighlighter.
Um den Code bzw. wenigstens ein paar Parameter hervorheben zu können, wollte ich per JS dort drin Text finden, der entweder innerhalb von '...' oder innerhalb von [...] oder innerhalb von "..." steht. Einen CSS-Selector gibt es dafür nicht - oder?
Den gefundenen Text mit einer Klasse umgeben, damit man es stylen kann.
Das könnte man natürlich auch im Editor händisch machen - ist aber sehr mühselig.
Das Andere war, dass man ja oft solchen Code von einer Website kopieren möchte (dazu macht man es ja - meistens).
Wenn man den Code, so wie es jetzt in meinem Beispiel ohne Syntaxhighlighter ist, kopiert, dann erhält man beim Einfügen (im eigenen Editor ...) nach jeder Zeile zweimal CR LF.
Das liegt womöglich daran, dass ich jede Zeile als <p> definiert habe.
Vielleicht klappt das besser, wenn ich da <div> nehme. Mal sehen.
Das ist sowieso alles ziemlich fummelig im TinyMCE zu schreiben (da weigert sich sogar meine Analoge Halluzinelle, das zu tun). Mit Syntaxhighlighter wäre das alles komfortabler, aber dann geht wieder die Suche oder Glossaire nicht.