Make GeSHi autoloading really work
[phorkie.git] / src / phorkie / Renderer / Geshi.php
index 21d36c2d2214f04a198817b6269d73e9d05703a2..18f95acdba9577a338f57d523117222b9cb1f8f5 100644 (file)
@@ -15,19 +15,25 @@ class Renderer_Geshi
     {
         /**
          * Yes, geshi needs to be in your include path
-         * We use the mediawiki geshi extension package.
+         * We use the geshi pear package.
          */
-        require_once $GLOBALS['phorkie']['cfg']['geshi'];
+        if (!class_exists('\\GeSHi', true)) {
+            require_once $GLOBALS['phorkie']['cfg']['geshi'];
+        }
         $geshi = new \GeSHi($file->getContent(), $this->getType($file));
         $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
-        $geshi->set_header_type(GESHI_HEADER_DIV);
+        $geshi->set_header_type(GESHI_HEADER_PRE_TABLE);
+        $geshi->enable_classes();
+        $geshi->set_line_style('color: #DDD;');
 
         if ($res !== null) {
             $geshi->highlight_lines_extra(array_keys($res->annotations));
             $geshi->set_highlight_lines_extra_style('background-color: #F2DEDE');
         }
 
-        return '<div class="code">'
+        return '<style type="text/css">'
+            . $geshi->get_stylesheet() . '</style>'
+            . '<div class="code">'
             . str_replace('&nbsp;', '&#160;', $geshi->parse_code())
             . '</div>';
     }