--------------------------------------------------------------------- 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.