syntax highlighting with geshi
authorChristian Weiske <cweiske@cweiske.de>
Mon, 26 Mar 2012 20:37:04 +0000 (22:37 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Mon, 26 Mar 2012 20:37:04 +0000 (22:37 +0200)
README.rst
data/templates/display.htm
src/Phorkie/File.php

index ea8a940..1cc749b 100644 (file)
@@ -35,3 +35,11 @@ Internal directory layout
 Search
 ======
 Use ``ack-grep``
+
+
+Install geshi
+=============
+::
+
+  $ pear channel-discover mediawiki.googlecode.com/svn
+  $ pear install mediawiki/geshi
index ea2e2cd..43a76fc 100644 (file)
@@ -10,7 +10,7 @@
  <p>
   <a href="{{file.getLink('raw')}}">raw</a>
  </p>
- <pre>{{file.getContent}}</pre>
+ {{file.getHighlightedContent|raw}}
 </div>
 {% endfor %}
 {% endblock %}
index 14a7bbf..6e71de3 100644 (file)
@@ -57,6 +57,19 @@ class File
         return file_get_contents($this->path);
     }
 
+    public function getHighlightedContent()
+    {
+        /**
+         * Yes, geshi needs to be in your include path
+         * We use the mediawiki geshi extension package.
+         */
+        require 'MediaWiki/geshi/geshi/geshi.php';
+        $geshi = new \GeSHi($this->getContent(), $this->getType());
+        $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
+        $geshi->set_header_type(GESHI_HEADER_DIV);
+        return $geshi->parse_code();
+    }
+
     public function getMimeType()
     {
         $type = $this->getType();