Added fancyindex_mode directive.
parent
059d4a8811
commit
c2f086207b
|
@ -0,0 +1,23 @@
|
|||
<todo version="0.1.19">
|
||||
<note priority="medium" time="1187975642">
|
||||
readme:iframe
|
||||
</note>
|
||||
<note priority="medium" time="1187975645">
|
||||
readme:div
|
||||
</note>
|
||||
<note priority="medium" time="1187975648">
|
||||
readme:pre
|
||||
</note>
|
||||
<note priority="medium" time="1187975662">
|
||||
header:inline
|
||||
</note>
|
||||
<note priority="medium" time="1187975665">
|
||||
header:cache
|
||||
</note>
|
||||
<note priority="medium" time="1187975708">
|
||||
footer:inline
|
||||
</note>
|
||||
<note priority="medium" time="1187975712">
|
||||
footer:cache
|
||||
</note>
|
||||
</todo>
|
17
README.rst
17
README.rst
|
@ -130,6 +130,23 @@ fancyindex_readme_options
|
|||
will instruct the client to perform an additional request in order to
|
||||
fetch the contents of the frame.
|
||||
|
||||
fancyindex_mode
|
||||
:Syntax: *fancyindex_mode* *static* | *cached*
|
||||
:Default: *fancyindex_mode static*
|
||||
:Context: http, server, location
|
||||
:Description:
|
||||
Controls how to include the header and footer specified by
|
||||
`fancyindex_header`_ and `fancyindex_footer`_, Available options are:
|
||||
|
||||
static
|
||||
Read file contents on each request. This is the less efficient method,
|
||||
but generated content will always follow on-disk changes of head and
|
||||
footer templates.
|
||||
cached
|
||||
Header and footer contents will be read the first time they are
|
||||
needed, and kept in memory for thei use in subsequent requests. If the
|
||||
modification time of files changes, they will be re-read as needed.
|
||||
|
||||
|
||||
.. _nginx: http://nginx.net
|
||||
|
||||
|
|
|
@ -36,13 +36,6 @@ typedef struct {
|
|||
|
||||
#endif
|
||||
|
||||
#define NGX_HTTP_FANCYINDEX_README_TOP 0x00
|
||||
#define NGX_HTTP_FANCYINDEX_README_PRE 0x00
|
||||
#define NGX_HTTP_FANCYINDEX_README_ASIS 0x01
|
||||
#define NGX_HTTP_FANCYINDEX_README_BOTTOM 0x02
|
||||
#define NGX_HTTP_FANCYINDEX_README_DIV 0x04
|
||||
#define NGX_HTTP_FANCYINDEX_README_IFRAME 0x08
|
||||
|
||||
|
||||
typedef struct {
|
||||
ngx_str_t name;
|
||||
|
@ -54,6 +47,21 @@ typedef struct {
|
|||
} ngx_http_fancyindex_entry_t;
|
||||
|
||||
|
||||
#define NGX_HTTP_FANCYINDEX_README_TOP 0x00
|
||||
#define NGX_HTTP_FANCYINDEX_README_PRE 0x00
|
||||
#define NGX_HTTP_FANCYINDEX_README_ASIS 0x01
|
||||
#define NGX_HTTP_FANCYINDEX_README_BOTTOM 0x02
|
||||
#define NGX_HTTP_FANCYINDEX_README_DIV 0x04
|
||||
#define NGX_HTTP_FANCYINDEX_README_IFRAME 0x08
|
||||
|
||||
|
||||
typedef enum {
|
||||
NGX_HTTP_FANCYINDEX_INCLUDE_STATIC, /* Cache file contents on first request */
|
||||
NGX_HTTP_FANCYINDEX_INCLUDE_CACHED, /* Cache file contents on first request,
|
||||
and re-read if needed afterwards */
|
||||
} ngx_http_fancyindex_include_mode_t;
|
||||
|
||||
|
||||
typedef struct {
|
||||
ngx_flag_t enable;
|
||||
ngx_flag_t localtime;
|
||||
|
@ -64,9 +72,14 @@ typedef struct {
|
|||
ngx_str_t readme;
|
||||
|
||||
ngx_uint_t readme_flags;
|
||||
|
||||
ngx_http_fancyindex_include_mode_t include_mode;
|
||||
} ngx_http_fancyindex_loc_conf_t;
|
||||
|
||||
|
||||
#define nfi_conf_path_set(_c, _n) ((_c)->((_n).len) > 0)
|
||||
|
||||
|
||||
#define NGX_HTTP_FANCYINDEX_PREALLOCATE 50
|
||||
#define NGX_HTTP_FANCYINDEX_NAME_LEN 50
|
||||
|
||||
|
@ -82,7 +95,7 @@ static char *ngx_http_fancyindex_merge_loc_conf(ngx_conf_t *cf,
|
|||
|
||||
|
||||
|
||||
static ngx_conf_bitmask_t ngx_http_fancyindex_readme_flags[] = {
|
||||
static const ngx_conf_bitmask_t ngx_http_fancyindex_readme_flags[] = {
|
||||
{ ngx_string("pre"), NGX_HTTP_FANCYINDEX_README_PRE },
|
||||
{ ngx_string("asis"), NGX_HTTP_FANCYINDEX_README_ASIS },
|
||||
{ ngx_string("top"), NGX_HTTP_FANCYINDEX_README_TOP },
|
||||
|
@ -93,6 +106,14 @@ static ngx_conf_bitmask_t ngx_http_fancyindex_readme_flags[] = {
|
|||
};
|
||||
|
||||
|
||||
|
||||
static const ngx_conf_enum_t ngx_http_fancyindex_include_modes[] = {
|
||||
{ ngx_string("static"), NGX_HTTP_FANCYINDEX_INCLUDE_STATIC },
|
||||
{ ngx_string("cached"), NGX_HTTP_FANCYINDEX_INCLUDE_CACHED },
|
||||
{ ngx_null_string, 0 },
|
||||
};
|
||||
|
||||
|
||||
static ngx_command_t ngx_http_fancyindex_commands[] = {
|
||||
|
||||
{ ngx_string("fancyindex"),
|
||||
|
@ -144,6 +165,13 @@ static ngx_command_t ngx_http_fancyindex_commands[] = {
|
|||
offsetof(ngx_http_fancyindex_loc_conf_t, readme_flags),
|
||||
&ngx_http_fancyindex_readme_flags },
|
||||
|
||||
{ ngx_string("fancyindex_mode"),
|
||||
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
|
||||
ngx_conf_set_enum_slot,
|
||||
NGX_HTTP_LOC_CONF_OFFSET,
|
||||
offsetof(ngx_http_fancyindex_loc_conf_t, include_mode),
|
||||
&ngx_http_fancyindex_include_modes },
|
||||
|
||||
ngx_null_command
|
||||
};
|
||||
|
||||
|
@ -683,6 +711,7 @@ ngx_http_fancyindex_create_loc_conf(ngx_conf_t *cf)
|
|||
conf->localtime = NGX_CONF_UNSET;
|
||||
conf->exact_size = NGX_CONF_UNSET;
|
||||
conf->readme_flags = NGX_CONF_UNSET;
|
||||
conf->include_mode = NGX_CONF_UNSET;
|
||||
|
||||
return conf;
|
||||
}
|
||||
|
@ -697,6 +726,8 @@ ngx_http_fancyindex_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
ngx_conf_merge_value(conf->enable, prev->enable, 0);
|
||||
ngx_conf_merge_value(conf->localtime, prev->localtime, 0);
|
||||
ngx_conf_merge_value(conf->exact_size, prev->exact_size, 1);
|
||||
ngx_conf_merge_uint_value(conf->include_mode, prev->include_mode,
|
||||
NGX_HTTP_FANCYINDEX_INCLUDE_STATIC);
|
||||
|
||||
ngx_conf_merge_str_value(conf->header, prev->header, "");
|
||||
ngx_conf_merge_str_value(conf->footer, prev->footer, "");
|
||||
|
|
Loading…
Reference in New Issue