The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Plack::App::Directory::Template - Serve static files from document root with directory index template

VERSION

version 0.11

SYNOPSIS

    use Plack::App::Directory;
    my $app = Plack::App::Directory->new({ 
        root      => "/path/to/htdocs",
        templates => "/path/to/templates",  # optional
        filter    => sub {
            $_[0]->{files} = [              # hide hidden files
                 grep { $_->{name} =~ qr{^[^.]|^\.+/$} } @{$_[0]->{files}}
            ];
        }
    })->to_app;

DESCRIPTION

This does what Plack::App::Directory does but with more fancy looking directory index pages. The template is passed to the following variables:

dir

The directory that is listed (absolute server path).

files

List of files, each with the following properties. The special files . and .. are included on purpose. All directory names end with a slash (/).

file.name

Local file name (basename).

file.url

URL path of the file.

file.mime_type

MIME type of the file.

file.stat

File status info as given by File::Stat (dev, ino, mode, nlink, uid, gid, rdev, size, atime, mtime, ctime, blksize, and block).

file.permission

File permissions (given by file.stat.mode & 0777). For instance one can print this in a template with [% file.permission | format("%04o") %].

request

Information about the HTTP request as given by Plack::Request. Includes the properties parameters, base, scheme, path, and user.

Most part of the code is copied from Plack::App::Directory.

CONFIGURATION

root

Document root directory. Defaults to the current directory.

templates

Template directory that must include at least a file named index.html.

filter

A code reference that is passed a hash reference with the template variables dir and files. The reference can be modified before it is passed to the template, for instance to filter and extend file information.

SEE ALSO

Plack::App::Directory, Plack::Middleware::TemplateToolkit

AUTHOR

Jakob Voß

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Jakob Voß.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 150:

Expected text after =item, not a bullet

Around line 189:

Non-ASCII character seen before =encoding in 'Voß'. Assuming UTF-8