====== Syntax highlighting for Tagz ====== ===== style.css ===== Save this as wiki/style.css. body { font: 80% "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif; background-color: White; color: Black; margin: 0; padding: 0; } div.clearer {clear: both; line-height: 0; height: 0;} table { font-size: 100%; padding:0; margin:0; } tr,td,th {padding:0; margin:0;} img {border:0} p {padding:0; margin: 0 0 1.0em 0;} hr { border: 0px; border-top: 1px solid #8cacbb; text-align:center; height: 0px; } form { border: none; margin: 0; display: inline; } label { display: block; text-align: right; font-weight: bold; } label input { width: 50%; } fieldset { width: 300px; text-align: center; border: 1px solid #8cacbb; padding: 0.5em; } a { color:#436976; text-decoration:none; } a:hover { color:#000000; text-decoration:underline; } textarea.edit { font-family:monospace; border: 1px solid #8cacbb; color: Black; background-color: white; font-size:14px; padding: 3px; width:100%; } input.edit { font-size: 100%; border: 1px solid #8cacbb; height: 22px ! important; max-height: 22px ! important; min-height: 22px ! important; color: Black; background-color: white; vertical-align: middle; padding: 1px; display: inline; } input.button { border: 1px solid #8cacbb; color: Black; background-color: white; vertical-align: middle; text-decoration:none; font-size: 100%; cursor: pointer; height: 22px ! important; max-height: 22px ! important; min-height: 22px ! important; margin: 1px; display: inline; } div.secedit input.button { border: 1px solid #8cacbb; color: Black; background-color: white; vertical-align: middle; text-decoration:none; margin: 0px; padding: 0px; font-size: 10px; cursor: pointer; height: 15px; max-height: 15px ! important; min-height: 15px ! important; float:right; display: inline; } div.meta { clear: both; margin-top: 1em; color:#436976; font-size:70%; text-align:right; } div.user { float:left; } div.preview{ background:#f7f9fa; margin-left:2em; padding: 4px; border: 1px dashed #000000; } div.breadcrumbs{ background-color: #f5f5f5; font-size:80%; color: #666666; padding-left: 4px; } span.user{ color: #cccccc; font-size: 90%; } div.error{ background: transparent url(images/error.png) 0.5em 0px no-repeat; background-color: #ff6666; font-size: 90%; margin: 0px; padding-left: 3em; height: 16px; } div.info{ background: transparent url(images/info.png) 0.5em 0px no-repeat; background-color: #ffff66; font-size: 90%; margin: 0; padding-left: 3em; height: 16px; } div.success{ background: transparent url(images/thumbup.gif) 0.5em 0px no-repeat; background-color: #66ff66; font-size: 90%; margin: 0; padding-left: 3em; height: 16px; } /* ---------------------------- Diff rendering --------------------------*/ table.diff { background:white; } td.diff-blockheader {font-weight:bold} td.diff-header { border-bottom: 1px solid #8cacbb; font-size:120%; } td.diff-addedline { background:#ddffdd; font-family: monospace; font-size: 100%; } td.diff-deletedline { background:#ffffbb; font-family: monospace; font-size: 100%; } td.diff-context { background:#f7f9fa; font-family: monospace; font-size: 100%; } span.diffchange { color: red; } /* --------------------- Text formatting -------------------------------- */ /* external link */ a.urlextern{ background: transparent url(images/link_icon.gif) 0px 1px no-repeat; padding: 1px 0px 1px 16px; color:#436976; text-decoration:none; } a.urlextern:visited { color:Purple; } a.urlextern:hover { text-decoration:underline; } /* windows share */ a.windows{ background: transparent url(images/windows.gif) 0px 1px no-repeat; padding: 1px 0px 1px 16px; color:#436976; text-decoration:none; } a.windows:visited { color:Purple; } a.windows:hover { text-decoration:underline; } /* interwiki link */ a.interwiki{ background: transparent url(images/interwiki.png) 0px 1px no-repeat; padding: 1px 0px 1px 16px; color:#436976; text-decoration:none; } a.interwiki:visited { color:Purple; } a.interwiki:hover { text-decoration:underline; } /* link to some embedded media */ a.media { color:#436976; text-decoration:none; } a.media:hover { color:#436976; text-decoration:underline } /* embedded images */ img.media { margin: 3px; } /* email link */ a.mail { background: transparent url(images/mail_icon.gif) 0px 1px no-repeat; padding: 1px 0px 1px 16px; color:#436976; text-decoration:none; } a.mail:hover { text-decoration:underline; } /* existing wikipage */ a.wikilink1:link { color:#009900; text-decoration:none } a.wikilink1:visited { color:#009900; text-decoration:none } a.wikilink1:hover { color:#009900; text-decoration:underline } /* not exisitng wikipage */ a.wikilink2:link { color:#FF3300; text-decoration:none } a.wikilink2:visited { color:#FF3300; text-decoration:none } a.wikilink2:hover { color:#FF3300; text-decoration:underline } acronym { cursor: help; border-bottom: 1px dotted #000; } /* the document */ div.page { margin-top: 4px; margin-left: 1em; margin-right: 2em; text-align: justify; } /* general headline setup */ h1, h2, h3, h4, h5 { color: Black; background-color: transparent; font-family: "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif; font-size: 100%; font-weight: normal; margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 1em; padding-left: 0; padding-right: 0; padding-top: 0.5em; padding-bottom: 0; border-bottom: 1px solid #8cacbb; clear: left; } /* special headlines */ h1 {font-size: 160%; margin-left: 0px; font-weight: bold;} h2 {font-size: 150%; margin-left: 20px;} h3 {font-size: 140%; margin-left: 40px; border-bottom: none; font-weight: bold;} h4 {font-size: 120%; margin-left: 60px; border-bottom: none; font-weight: bold;} h5 {font-size: 100%; margin-left: 80px; border-bottom: none; font-weight: bold;} /* indent different sections */ div.level1 {margin-left: 3px;} div.level2 {margin-left: 23px;} div.level3 {margin-left: 43px;} div.level4 {margin-left: 63px;} div.level5 {margin-left: 83px;} /* unordered lists */ ul { line-height: 1.5em; list-style-type: square; margin: 0.5em 0 0.5em 1.5em; padding: 0; list-style-image: url(images/bullet.gif); } /* ordered lists */ ol { line-height: 1.5em; margin: 0.5em 0 0.5em 1.5em; padding: 0; color: #638c9c; font-weight: bold; list-style-image: none; } /* the list items overriding the ol definition */ span.li { color: #000000; font-weight: normal; } .quote { border-left: 2px solid #8cacbb; padding-left: 3px; } /* code blocks by indention */ pre.pre { font-size: 120%; padding: 0.5em; border: 1px dashed #8cacbb; color: Black; background-color: #f7f9fa; overflow: auto; } /* code blocks by code tag */ pre.code { font-size: 120%; padding: 0.5em; border: 1px dashed #8cacbb; color: Black; background-color: #f7f9fa; overflow: auto; } /* code highlighting is at bottom of file */ /* inline code words */ code { font-size: 120%; } /* code blocks by file tag */ pre.file { font-size: 120%; padding: 0.5em; border: 1px dashed #8cacbb; color: Black; background-color: #dee7ec; overflow: auto; } /* footnotes */ div.footnotes{ clear:both; border-top: 1px solid #8cacbb; padding-left: 1em; margin-top: 1em; } div.fn{ font-size:90%; } a.fn_top{ vertical-align:super; font-size:80%; } a.fn_bot{ vertical-align:super; font-size:80%; font-weight:bold; } /* inline tables */ table.inline { background-color: #ffffff; border-spacing: 0px; border-collapse: collapse; } th.inline{ padding: 3px; border: 1px solid #8cacbb; background-color: #dee7ec; text-align: left; } td.inline{ padding: 3px; border: 1px solid #8cacbb; text-align: left; } /* ---------- table of contents ------------------- */ div.toc { margin-left: 2em; margin-top: 1.2em; margin-bottom: 0; float:right; width: 200px; font-size: 80%; clear:both; } div.tocheader { padding: 3px; border: 1px solid #8cacbb; background-color: #dee7ec; text-align: left; font-weight:bold; margin-bottom: 2px; } #tocinside { border: 1px solid #8cacbb; background-color: #ffffff; text-align: left; padding-top: 0.5em; padding-bottom: 0.7em; } ul.toc { list-style-type: none; list-style-image: none; line-height: 1.2em; margin: 0; padding: 0; padding-left: 1em; } ul.toc li { background: transparent url(images/tocdot2.gif) 0 0.6em no-repeat; padding-left:0.4em; } a.toc { color: #436976; text-decoration:none; } a.toc:hover { color: #000000; text-decoration:underline; } /* --------------- search result formating --------------- */ .search_result{ margin-bottom: 6px; padding-left: 30px; padding-right: 10px; } .search_snippet{ color: #999999; font-size: 12px; margin-left: 20px; } .search_sep{ color: #000000; } .search_hit{ color: #000000; background: #FFFF99; } div.search_quickresult{ margin-bottom: 15px; padding-bottom: 5px; border-bottom: 1px dashed #8cacbb; margin-left: 30px; padding-right: 10px; } div.search_quickhits { margin-left: 1em; float:left; background: transparent url(images/bullet.gif) 0px 1px no-repeat; padding: 1px 0px 1px 8px; width: 30%; } /* debug */ pre.dbg{ background-color:#ffffff; font-size: 120%; } /* Tableless Headers and Footers */ /* Thanks to "moraes" */ .header { height:35px; padding:3px 0 2px 2px; } .pagename { height:25px; float:left; font-size:200%; font-weight:bolder; color:#DEE7EC; text-align:left; vertical-align:middle; padding:1px 0 0 1px; } .pagename a:link, .pagename a:visited { color:#436976; text-decoration:none; } .pagename a:hover, .pagename a:active { color:#FF9933; } .logo { float:right; font-size:220%; font-weight:bolder; text-align:right; vertical-align:middle; } .logo a:link, .logo a:visited, .logo a:hover, .logo a:active { color:#dee7ec; text-decoration:none; font-variant:small-caps; letter-spacing:2pt; } .bar { height:25px; border-top:1px solid #8CACBB; border-bottom:1px solid #8CACBB; background:#DEE7EC; padding:2px; margin:0; } .bar-left { float:left; width:50%; } .bar-right { float:right; width:50%; text-align:right; } #bar_bottom { margin-bottom:3px; } .mediaselect-left { float:left; padding: 0.5em; height:230px; overflow:auto; } .mediaselect-right { float:right; border-left: 1px solid #8cacbb; padding: 0.5em; width:350px; height:230px; overflow:auto; } div.uploadform { margin-top: 0.5em; border-top: 1px solid #8cacbb; } .footerinc a img { opacity: 0.5; } .footerinc a:hover img { opacity: 1; } /* syntax highlighting code */ .code .br0 { color: #000000; } .code .co1 { color: #008000; } .code .co2 { color: #008000; } .code .coMULTI { color: #008000; } .code .es0 { color: #000099; font-weight: bold; } .code .kw1 { color: #4040ff; } .code .kw2 { color: #4040ff; font-weight: bold; } .code .kw3 { color: #000066; } .code .kw4 { color: #993333; } .code .kw5 { color: #0000ff; } .code .me0 { color: #006600; } .code .nu0 { color: #000000; } .code .re0 { color: #c000c0; } .code .re1 { color: #0000ff; } .code .re2 { color: #0080ff; } .code .re3 { color: #4040ff; } .code .re4 { color: #4040ff; } .code .sc0 { color: #00bbdd; } .code .sc1 { color: #ddbb00; } .code .sc2 { color: #009900; } .code .st0 { color: #ff6000; } ===== tagz.php ===== Save this as wiki/inc/geshi/tagz.php 'Tagz', 'COMMENT_SINGLE' => array(1 => '//'), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'"), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( # Keywords don't work, since they can appear anywhere in the text. # Tagz is quite unusual in that regard. # '$xor', # '$upper', # '$trim', '$transition', '$tracknumber', '$tab', # '$substr', '$sub', '$strstr', '$strrchr', '$stricmp', # '$strcmp', '$strchr', '$shortest', '$select', # '$roman', '$right', '$rgb', '$replace', '$repeat', '$rand', # '$puts', '$put', '$progress2', '$progress', '$pad_right', # '$padcut_right', '$padcut', '$pad', # '$or', # '$num', '$not', # '$muldiv', '$mul', '$mod', '$min', '$meta_test', '$meta_sep', # '$meta_num', '$meta', '$max', # '$lower', '$longest', '$longer', '$len2', '$len', '$left', # '$insert', '$info', '$iflonger', '$ifgreater', '$if3', '$if2', '$if', # '$hex', # '$greater', '$get', # '$fix_eol', '$filename', # '$ext', # '$div', '$directory', # '$cut', '$crlf', '$codec', '$char', '$caps2', '$caps', # '$blend', '$ansi', '$and', '$add', '$abbr' ) ), 'SYMBOLS' => array( ',' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => true, 1 => true ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #800080;' ), 'COMMENTS' => array( 1 => 'color: #008000; font-style: italic;', 'MULTI' => 'color: #008000; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #66cc66;' ), 'STRINGS' => array( 0 => 'color: #800000;' ), 'NUMBERS' => array( 0 => 'color: #cc66cc;' ), 'METHODS' => array( 0 => 'color: #202020;' ), 'SYMBOLS' => array( 0 => 'color: #66cc66;' ), 'REGEXPS' => array( ), 'SCRIPT' => array( ) ), 'OOLANG' => false, 'OBJECT_SPLITTER' => '', 'REGEXPS' => array( # Highlighting variable names would be nice, if only I got the regexp working. :( # 0 => array( # GESHI_SEARCH => '([\\$](get|put|puts)[\\(])([a-zA-Z_]+)([\\),])', # GESHI_REPLACE => '\\3', # GESHI_MODIFIERS => '', # GESHI_BEFORE => '\\1', # GESHI_AFTER => '\\4' # ), 1 => array( GESHI_SEARCH => '([\\$][a-z_][a-z0-9_]*)', GESHI_REPLACE => '\\1', GESHI_MODIFIERS => '', GESHI_BEFORE => '', GESHI_AFTER => '' ), 2 => array( GESHI_SEARCH => '(\%[^%]+\%)', GESHI_REPLACE => '\\1', GESHI_MODIFIERS => '', GESHI_BEFORE => '', GESHI_AFTER => '' ), 3 => array( GESHI_SEARCH => '()', GESHI_REPLACE => '$char(3)', GESHI_MODIFIERS => '', GESHI_BEFORE => '', GESHI_AFTER => '' ), 4 => array( GESHI_SEARCH => '( )', GESHI_REPLACE => '$tab()', GESHI_MODIFIERS => '', GESHI_BEFORE => '', GESHI_AFTER => '' ), # Whitespace highlighting seems to break something in GeSHi. # 4 => array( # GESHI_SEARCH => '([ ]+)', # GESHI_REPLACE => '\\1', # GESHI_MODIFIERS => '', # GESHI_BEFORE => '', # GESHI_AFTER => '' # ) ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); ?>