public
Description: syntax higlighting plugin for Ruby on Rails
Home | Edit | New

Home

Highlight

Highlight is a simple syntax highlighting plugin for Ruby on Rails. It’s basically a wrapper around the python project pygments (http://pygments.org) that support various languages.

The plugin adds a new method available in all templates:

  highlight(language, code)

where language can be either a symbol or a string (most file extensions should work for example)

To perform the highlighting, the code is first written to a file in /tmp, e.g.:

  /tmp/highlight_1225993290.70882

Since writing that file, passing its contents on to pygments etc. takes a while, all highlighted source code should be cached of course, e.g.:

  <% cache do %>
    <%= highlight(:ruby, 'class Test; end') -%>
  <% end %>

Supported Languages

The following languages are supported. All of the paranthesized identifiers may be used as parameters for highlight to denote the language the source code to highlight is written in.

  • Actionscript (as, as3, actionscript)
  • Applescript (applescript)
  • bash (bash, sh)
  • C (c, h)
  • Clojure (clojure)
  • C++ (c++, cpp, hpp)
  • C# (c#, csharp, cs)
  • CSS (css)
  • diff (diff)
  • Dylan (dylan)
  • Erlang (erlang, erl, er)
  • HTML (html, htm)
  • Java (java)
  • JavaScript (javascript, js, jscript)
  • JSP (jsp)
  • Make (make, basemake, makefile)
  • Objective-C (objective-c)
  • OCaml (ocaml)
  • Perl (perl, pl)
  • PHP (php)
  • Python (python, (py)
  • RHTML (erb, rhtml)
  • Ruby (ruby, rb)
  • Scala (scala)
  • Scheme (scheme)
  • Smalltalk (smalltalk)
  • Smarty (smarty)
  • SQL (sql)
  • XML (xml, xsd)
  • XSLT (xslt)
  • YAML (yaml, yml)

Installation

Installation is as easy as (for Rails > 2.1):

  ./script/plugin install git://github.com/marcoow/highlight.git

The hightlight.css stylesheet that contains the neccessary style definitions should be copied to your public/stylesheets directory automagically.

If you are on Rails < 2.1, do this from your RAILS_ROOT

  git clone git://github.com/marcoow/highlight.git vendor/plugins/highlight

In this case you would have to copy the hightlight.css stylesheets manually from vendor/plugins/highlight/assets/stylesheets/.

If you don’t have python and pygments installed, you will need that too. For instructions on installing pygments, refer to http://pygments.org/docs/installation/

Last edited by marcoow, Wed Apr 29 12:20:16 -0700 2009
Home | Edit | New
Versions: