---------------------------------------------------------------------
                                                       WHAT IS THIS?
---------------------------------------------------------------------

Vimoutliner already comes with some otl to HTML converters that work
quite well.  I maintain a few different otl files, that are displayed
on a internal intranet - the step of converting to HTML on every little
change before upload was becoming mildly irritating, and countering my
near legendary laziness.

This mod_perl handler teaches apache how to pretty print otl natively.

Now, I can just edit the otl files directly - skip the conversion step
altogether, and let Apache make some delicious looking outlines.

---------------------------------------------------------------------
                                                        INSTALLATION
---------------------------------------------------------------------

First off all, make sure you have a mod_perl enabled Apache.

1) Add the following lines in your httpd.conf:

    -------------------------
    PerlRequire /path/to/otl_handler.pl

    <FilesMatch ".*\.otl">
        SetHandler perl-script
        PerlHandler Apache::OTL
    </FilesMatch>
    -------------------------

2) Put the included css at /otl_style.css in your document root.


That's it!  Apache will now pretty-print all your otl files.

---------------------------------------------------------------------
                                                            SETTINGS
---------------------------------------------------------------------

Settings for the otl_handler are stored on the first line of the otl
files themselves, prefixed by a colon.  See the sample.otl for an
example settings line.  All settings are entirely optional.

title
    Type: string
    Default: filename

    The title of the OTL.  Used as a header, and the html title.
    If this is not set, the html title is derived from the filename.


style
    Type: string
    Default: /otl_style.css

    A path to the css style.


js
    Type: string
    Default: none

    Use javascript?  If set, loads an external javascript library,
    and calls init_page() on body load.
    See the example 'folding' javascript included.


divs
    Type: boolean
    Default: 0

    Wrap each outline group in a div class called "group"


dividers
    Type: boolean
    Default: 0

    Separate each outline group with a horizontal rule?


legend
    Type: boolean
    Default: 0

    Display small legend for todo and done items?


sort
    Type: boolean
    Default: 0

    Show sort links?


sorttype
    Type: string
    Default: none

    Default sorting method.  Valid values are
        percent
        alpha


sortrev
    Type: boolean
    Default: 0

    Should we default to reverse sorting?


counts
    Type: boolean
    Default: 0

    Count and display sub items?


timer
    Type: boolean
    Default: 0

    Display how long the parser took to generate the html?


---------------------------------------------------------------------
                                                      INCLUDED FILES
---------------------------------------------------------------------

otl_handler.pl
    The mod_perl code itself.
    Feel free to modify to taste.

otl_style.css
    Example css.  Again, modify to taste!

otl.js
    Example (but functional!) javascript.  If you use this
    file, your top level items will be 'clickable' - expanding
    the sub items underneath, but not initially showing them.

sample.otl
    An example vimoutliner file, with optional settings.


