Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Simple syntax highlighting library written in javascript
branch: master

This branch is 103 commits behind ccampbell:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
demos
js
tests
themes
util
.gitignore
LICENSE
README.md

README.md

Rainbow

Rainbow is a code syntax highlighting library written in Javascript.

It was designed to be lightweight (1.4kb), easy to use, and extendable.

It is completely themable via CSS.

Quick Start

  1. Include some markup for code you want to be highlighted:

    <pre><code data-language="python">def openFile(path):
        file = open(path, "r")
        content = file.read()
        file.close()
        return content</code></pre>
  2. Include a CSS theme file in the <head>:

    <link href="/assets/css/theme.css" rel="stylesheet" type="text/css">
  3. Include rainbow.js and whatever languages you want before the closing </body>:

    <script src="/assets/js/rainbow.min.js"></script>
    <script src="/assets/js/language/generic.js"></script>
    <script src="/assets/js/language/python.js"></script>

Extending Rainbow

If you have a language specific pattern that you want highlighted, but it does not exist in the language syntax rules you can add a rule on your page.

Let's say for example you want to reference PHP's apc functions. You can include the php language then in the markup on your page add:

<script>
    Rainbow.extend('php', [
        {
            'matches': {
                1: 'support.function'
            },
            'pattern': /\b(apc_(store|fetch|add|inc))(?=\()/g
        }
    ]);
</script>

Supported Languages

Currently supported languages are:

  • C
  • C#
  • Coffeescript
  • CSS
  • HTML
  • Java
  • Javascript
  • Lua
  • PHP
  • Python
  • R
  • Ruby
  • Scheme
  • Shell
  • Smalltalk

More Info

You can check out additional documentation and build custom packages at rainbowco.de.

Something went wrong with that request. Please try again.