Wie man WP-Syntax noch etwas tunen kann…

WP-Syntax ist eine tolle Extension für WordPress, darauf habe ich ja schon in dem Artikel Was nicht alles mit WordPress möglich ist… hingwiesen.

Das ganze hatte nur einen hässlichen Nachteil. Wenn man < > ein oder & im Code verwendete, dann hat der Wysiwyg Editor natürlich schnell mal &lt;, &gt; und &amp; daraus gemacht und das macht den Code natürlich unlesbar.
Das bedeute also immer folgende vorgehensweise:

  1. Artikel schreiben
  2. Code einbauen und formatieren
  3. keine Änderung mehr machen
  4. Wenn Änderungen, dann alle &lt;, &gt; und &amp; im Code wieder zurück tauschen in <, > und &.

Nun es geht einfacher. Einach wp_syntax.php ändern so, dass immer die Sequenzen &lt;, &gt; und &amp; eben wieder  in  <, > und & umgewandelt werden. Dazu muss man einfach nur die Funktion wp_syntax_code_trim um die Zeilen 5 bis 10 erweitern.

function wp_syntax_code_trim($code){ 
  // special ltrim b/c leading whitespace matters on 1st line of content 
  $code = preg_replace("/^\s*\n/siU", "", $code); 
  $code = rtrim($code); 
  // MRi: changes to retranslate html code tags into the normal 
  // characters for geshi. 
  $code = strip_tags($code); 
  $arrSearch = array("&lt;", "&gt;", "&nbsp;", "&amp;");
  $arrReplace = array("<", ">", " ", "&"); 
  $code = str_replace($arrSearch, $arrReplace, $code); 
  return $code; 
}

Das war es auch schon. Man sollte sich jetzt nur noch angewöhnen auf ein < Zeichen immer ein Leerzeichen folgen zu lassen, sonst ergänzt TinyMCE evtl. sehr unsinnige closing Tags ❗

Einen herzlichen Dank an Shantz der hier den entscheiden Hinweis gab.

3 Gedanken zu „Wie man WP-Syntax noch etwas tunen kann…“

  1. Hallo Martin. bei mir funktioniert das WP-Plugin leider nicht richtig. Der gesamte Code wird immer nur in einer Zeile angezeigt. Vielleicht kannst du mir helfen.

    PS ich war auch bei dive-deeper 🙂

  2. Wie fügst Du den Text ein?

    Ich markiere den Bereich einfach als Monospace (PRE) und dann füge ich den puren Code ein, nicht im HTML modus.

    Aber ich hatte diesen Effekt auch schon. Aber wie gesagt als puren Text einfügen ging immer. Ich habe eher manchmal das Problem, dass Leerzeilen als neue PRE Block interpretiert werden…

    HTH

    BTW: Hast Du Leipzig vor oder hinter den Kullissen erlebt 😉

  3. Hallo Martin,

    mittlerweile musst du nicht mehr selbst am Quelltext etwas ändern. Ich habe das Plugin WP-Syntax Editor Integration geschrieben, das den Quelltext mit einem Klick in HTML-Entities konvertiert und den entsprechenden Parameter escaped=“true“ setzt. Somit kann man dann auch wieder den visuellen Editor benutzen, was manchmal ja ganz schick ist..

    Gruß

    Markus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.