# Luminous - a Syntax Highlighter for PHP - v0.7.0

Luminous is an accurate and style-able syntax highlighter for PHP which supports a bunch of common languages and output to HTML and LaTeX.

If you simply want to use Luminous as a library, please don't clone this repository. Or if you do, make sure you delete luminous/tests afterwards. Do not expose luminous/tests on a public machine. It is recommended to get a packaged version from the links below.

## Links:

- Luminous PHP syntax highlighter official site - news, latest stable versions, etc
- Online demo
- Documentation and help, read this if you get stuck!
- Supported language list
- Luminous on GitHub - please report problems to the issue tracker here

# Installation

Extract your tarball, zip, whatever, into some directory where it's going to be used (i.e. probably your web-server). We'll assume it's called `luminous/'

# Quick Usage

First, if you're going to use caching, which you probably are, create a directory called luminous/cache and give it writable permissions (chmod 777 on most servers -- yours may accept a less permissive value). Then include luminous/luminous.php and away you go!

    1234

    <?php
    require_once 'luminous/luminous.php';
    echo luminous::head_html(); // outputs CSS includes, intended to go in <head>
    echo luminous::highlight('c', 'printf("hello world\n");');

Useful examples can be found in luminous/examples/. If you have problems, check that luminous/examples/example.php works.

# Command Line Usage

If you're crazy and want to use Luminous/PHP on the command line, guess what, you can!

    12

    $ cd luminous/
    $ php luminous.php --help

# Polite Warning

Luminous is fairly slow. But it caches! So it's not slow. Or is it?

It depends on your use-case, is the simple answer. Most people should make sure the cache works (create luminous/cache with appropriate permissions), and after that, Luminous will almost certainly have negligable impact on their performance.

Optimizations are welcome, but not at the expense of maintainability.

## Caching

The cache can be stored either directly on the file system or in a MySQL table (support for other DBMSs will come later, patches welcome). In either case, check out the cache documentation.

# Licensing

Luminous is distributed under the LGPL but includes a bunch of stuff which is separate.

- Everything under src/ and languages/ is part of Luminous.
- Everything under tests/regression// is real source code taken from various projects, which is used only as test data. It is all GPL-compatible, but is distributed under its own license. This directory is only present in the git repository and is not part of any stable distribution archives.
- We also include jQuery which is provided under its own license.