README.md
========================
Модуль Fancy Index для Nginx
========================
.. image:: https://travis-ci.org/aperezdc/ngx-fancyindex.svg?branch=master
:target: https://travis-ci.org/aperezdc/ngx-fancyindex
:alt: Статус сборки
.. contents::
Модуль Fancy Index позволяет генерировать списки файлов, как это делает встроенный модуль `autoindex `__, но с добавлением стилистики. Это возможно благодаря тому, что модуль позволяет некоторую степень кастомизации сгенерированного контента:
* Кастомные заголовки. Локальные или хранящиеся удалённо.
* Кастомные футеры. Локальные или хранящиеся удалённо.
* Добавление собственных правил CSS.
* Возможность выбора сортировки элементов по имени (по умолчанию), времени изменения или размеру; как по возрастанию (по умолчанию), так и по убыванию.
Этот модуль предназначен для работы с Nginx_, высокопроизводительным открытым сервером, написанным `Игорем Сысоевым `__.
Требования
===========
CentOS Yöntem
~~~~~~~~
Для пользователей официального стабильного репозитория `Nginx `__ доступен репозиторий `extra packages с динамическими модулями `__. В него включен модуль fancyindex.
Установка напрямую::
yum install https://extras.getpagespeed.com/redhat/7/x86_64/RPMS/nginx-module-fancyindex-1.12.0.0.4.1-1.el7.gps.x86_64.rpmАльтернативно, можно добавить репозиторий extra первым (для будущих обновлений) и установить модуль::
yum install nginx-module-fancyindex
Затем загрузите модуль в `/etc/nginx/nginx.conf` используя:
load_module "modules/ngx_http_fancyindex_module.so";Другие платформы
~~~~~~~~~~~~~~~~
В большинстве других случаев вам потребуются исходники для Nginx_. Любая версия начиная с серии 0.7 будет работать. Обратите внимание, что модули *возможно* будут компилироваться с версиями из серии 0.6 при применении патча `nginx-0.6-support.patch`, но это неподдерживаемо (YMMV).
Чтобы использовать директивы ``fancyindex_header_`` и ``fancyindex_footer_``, вам также понадобится встроенный модуль `ngx_http_addition_module `_.
Сборка
======
1. Распакуйте исходники Nginx_::
$ gunzip -c nginx-?.?.?.tar.gz | tar -xvf -
2. Распакуйте исходники модуля fancy indexing следующим образом:
```
$ gunzip -c nginx-fancyindex-?.?.?.tar.gz | tar -xvf -
```
3. Перейдите в директорию, содержащую исходники Nginx_, запустите конфигурационный скрипт с нужными параметрами и убедитесь, что указали флаг ``--add-module``, который указывает на директорию, содержащую исходники модуля fancy indexing:
```
$ cd nginx-?.?.?
$ ./configure --add-module=../nginx-fancyindex-?.?.? \
[--with-http_addition_module] [дополнительные желаемые параметры]
```
Начиная с версии 0.4.0, модуль также может быть собран как
`динамический модуль `_,
используя вместо этого параметр ``--add-dynamic-module=…`` и
``load_module "modules/ngx_http_fancyindex_module.so";``
в конфигурационном файле.
4. Соберите и установите программное обеспечение:
```
$ make
``` А затем, как ``root``:
```
# make install
```
5. Настройте Nginx_ с помощью директив конфигурации модулей.
Пример
======
Вы можете протестировать встроенный стиль по умолчанию, добавив следующие строки в раздел ``server`` вашего конфигурационного файла Nginx_:
```
location / {
fancyindex on; # Включает fancy индексы.
fancyindex_exact_size off; # Отображает размеры файлов в человекочитаемом виде.
}
```
Темы
~~~~
Следующие темы демонстрируют уровень кастомизации, который можно достичь с использованием данного модуля:
* `Тема `__ от
`@TheInsomniac `__. Использует кастомные шапку и подвал.
* `Тема `__ от
`@Naereen `__. Использует кастомные шапку и подвал, шапка включает поле поиска для фильтрации по имени файла с помощью JavaScript.
* `Тема `__ от
`@fraoustin `__. Откликчиваясь тема, использующая элементы Material Design.
* `Тема `__ от
`@alehaa `__. Простая, плоская тема, основанная на Bootstrap 4 и FontAwesome.
Директивы
==========
fancyindex
~~~~~~~~~~
:Синтаксис: *fancyindex* [*on* | *off*]
:Значение по умолчанию: fancyindex off
:Контекст: http, server, location
:Описание:
Включает или выключает fancy каталоги.
fancyindex_default_sort
~~~~~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_default_sort* [*name* | *size* | *date* | *name_desc* | *size_desc* | *date_desc*]
:Значение по умолчанию: fancyindex_default_sort name
:Контекст: http, server, location
:Описание:
Определяет критерий сортировки по умолчанию.fancyindex_directories_first
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_directories_first* [*on* | *off*]
:По умолчанию: fancyindex_directories_first on
:Контекст: http, server, location
:Описание:
Если включен (значение по умолчанию), директории группируются вместе и сортируются перед всеми обычными файлами. Если отключен, директории сортируются вместе с файлами.
fancyindex_css_href
~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_css_href uri*
:По умолчанию: fancyindex_css_href ""
:Контекст: http, server, location
:Описание:
Разрешает вставку ссылки на CSS-файл стилей в сгенерированные списки. Введенный параметр *uri* будет вставлен как есть в тег ```` HTML. Ссылка вставляется после встроенных правил CSS, что позволяет переопределить дефолтные стили.
fancyindex_exact_size
~~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_exact_size* [*on* | *off*]
:По умолчанию: fancyindex_exact_size on
:Контекст: http, server, location
:Описание:
Определяет способ представления размеров файлов в списке директорий; либо точно, либо округлено до килобайтов, мегабайтов и гигабайтов.
fancyindex_name_length
~~~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_name_length length*
:По умолчанию: fancyindex_name_length 50
:Контекст: http, server, location
:Описание:
Определяет максимальный лимит длины имени файла в байтах.
fancyindex_footer
~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_footer path*
:По умолчанию: fancyindex_footer ""
:Контекст: http, server, location
:Описание:
Указывает файл, который следует вставить в нижней части списка директорий. Если значение установлено как пустая строка, дефолтная подвал, предоставляемая модулем, будет отправлена... note:: Для использования этой директивы требуется наличие модуля ngx_http_addition_module в сборке Nginx.
.. warning:: При вставке пользовательского шапки/подвала будет запущен подзапрос, так что потенциально любой URL может использоваться как источник для них. Хотя это будет работать с внешними URL, поддерживаются только внутренние URL. Внешние URL совершенно не тестированы, и использование их приведет к тому, что Nginx заблокируется, ожидая завершения подзапроса. Если вам необходимы внешние шапка/подвал, пожалуйста,
`сообщите мне `__.
fancyindex_header
~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_header путь*
:Значение по умолчанию: fancyindex_header ""
:Контекст: http, сервер, локация
:Описание:
Указывает, какой файл следует вставить в начало списка директорий.
Если значение установлено как пустая строка, будет отправлен дефолтный шаблон,
предоставляемый модулем.
.. note:: Для использования этой директивы требуется наличие модуля ngx_http_addition_module в сборке Nginx.
fancyindex_show_path
~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_show_path* [*вкл* | *выкл*]
:Значение по умолчанию: fancyindex_show_path вкл
:Контекст: http, сервер, локация
:Описание:
Определяет, выводить ли путь и закрывающий тэг после заголовка.
Это полезно, когда вы хотите отображать путь с помощью скрипта на PHP, например.
.. warning:: Эту директиву можно отключить только если используется пользовательский заголовок через fancyindex_header.fancyindex_ignore
~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_ignore строка1 [строка2 [... строкаН]]*
:Значение по умолчанию: Нет значения по умолчанию.
:Контекст: http, сервер, локация
:Описание:
Указывает список имен файлов, которые не будут показываться в списке директорий.
Если Nginx был собран с поддержкой PCRE, строки могут интерпретироваться как регулярные выражения.
fancyindex_hide_symlinks
~~~~~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_hide_symlinks* [*вкл* | *выкл*]
:Значение по умолчанию: fancyindex_hide_symlinks выкл
:Контекст: http, сервер, локация
:Описание:
Когда включен, генерируемые списки директорий не будут содержать символьные ссылки.
fancyindex_hide_parent_dir
~~~~~~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_hide_parent_dir* [*вкл* | *выкл*]
:Значение по умолчанию: fancyindex_hide_parent_dir выкл
:Контекст: http, сервер, локация
:Описание:
Когда включен, родительская директория не будет отображаться.
fancyindex_localtime
~~~~~~~~~~~~~~~~~~~~
:Синтаксис: *fancyindex_localtime* [*вкл* | *выкл*]
:Значение по умолчанию: fancyindex_localtime выкл
:Контекст: http, сервер, локация
:Описание:
Включает отображение времени создания файла в локальном часовом поясе. По умолчанию "выкл" (время GMT).fancyindex_time_format
~~~~~~~~~~~~~~~~~~~~~~
:Syntax: *fancyindex_time_format* string
:Default value: fancyindex_time_format "%Y-%b-%d %H:%M"
:Context: http, server, location
:Description:
Формат строки для временных меток. Формат спецификаторов является подмножеством тех, что поддерживаются функцией `strftime `_,
поведение которой независимо от локали (например, названия дней недели и месяцев всегда на английском). Поддерживаемые форматы:
* ``%a``: Сокращённое название дня недели.
* ``%A``: Полное название дня недели.
* ``%b``: Сокращённое название месяца.
* ``%B``: Полное название месяца.
* ``%d``: День месяца как десятичное число (диапазон от 01 до 31).
* ``%e``: Как ``%d``, день месяца как десятичное число; ведущий ноль заменяется пробелом.
* ``%F``: Эквивалентно ``%Y-%m-%d`` (формат даты по стандарту ISO 8601).
* ``%H``: Час как десятичное число с использованием 24-часной шкалы (диапазон от 00 до 23).
* ``%I``: Час как десятичное число с использованием 12-часной шкалы (диапазон от 01 до 12).
* ``%k``: Час (24-часная шкала) как десятичное число (диапазон от 0 до 23); одиночные цифры предваряются пробелом.
* ``%l``: Час (12-часная шкала) как десятичное число (диапазон от 1 до 12); одиночные цифры предваряются пробелом.
* ``%m``: Месяц как десятичное число (диапазон от 01 до 12).
* ``%M``: Минута как десятичное число (диапазон от 00 до 59).
* ``%p``: Либо "AM", либо "PM" в зависимости от значения времени.
* ``%P``: Как ``%p``, но в нижнем регистре: "am" или "pm". * ``%r``: Время в формате AM или PM эквивалентно ``%I:%M:%S %p``.
* ``%R``: Время в формате 24-часового отсчета (``%H:%M``).
* ``%S``: Секунда как десятичное число (диапазон от 00 до 60).
* ``%T``: Время в формате 24-часового отсчета (``%H:%M:%S``).
* ``%u``: День недели как десятичное число (диапазон от 1 до 7), понедельник — это 1.
* ``%w``: День недели как десятичное число (диапазон от 0 до 6), понедельник — это 0.
* ``%y``: Год как десятичное число без века (диапазон от 00 до 99).
* ``%Y``: Год как десятичное число с веком... _nginx: https://nginx.org
.. vim:ft=rst:spell:spelllang=ru:utf-8:
Комментарии ( 0 )