Module: Simplabs::Highlight
- Defined in:
- lib/simplabs/highlight.rb,
lib/simplabs/highlight/railtie.rb,
lib/simplabs/highlight/pygments_wrapper.rb
Overview
Highlight is a simple syntax highlighting plugin for Ruby on Rails. It's basically a wrapper around the popular pygments.org highlighter that's written in Python and supports an impressive number of languages. If pygments is installed on the machine and in the PATH, that binary is used, otherwise the plugin falls back to the web API at (pygments.simplabs.com/), created by Trevor Turk.
Supported Languages
The following languages are supported. All of the paranthesized identifiers may be used as parameters for the highlight method to denote the language the source code to highlight is written in (use either Symbols or Strings).
-
Actionscript (as, as3, actionscript)
-
Applescript (applescript)
-
bash (bash, sh)
-
C (c, h)
-
Clojure (clojure)
-
CoffeeScript (coffee)
-
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)
-
NASM (nasm, asm)
-
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)
Defined Under Namespace
Modules: ViewMethods Classes: PygmentsWrapper, Railtie
Constant Summary
- SUPPORTED_LANGUAGES =
{ :as => ['as', 'as3', 'actionscript'], :applescript => ['applescript'], :bash => ['bash', 'sh'], :c => ['c', 'h'], :clojure => ['clojure'], :coffeescript => ['coffeescript', 'coffee'], :cpp => ['c++', 'cpp', 'hpp'], :csharp => ['c#', 'csharp', 'cs'], :css => ['css'], :diff => ['diff'], :dylan => ['dylan'], :erlang => ['erlang'], :html => ['html', 'htm'], :java => ['java'], :js => ['javascript', 'js', 'jscript'], :jsp => ['jsp'], :lua => ['lua'], :make => ['make', 'basemake', 'makefile'], :nasm => ['nasm', 'asm'], :objective-c' => ['objective-c'], :ocaml => ['ocaml'], :perl => ['perl', 'pl'], :php => ['php'], :python => ['python', 'py'], :rhtml => ['erb', 'rhtml'], :ruby => ['ruby', 'rb'], :scala => ['scala'], :scheme => ['scheme'], :smallralk => ['smalltalk'], :smarty => ['smarty'], :sql => ['sql', 'mysql'], :xml => ['xml', 'xsd'], :xslt => ['xslt'], :yaml => ['yaml', 'yml'] }
- WEB_API_URL =
'http://pygments.simplabs.com/'
Class Attribute Summary collapse
-
.use_web_api ⇒ Object
Returns the value of attribute use_web_api.
Class Method Summary collapse
-
.highlight(language, code) ⇒ String
Highlights the passed code with the appropriate rules according to the specified language.
Class Attribute Details
.use_web_api ⇒ Object
Returns the value of attribute use_web_api
62 63 64 |
# File 'lib/simplabs/highlight.rb', line 62 def use_web_api @use_web_api end |
Class Method Details
.highlight(language, code) ⇒ String
Highlights the passed code with the appropriate rules according to the specified language.
116 117 118 119 120 121 122 123 124 |
# File 'lib/simplabs/highlight.rb', line 116 def self.highlight(language, code) language = get_language_sym(language) return CGI.escapeHTML(code) unless language if Simplabs::Highlight.use_web_api highlight_with_web_api(language, code) else Simplabs::Highlight::PygmentsWrapper.new(code, language).highlight end end |