FAQ

Page Discussion History

Difference between revisions of "NgxFancyIndex"

(Added line (from README) about new 0.3.3 sorting feature)
m (Layout fixes)
 
Line 31: Line 31:
  
 
3. Change to the directory which contains the Nginx_ sources, run the
 
3. Change to the directory which contains the Nginx_ sources, run the
  configuration script with the desired options and be sure to put an
+
configuration script with the desired options and be sure to put an
  ``--add-module`` flag pointing to the directory which contains the source
+
``--add-module`` flag pointing to the directory which contains the source
  of the fancy indexing module::
+
of the fancy indexing module:
  
 
     $ cd nginx-?.?.?
 
     $ cd nginx-?.?.?
Line 42: Line 42:
 
     $ make
 
     $ make
  
  And then, as ``root``::
+
And then, as ``root``::
  
 
     # make install
 
     # make install
Line 100: Line 100:
 
   be sent.
 
   be sent.
  
.. warning:: When inserting custom header/footer a subrequest will be
+
... warning:
 +
 
 +
  When inserting custom header/footer a subrequest will be
 
   issued so potentially any URL can be used as source for them. Although it
 
   issued so potentially any URL can be used as source for them. Although it
 
   will work with external URLs, only using internal ones is supported.
 
   will work with external URLs, only using internal ones is supported.

Latest revision as of 01:07, 4 December 2013

Contents

Synopsis

The Fancy Index module makes possible the generation of file listings, like the built-in autoindex module does, but adding a touch of style. This is possible because the module module allows a certain degree of customization of the generated content:

  • Custom headers. Either local or stored remotely.
  • Custom footers. Either local or stored remotely.
  • Add you own CSS style rules.
  • Allow choosing to sort elements by name (default), modification time, or size; both ascending (default), or descending (new in 0.3.3).

This module is designed to work with nginx, a high performance open source web server written by Igor Sysoev.

Note: I have compiled this module with nginx-1.0.10 on a server running Debian Squeeze - however the README only talks about nginx-0.8

Requirements

  • Sources for Nginx_ 0.8.x, and its requirements.
    • The module compiles with 0.7.x versions as well.
    • It _might_ compile with 0.6.x applying "nginx-0.6-support.patch", YMMV.
  • Patience, and some Coffee™.

Building

1. Unpack the Nginx_ sources::

   $ gunzip -c nginx-?.?.?.tar.gz | tar -xvf -

2. Download the latest version using Git:

   $ git clone https://github.com/aperezdc/ngx-fancyindex.git ngx-fancyindex

3. Change to the directory which contains the Nginx_ sources, run the configuration script with the desired options and be sure to put an ``--add-module`` flag pointing to the directory which contains the source of the fancy indexing module:

   $ cd nginx-?.?.?
   $ ./configure --add-module=../ngx-fancyindex  [extra desired options]

4. Build and install the software::

   $ make

And then, as ``root``::

   # make install

5. Configure Nginx_ by using the modules' configuration directives_.

Example Enable

You can test the default built-in style by adding the following lines into a ``server`` section in your Nginx_ configuration file::

 location / {
   fancyindex on;              # Enable fancy indexes.
   fancyindex_exact_size off;  # Output human-readable file sizes.
 }


Directives

fancyindex

Syntax: *fancyindex* [*on* | *off*]
Default: fancyindex off
Context: http, server, location
Description:
 Enables or disables fancy directory indexes.

fancyindex_css_href

Syntax: *fancyindex_css_href uri*
Default: fancyindex_css_href ""
Context: http, server, location
Description:
 Allows inserting a link to a CSS style sheet in generated listings. The
 provided *uri* parameter will be inserted as-is in a ``<link>`` HTML tag.
 The link is inserted after the built-in CSS rules, so you can override the
 default styles.

fancyindex_exact_size

Syntax: *fancyindex_exact_size* [*on* | *off*]
Default: fancyindex_exact_size on
Context: http, server, location
Description:
 Defines how to represent file sizes in the directory listing; either
 accurately, or rounding off to the kilobyte, the megabyte and the
 gigabyte.

fancyindex_footer

Syntax: *fancyindex_footer path*
Default: fancyindex_footer ""
Context: http, server, location
Description:
 Specifies which file should be inserted at the foot of directory listings.
 If set to an empty string, the default footer supplied by the module will
 be sent.

... warning:

  When inserting custom header/footer a subrequest will be
  issued so potentially any URL can be used as source for them. Although it
  will work with external URLs, only using internal ones is supported.
  External URLs are totally untested and using them will make Nginx_ block
  while waiting for the subrequest to complete. If you feel like external
  header/footer is a must-have for you, please
  `let me know <mailto:aperez@igalia.com>`__.

fancyindex_header

Syntax: *fancyindex_header path*
Default: fancyindex_header ""
Context: http, server, location
Description:
 Specifies which file should be inserted at the head of directory listings.
 If set to an empty string, the default header supplied by the module will
 be sent.

fancyindex_ignore

Syntax: *fancyindex_ignore string1 [string2 [... stringN]]*
Default: No default.
Context: http, server, location
Description:
 Specifies a list of file names which will be not be shown in generated
 listings. If Nginx was built with PCRE support strings are interpreted as
 regular expressions.

fancyindex_localtime

Syntax: *fancyindex_localtime* [*on* | *off*]
Default: fancyindex_localtime off
Context: http, server, location
Description:
 Enables showing file times as local time. Default is “off” (GMT time).