<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://thomasefer.de/data/xml/blog.LaTeX.atom/gadgets/Blog/templates/atom.xsl" ?><feed xmlns="http://www.w3.org/2005/Atom">
<link rel="self"  href="http://thomasefer.de/data/xml/blog.LaTeX.atom" title="ThomasEfer.de" />
<title  type="text" >ThomasEfer.de</title>
	<author>
		<name>Thomas Efer</name>
		<uri>http://thomasefer.de/</uri>
	</author>
<subtitle  type="text" >LaTeX</subtitle>
<id>http://thomasefer.de/</id>
<generator>JAWS 0.8.6</generator>
<rights  type="text" >2008, Thomas Efer</rights>
<updated>2009-07-05T15:49:57+02:00</updated>
<entry>
	<title  type="text" ><![CDATA[ LaTeX Syntax-Highlighting mit GeSHi ]]></title>
	<link rel="alternate"  type="text/html"  href="http://thomasefer.de/blog/show/LaTeX-Syntax-Highlighting-mit-GeSHi.html" title="LaTeX Syntax-Highlighting mit GeSHi" />
	<author>
		<name>Thomas Efer</name>
		<uri>http://thomasefer.de/data/xml/blog.LaTeX.atom</uri>
	</author>
	<id>http://thomasefer.de/blog/show/LaTeX-Syntax-Highlighting-mit-GeSHi.html</id>
	<updated>2009-07-05T15:49:57+02:00</updated>
	<published>2009-07-05T15:34:10+02:00</published>
	<summary  type="html" ><![CDATA[ <p><strong>Das Problem:</strong></p>
<p>Ich beschäftige mich an meiner Hochschule als Hilfskraft mit der Erstellung eines Wikis über "LaTeX für wissenschaftliche Arbeiten". Dabei muss ich nicht selten auch LaTeX-Sources einfügen. Und diese sehen, mit pre-Tags "formatiert", leider nur sehr unscheinbar und unübersichtlich aus. Aber, so dachte ich mir: MediaWiki kann doch alles - zumindest mit Plugins...</p>
<p>Doch zu meinem großen Erstaunen musste ich feststellen, dass es anscheined keine vernünftigen Syntax-Highlighter gibt, die in PHP geschrieben sind und LaTeX-Quelltexte hervorheben können. Eine einfache Integrierbarkeit eines solchen Tools in mein Wikisystem habe ich dabei noch garnicht vorausgesetzt.</p>
<p><strong>Die Lösung:</strong></p>
<p>Der <a title="GeSHi" href="http://qbnz.com/highlighter/">Generic Syntax Highlighter (GeSHi)</a> ist eine tolle PHP-Bibliothek mit der fast alle Sprachen "gehighlighted" werden können. Ein Mediawiki-Plugin dafür existiert auch schon. Von LaTeX gat der GeSHi allerdings (noch) keine Ahnung! Aber man kann ihm neue Sprachen beibringen. Dummerweise werden gerade jetzt bei der Weiterentwicklung von Version 1.0.x zu Version 1.1+ grundlegende Änderungen in den Sprachendateien stattfinden. Das bedeutet, dass man entweder für ein veraltetes System schreibt, oder schlecht dokumentierte neue Schnittstellen bedienen muss. Ich habe mich für "Variante 1" entschieden. Schließlich ist mein LaTeX-Highlighter ja auch eher für den "Hausgebrauch" gedacht. Und in meinem Wiki bestimme ich, was die "aktuelle" Version ist! <img src="plugins/Emoticons/images/icon_wink.gif" border="0" alt="icon_wink.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/></p>
<p>Nun habe ich mit meinem neu erlangten Wissen über Regular Expressions einen ersten Entwurf zusammenprogrammiert. Das Ganze hat sich als eine ziemliche Fummmelarbeit herausgestellt, unter anderem weil viele vorgefertigte GeSHi-Elemente für die (recht seltsame und "historisch gewachsene") TeX-Syntax nicht wirklich anwendbar sind.</p>
<p>Besonders toll ist, dass der Backslash sowohl in PHP als auch bei RegExes und natürlich in TeX selber ein Escape-Character ist... --&gt; "\\\\\\\\"</p>
<p>Mein Entwurf für die Sprachdefinitionsdatei ist unten angehängt. Viel Spaß damit - vielleicht wird er ja dem ein oder anderen nützlich sein.</p>
<p>Richtig zufrieden bin ich damit selbst noch nicht - immerhin gibt's jetzt LaTeX in bunt und übersichtlicher als nur "monospaced" dargestellt.</p>
<p><strong>Update (25. Juni 2007)</strong></p>
<p>Matthias Pospiech hat aufbauend auf meinem Entwurf (s. unten) zusammen mit dem Programmierer von GeSHi eine sehr vollständige Sprachdefinitionsatei für LaTeX erstellt. Diese ist jetzt Bestandteil von Geshi - und wird so auch mit MediaWiki, Wordpres, und vielen anderen großen PHP-Anwendungen mitgeliefert! <img src="plugins/Emoticons/images/icon_biggrin.gif" border="0" alt="icon_biggrin.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/></p>
<pre><div class="code"><div class="php php" style="font-family:monospace;"><span style="color: #339933;">&lt;/</span>pre<span style="color: #339933;">&gt;</span><br />
<span style="">'efilatex'</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">// quick, dirty &amp; novice approach to highlight LaTeX &#160; &#160; 'COMMENT_SINGLE' =&gt; array(1 =&gt; '%'), &#160; &#160; 'COMMENT_MULTI' =&gt; array(), &#160; &#160; 'CASE_KEYWORDS' =&gt; GESHI_CAPS_NO_CHANGE, &#160; &#160; 'QUOTEMARKS' =&gt; array('', &quot;&#038;quot<img src="plugins/Emoticons/images/icon_wink.gif" border="0" alt="icon_wink.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/>, &#160; &#160; 'ESCAPE_CHAR' =&gt; '', &#160; &#160; 'KEYWORDS' =&gt; array( &#160; &#160; &#160; &#160; 1 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; '\\' &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 2 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 'cm' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 3 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 'begin', 'end' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 4 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 'test4' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; ), &#160; &#160; 'SYMBOLS' =&gt; array( &#160; &#160; &#160; &#160; '.', ',','\\',&quot;~&quot;, &quot;{&quot;, &quot;}&quot;, &quot;[&quot;, &quot;]&quot;, &quot;$&quot; &#160; &#160; &#160; &#160; ), &#160; &#160; 'CASE_SENSITIVE' =&gt; array( &#160; &#160; &#160; &#160; GESHI_COMMENTS =&gt; true, &#160; &#160; &#160; &#160; 1 =&gt; false, &#160; &#160; &#160; &#160; 2 =&gt; false, &#160; &#160; &#160; &#160; 3 =&gt; false, &#160; &#160; &#160; &#160; 4 =&gt; false, &#160; &#160; &#160; &#160; ), &#160; &#160; 'STYLES' =&gt; array( &#160; &#160; &#160; &#160; 'KEYWORDS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #b1b100; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #000000; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 3 =&gt; 'color: #000066; font-weight: normal;', &#160; &#160; &#160; &#160; &#160; &#160; 4 =&gt; 'color: #993333; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'COMMENTS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #808080; font-style: italic;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #339933; font-weight: normal;', &#160; &#160; &#160; &#160; &#160; &#160; 'MULTI' =&gt; 'color: #808080; font-style: italic;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'ESCAPE_CHAR' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #000099; font-weight: bold;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'BRACKETS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #FF7766; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'STRINGS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #ff0000; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'NUMBERS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #cc66cc; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'METHODS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #202020; font-weight: normal;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #202020; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'SYMBOLS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #66ccFF; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'REGEXPS' =&gt; array( &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #209090; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #202020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #608020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 3 =&gt; 'color: #F02020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 4 =&gt; 'color: #CCF020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 5 =&gt; 'color: #C000CC; font-weight: bold;' &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'SCRIPT' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; ) &#160; &#160; &#160; &#160; ), &#160; &#160; 'URLS' =&gt; array( &#160; &#160; &#160; &#160; ), &#160; &#160; 'OOLANG' =&gt; false, &#160; &#160; 'OBJECT_SPLITTERS' =&gt; array( &#160; &#160; &#160; &#160; ), &#160; &#160; 'REGEXPS' =&gt; array( 0 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\\\\\\\|~|&amp;|\\\\\\_|\\\\&amp;|\\$|\|)&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; // \keywords 1 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\\\)([a-zA-Z]+)&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\1\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; // {parameters} 2 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\{)(.+)(\\})&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '\\3' &#160; &#160; &#160; &#160; &#160; &#160; ), 3 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\[)(.+)(\\])&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '\\3' &#160; &#160; &#160; &#160; &#160; &#160; ), 4 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\$)(.+)(\\$)&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '\\3' &#160; &#160; &#160; &#160; &#160; &#160; ), 5 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(&amp;amp<img src="plugins/Emoticons/images/icon_wink.gif" border="0" alt="icon_wink.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/>(.+?)([;])&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2\\3', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; ), &#160; &#160; 'STRICT_MODE_APPLIES' =&gt; GESHI_NEVER, &#160; &#160; 'SCRIPT_DELIMITERS' =&gt; array( &#160; &#160; &#160; &#160; ), &#160; &#160; 'HIGHLIGHT_STRICT_BLOCK' =&gt; array( &#160; &#160; &#160; &#160; ) ); &#160;?&gt;</span></div></div> ]]></summary>
	<content  type="html" ><![CDATA[ <p><strong>Das Problem:</strong></p>
<p>Ich beschäftige mich an meiner Hochschule als Hilfskraft mit der Erstellung eines Wikis über "LaTeX für wissenschaftliche Arbeiten". Dabei muss ich nicht selten auch LaTeX-Sources einfügen. Und diese sehen, mit pre-Tags "formatiert", leider nur sehr unscheinbar und unübersichtlich aus. Aber, so dachte ich mir: MediaWiki kann doch alles - zumindest mit Plugins...</p>
<p>Doch zu meinem großen Erstaunen musste ich feststellen, dass es anscheined keine vernünftigen Syntax-Highlighter gibt, die in PHP geschrieben sind und LaTeX-Quelltexte hervorheben können. Eine einfache Integrierbarkeit eines solchen Tools in mein Wikisystem habe ich dabei noch garnicht vorausgesetzt.</p>
<p><strong>Die Lösung:</strong></p>
<p>Der <a title="GeSHi" href="http://qbnz.com/highlighter/">Generic Syntax Highlighter (GeSHi)</a> ist eine tolle PHP-Bibliothek mit der fast alle Sprachen "gehighlighted" werden können. Ein Mediawiki-Plugin dafür existiert auch schon. Von LaTeX gat der GeSHi allerdings (noch) keine Ahnung! Aber man kann ihm neue Sprachen beibringen. Dummerweise werden gerade jetzt bei der Weiterentwicklung von Version 1.0.x zu Version 1.1+ grundlegende Änderungen in den Sprachendateien stattfinden. Das bedeutet, dass man entweder für ein veraltetes System schreibt, oder schlecht dokumentierte neue Schnittstellen bedienen muss. Ich habe mich für "Variante 1" entschieden. Schließlich ist mein LaTeX-Highlighter ja auch eher für den "Hausgebrauch" gedacht. Und in meinem Wiki bestimme ich, was die "aktuelle" Version ist! <img src="plugins/Emoticons/images/icon_wink.gif" border="0" alt="icon_wink.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/></p>
<p>Nun habe ich mit meinem neu erlangten Wissen über Regular Expressions einen ersten Entwurf zusammenprogrammiert. Das Ganze hat sich als eine ziemliche Fummmelarbeit herausgestellt, unter anderem weil viele vorgefertigte GeSHi-Elemente für die (recht seltsame und "historisch gewachsene") TeX-Syntax nicht wirklich anwendbar sind.</p>
<p>Besonders toll ist, dass der Backslash sowohl in PHP als auch bei RegExes und natürlich in TeX selber ein Escape-Character ist... --&gt; "\\\\\\\\"</p>
<p>Mein Entwurf für die Sprachdefinitionsdatei ist unten angehängt. Viel Spaß damit - vielleicht wird er ja dem ein oder anderen nützlich sein.</p>
<p>Richtig zufrieden bin ich damit selbst noch nicht - immerhin gibt's jetzt LaTeX in bunt und übersichtlicher als nur "monospaced" dargestellt.</p>
<p><strong>Update (25. Juni 2007)</strong></p>
<p>Matthias Pospiech hat aufbauend auf meinem Entwurf (s. unten) zusammen mit dem Programmierer von GeSHi eine sehr vollständige Sprachdefinitionsatei für LaTeX erstellt. Diese ist jetzt Bestandteil von Geshi - und wird so auch mit MediaWiki, Wordpres, und vielen anderen großen PHP-Anwendungen mitgeliefert! <img src="plugins/Emoticons/images/icon_biggrin.gif" border="0" alt="icon_biggrin.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/></p>
<pre><div class="code"><div class="php php" style="font-family:monospace;"><span style="color: #339933;">&lt;/</span>pre<span style="color: #339933;">&gt;</span><br />
<span style="">'efilatex'</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">// quick, dirty &amp; novice approach to highlight LaTeX &#160; &#160; 'COMMENT_SINGLE' =&gt; array(1 =&gt; '%'), &#160; &#160; 'COMMENT_MULTI' =&gt; array(), &#160; &#160; 'CASE_KEYWORDS' =&gt; GESHI_CAPS_NO_CHANGE, &#160; &#160; 'QUOTEMARKS' =&gt; array('', &quot;&#038;quot<img src="plugins/Emoticons/images/icon_wink.gif" border="0" alt="icon_wink.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/>, &#160; &#160; 'ESCAPE_CHAR' =&gt; '', &#160; &#160; 'KEYWORDS' =&gt; array( &#160; &#160; &#160; &#160; 1 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; '\\' &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 2 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 'cm' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 3 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 'begin', 'end' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 4 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 'test4' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; ), &#160; &#160; 'SYMBOLS' =&gt; array( &#160; &#160; &#160; &#160; '.', ',','\\',&quot;~&quot;, &quot;{&quot;, &quot;}&quot;, &quot;[&quot;, &quot;]&quot;, &quot;$&quot; &#160; &#160; &#160; &#160; ), &#160; &#160; 'CASE_SENSITIVE' =&gt; array( &#160; &#160; &#160; &#160; GESHI_COMMENTS =&gt; true, &#160; &#160; &#160; &#160; 1 =&gt; false, &#160; &#160; &#160; &#160; 2 =&gt; false, &#160; &#160; &#160; &#160; 3 =&gt; false, &#160; &#160; &#160; &#160; 4 =&gt; false, &#160; &#160; &#160; &#160; ), &#160; &#160; 'STYLES' =&gt; array( &#160; &#160; &#160; &#160; 'KEYWORDS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #b1b100; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #000000; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 3 =&gt; 'color: #000066; font-weight: normal;', &#160; &#160; &#160; &#160; &#160; &#160; 4 =&gt; 'color: #993333; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'COMMENTS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #808080; font-style: italic;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #339933; font-weight: normal;', &#160; &#160; &#160; &#160; &#160; &#160; 'MULTI' =&gt; 'color: #808080; font-style: italic;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'ESCAPE_CHAR' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #000099; font-weight: bold;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'BRACKETS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #FF7766; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'STRINGS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #ff0000; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'NUMBERS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #cc66cc; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'METHODS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #202020; font-weight: normal;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #202020; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'SYMBOLS' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #66ccFF; font-weight: normal;' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'REGEXPS' =&gt; array( &#160; &#160; &#160; &#160; &#160; 0 =&gt; 'color: #209090; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; 1 =&gt; 'color: #202020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 2 =&gt; 'color: #608020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 3 =&gt; 'color: #F02020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 4 =&gt; 'color: #CCF020; font-weight: bold;', &#160; &#160; &#160; &#160; &#160; &#160; 5 =&gt; 'color: #C000CC; font-weight: bold;' &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; 'SCRIPT' =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; ) &#160; &#160; &#160; &#160; ), &#160; &#160; 'URLS' =&gt; array( &#160; &#160; &#160; &#160; ), &#160; &#160; 'OOLANG' =&gt; false, &#160; &#160; 'OBJECT_SPLITTERS' =&gt; array( &#160; &#160; &#160; &#160; ), &#160; &#160; 'REGEXPS' =&gt; array( 0 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\\\\\\\|~|&amp;|\\\\\\_|\\\\&amp;|\\$|\|)&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; // \keywords 1 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\\\)([a-zA-Z]+)&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\1\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; // {parameters} 2 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\{)(.+)(\\})&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '\\3' &#160; &#160; &#160; &#160; &#160; &#160; ), 3 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\[)(.+)(\\])&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '\\3' &#160; &#160; &#160; &#160; &#160; &#160; ), 4 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(\\$)(.+)(\\$)&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '\\3' &#160; &#160; &#160; &#160; &#160; &#160; ), 5 =&gt; array( &#160; &#160; &#160; &#160; &#160; &#160; GESHI_SEARCH =&gt; &quot;(&amp;amp<img src="plugins/Emoticons/images/icon_wink.gif" border="0" alt="icon_wink.gif "height="22px" style="margin-top: -4px; margin-bottom: -4px; vertical-align: -3px;"/>(.+?)([;])&quot;, &#160; &#160; &#160; &#160; &#160; &#160; GESHI_REPLACE =&gt; '\\2\\3', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_MODIFIERS =&gt; '', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_BEFORE =&gt; '\\1', &#160; &#160; &#160; &#160; &#160; &#160; GESHI_AFTER =&gt; '' &#160; &#160; &#160; &#160; &#160; &#160; ), &#160; &#160; &#160; &#160; ), &#160; &#160; 'STRICT_MODE_APPLIES' =&gt; GESHI_NEVER, &#160; &#160; 'SCRIPT_DELIMITERS' =&gt; array( &#160; &#160; &#160; &#160; ), &#160; &#160; 'HIGHLIGHT_STRICT_BLOCK' =&gt; array( &#160; &#160; &#160; &#160; ) ); &#160;?&gt;</span></div></div> ]]></content>
</entry>
</feed>