NAME
   Apache2::AutoIndex::XSLT - XSLT Based Directory Listings

SYNOPSIS
    PerlLoadModule Apache2::AutoIndex::XSLT
    <Location />
        SetHandler perl-script
        PerlResponseHandler Apache2::AutoIndex::XSLT
        Options +Indexes
        IndexStyleSheet /index.xslt
        DefaultIcon /icons/__unknown.png
        IndexIgnore .*
        IndexIgnore index.xslt
        IndexIgnore robots.txt
        IndexIgnore sitemap.gz
    </Location>

DESCRIPTION
   This module is designed as a drop in mod_perl2 replacement for the
   mod_dir and mod_index modules. It uses user configurable XSLT
   stylesheets to generate the directory listings.

   THIS CODE IS INCOMPLETE -- THIS IS A DEVELOPMENT RELEASE!

CONFIGURATION
   This module attempts to emulate as much as the functionality from the
   Apache mod_dir and mod_index modules as possible. Some of this is
   performed directly by the Apache::AutoIndex::XSLT module itself, and
   some through a combination of the *options* elements presented in the
   output XML and the XSLT stylesheet. As a result, some of these
   configuration directives will do little or nothing at all if the XSLT
   stylesheet used does not use them.

 FileTypesFilename
        FileTypesFilename

 RenderXSLT
        RenderXSLT On

 RenderXSLTEnvVar
       SetEnvIf Remote_Addr . RenderXSLT=On
       BrowserMatch "Firefox/(2.0|1.5|1.0.[234567])" !RenderXSLT
       BrowserMatch "MSIE [67].0" !RenderXSLT
       BrowserMatch "Netscape/8" !RenderXSLT
       BrowserMatch "Opera/9" !RenderXSLT
       RenderXSLTEnvVar RenderXSLT

 AddAlt
        AddAlt "PDF file" *.pdf
        AddAlt Compressed *.gz *.zip *.Z

   *AddAlt* provides the alternate text to display for a file, instead of
   an icon. File is a file extension, partial filename, wild-card
   expression or full filename for files to describe. If String contains
   any whitespace, you have to enclose it in quotes (" or '). This
   alternate text is displayed if the client is image-incapable, has image
   loading disabled, or fails to retrieve the icon.

 AddAltByEncoding
        AddAltByEncoding gzip x-gzip

   *AddAltByEncoding* provides the alternate text to display for a file,
   instead of an icon. MIME-encoding is a valid content-encoding, such as
   x-compress. If String contains any whitespace, you have to enclose it in
   quotes (" or '). This alternate text is displayed if the client is
   image-incapable, has image loading disabled, or fails to retrieve the
   icon.

 AddAltByType
        AddAltByType 'plain text' text/plain

   *AddAltByType* sets the alternate text to display for a file, instead of
   an icon. MIME-type is a valid content-type, such as text/html. If String
   contains any whitespace, you have to enclose it in quotes (" or '). This
   alternate text is displayed if the client is image-incapable, has image
   loading disabled, or fails to retrieve the icon.

 AddDescription
        AddDescription "The planet Mars" /web/pics/mars.png

   This sets the description to display for a file. File is a file
   extension, partial filename, wild-card expression or full filename for
   files to describe. String is enclosed in double quotes (").

 AddIcon
        AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm
        AddIcon /icons/dir.xbm ^^DIRECTORY^^
        AddIcon /icons/backup.xbm *~

   This sets the icon to display next to a file ending in name. Icon is
   either a (%-escaped) relative URL to the icon, or of the format
   (alttext,url) where alttext is the text tag given for an icon for
   non-graphical browsers.

   Name is either ^^DIRECTORY^^ for directories, ^^BLANKICON^^ for blank
   lines (to format the list correctly), a file extension, a wildcard
   expression, a partial filename or a complete filename.

   *AddIconByType* should be used in preference to *AddIcon*, when
   possible.

 AddIconByEncoding
        AddIconByEncoding /icons/compress.xbm x-compress

   This sets the icon to display next to files. Icon is either a
   (%-escaped) relative URL to the icon, or of the format (alttext,url)
   where alttext is the text tag given for an icon for non-graphical
   browsers.

   MIME-encoding is a wildcard expression matching required the
   content-encoding.

 AddIconByType
        AddIconByType (IMG,/icons/image.xbm) image/*

   This sets the icon to display next to files of type MIME-type. Icon is
   either a (%-escaped) relative URL to the icon, or of the format
   (alttext,url) where alttext is the text tag given for an icon for
   non-graphical browsers.

   MIME-type is a wildcard expression matching required the mime types.

 DefaultIcon
        DefaultIcon /icons/__unknown.png

   The *DefaultIcon* directive sets the icon to display for files when no
   specific icon is known. Url-path is a (%-escaped) relative URL to the
   icon.

 HeaderName
 IndexIgnore
        IndexIgnore README .htindex *.bak *~

   The *IndexIgnore* directive adds to the list of files to hide when
   listing a directory. File is a shell-style wildcard expression or full
   filename. Multiple *IndexIgnore* directives add to the list, rather than
   the replacing the list of ignored files. By default, the list contains .
   (the current directory).

 IndexOptions
        IndexOptions +DescriptionWidth=* +FancyIndexing +FoldersFirst +HTMLTable
        IndexOptions +IconsAreLinks +IconHeight=16 +IconWidth=16 +IgnoreCase
        IndexOptions +IgnoreClient +NameWidth=* +ScanHTMLTitles +ShowForbidden
        IndexOptions +SuppressColumnSorting +SuppressDescription
        IndexOptions +SuppressHTMLPreamble +SuppressIcon +SuppressLastModified
        IndexOptions +SuppressRules +SuppressSize +TrackModified +VersionSort
        IndexOptions +XHTML

   The *IndexOptions* directive specifies the behavior of the directory
   indexing.

   See
   <http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#indexoptions>.

 IndexOrderDefault
        IndexOrderDefault Ascending Name

   The *IndexOrderDefault* directive is used in combination with the
   *FancyIndexing* index option. By default, fancyindexed directory
   listings are displayed in ascending order by filename; the
   *IndexOrderDefault* allows you to change this initial display order.

   *IndexOrderDefault* takes two arguments. The first must be either
   Ascending or Descending, indicating the direction of the sort. The
   second argument must be one of the keywords Name, Date, Size, or
   Description, and identifies the primary key. The secondary key is always
   the ascending filename.

   You can force a directory listing to only be displayed in a particular
   order by combining this directive with the *SuppressColumnSorting* index
   option; this will prevent the client from requesting the directory
   listing in a different order.

 IndexStyleSheet
        IndexStyleSheet "/css/style.css"

   The *IndexStyleSheet* directive sets the name of the file that will be
   used as the CSS for the index listing.

 ReadmeName
        ReadmeName FOOTER.html

   The *ReadmeName* directive sets the name of the file that will be
   appended to the end of the index listing. Filename is the name of the
   file to include, and is taken to be relative to the location being
   indexed. If Filename begins with a slash, it will be taken to be
   relative to the *DocumentRoot*.

 DirectoryIndex
        DirectoryIndex index.html index.shtml

   The *DirectoryIndex* directive sets the list of resources to look for,
   when the client requests an index of the directory by specifying a / at
   the end of the directory name. Local-url is the (%-encoded) URL of a
   document on the server relative to the requested directory; it is
   usually the name of a file in the directory. Several URLs may be given,
   in which case the server will return the first one that it finds. If
   none of the resources exist and the *Indexes* option is set, the server
   will generate its own listing of the directory.

 DirectorySlash
        DirectorySlash On

   The *DirectorySlash* directive determines, whether or not to fixup URLs
   pointing to a directory or not. With this enabled (which is the
   default), if a user requests a resource without a trailing slash, which
   points to a directory, the user will be redirected to the same resource,
   but with trailing slash.

XSLT STYLESHEET
   The XSLT stylesheet will default to *index.xslt* in the DocumentRoot of
   the website. This can be changed using the *IndexStyleSheet* directive.

   An example *index.xslt* file is bundled with this module in the
   *examples/* directory.

SEE ALSO
   Apache::AutoIndex,
   <http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html>,
   <http://httpd.apache.org/docs/2.2/mod/mod_dir.html>, examples/*,
   <http://bb-207-42-158-85.fallbr.tfb.net/>

VERSION
   $Id: XSLT.pm 1077 2007-12-14 17:44:32Z nicolaw $

AUTHOR
   Nicola Worthington <[email protected]>, TFB Technology Ltd.

   <http://perlgirl.org.uk>, <http://www.tfbtechnology.ltd.uk>,
   <http://www.tfb.net>

   If you like this software, why not show your appreciation by sending the
   author something nice from her Amazon wishlist? (
   http://www.amazon.co.uk/gp/registry/1VZXC59ESWYK0?sort=priority )

   With special thanks to Jennifer Beattie for helping develop the example
   XSLT stylesheets, and writing the *examples/RegFileTypes.cs* "registered
   file type" data and icons extraction program for Windows.

   With special thanks to the authors of
   <http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html> from which
   some documentation taken.

COPYRIGHT
   Copyright 2006, 2007 Nicola Worthington.

   This software is licensed under The Apache Software License, Version
   2.0.

   <http://www.apache.org/licenses/LICENSE-2.0>