├── _config.yml
├── HEADER.md
├── dark-Theme
├── header.html
├── footer.html
├── addNginxFancyIndexForm.js
└── styles.css
├── light-Theme
├── header.html
├── footer.html
├── addNginxFancyIndexForm.js
└── styles.css
├── fancyindex.conf
├── LICENSE
└── README.md
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-slate
2 |
--------------------------------------------------------------------------------
/HEADER.md:
--------------------------------------------------------------------------------
1 | # Nginx-Fancyindex-Theme
2 | A responsive theme for Nginx Fancyindex module. Minimal, modern and simple.
3 | Comes with a search form, aims to handle thousands of files without any problems.
4 |
5 | The fancyindex module can be found [here](https://github.com/aperezdc/ngx-fancyindex).
6 |
--------------------------------------------------------------------------------
/dark-Theme/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Nginx Directory
7 |
8 |
9 |
10 |
11 | Directory:
12 |
--------------------------------------------------------------------------------
/light-Theme/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Nginx Directory
7 |
8 |
9 |
10 |
11 | Directory:
12 |
--------------------------------------------------------------------------------
/dark-Theme/footer.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/light-Theme/footer.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/fancyindex.conf:
--------------------------------------------------------------------------------
1 | fancyindex on;
2 | fancyindex_localtime on;
3 | fancyindex_exact_size off;
4 | # Specify the path to the header.html and foother.html files (server-wise)
5 | fancyindex_header "/Nginx-Fancyindex-Theme/light-Theme/header.html";
6 | fancyindex_footer "/Nginx-Fancyindex-Theme/light-Theme/footer.html";
7 | #fancyindex_header "/Nginx-Fancyindex-Theme/dark-Theme/header.html";
8 | #fancyindex_footer "/Nginx-Fancyindex-Theme/dark-Theme/footer.html";
9 | # Ignored files will not show up in the directory listing, but will still be public.
10 | fancyindex_ignore "examplefile.html";
11 | # Making sure folder where these files are do not show up in the listing.
12 | fancyindex_ignore "Nginx-Fancyindex-Theme";
13 | # Maximum file name length in bytes, change as you like.
14 | fancyindex_name_length 255;
15 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright © 2016-17 Lilian Besson (Naereen), https://GitHub.com/Naereen/
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the “Software”), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in
12 | all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/dark-Theme/addNginxFancyIndexForm.js:
--------------------------------------------------------------------------------
1 | // addNginxFancyIndexForm.js
2 | // Add a small form to filter through the output of Nginx FancyIndex page
3 | // © 2017, Lilian Besson (Naereen) and contributors,
4 | // open-sourced under the MIT License, https://lbesson.mit-license.org/
5 | // hosted on GitHub, https://GitHub.com/Naereen/Nginx-Fancyindex-Theme
6 | var form = document.createElement('form');
7 | var input = document.createElement('input');
8 |
9 | input.name = 'filter';
10 | input.id = 'search';
11 | input.placeholder = 'Type to search...';
12 |
13 | form.appendChild(input);
14 |
15 | document.querySelector('h1').after(form);
16 |
17 | var listItems = [].slice.call(document.querySelectorAll('#list tbody tr'));
18 |
19 | input.addEventListener('keyup', function () {
20 | var i,
21 | e = "^(?=.*\\b" + this.value.trim().split(/\s+/).join("\\b)(?=.*\\b") + ").*$",
22 | n = RegExp(e, "i");
23 | listItems.forEach(function(item) {
24 | item.removeAttribute('hidden');
25 | });
26 | listItems.filter(function(item) {
27 | i = item.querySelector('td').textContent.replace(/\s+/g, " ");
28 | return !n.test(i);
29 | }).forEach(function(item) {
30 | item.hidden = true;
31 | });
32 | });
33 |
--------------------------------------------------------------------------------
/light-Theme/addNginxFancyIndexForm.js:
--------------------------------------------------------------------------------
1 | // addNginxFancyIndexForm.js
2 | // Add a small form to filter through the output of Nginx FancyIndex page
3 | // © 2017, Lilian Besson (Naereen) and contributors,
4 | // open-sourced under the MIT License, https://lbesson.mit-license.org/
5 | // hosted on GitHub, https://GitHub.com/Naereen/Nginx-Fancyindex-Theme
6 | var form = document.createElement('form');
7 | var input = document.createElement('input');
8 |
9 | input.name = 'filter';
10 | input.id = 'search';
11 | input.placeholder = 'Type to search...';
12 |
13 | form.appendChild(input);
14 |
15 | document.querySelector('h1').after(form);
16 |
17 | var listItems = [].slice.call(document.querySelectorAll('#list tbody tr'));
18 |
19 | input.addEventListener('keyup', function () {
20 | var i,
21 | e = "^(?=.*\\b" + this.value.trim().split(/\s+/).join("\\b)(?=.*\\b") + ").*$",
22 | n = RegExp(e, "i");
23 | listItems.forEach(function(item) {
24 | item.removeAttribute('hidden');
25 | });
26 | listItems.filter(function(item) {
27 | i = item.querySelector('td').textContent.replace(/\s+/g, " ");
28 | return !n.test(i);
29 | }).forEach(function(item) {
30 | item.hidden = true;
31 | });
32 | });
33 |
--------------------------------------------------------------------------------
/dark-Theme/styles.css:
--------------------------------------------------------------------------------
1 | /* styles.css
2 | * Better styling for of Nginx FancyIndex page
3 | * © 2015-17, Lilian Besson (Naereen) and contributors,
4 | * open-sourced under the MIT License, https://lbesson.mit-license.org/
5 | * hosted on GitHub, https://GitHub.com/Naereen/Nginx-Fancyindex-Theme
6 | */
7 |
8 | * {
9 | font-family: 'Verdana', sans-serif;
10 | margin: 0;
11 | padding: 0;
12 | -webkit-box-sizing: border-box;
13 | -moz-box-sizing: border-box;
14 | box-sizing: border-box;
15 | }
16 |
17 | html {
18 | color: #61666c;
19 | font-weight: 300;
20 | font-size: 1em;
21 | line-height: 2em;
22 | }
23 |
24 | body {
25 | margin: 0 auto;
26 | padding-top: 20px;
27 | max-width: 800px;
28 | background-color: #2f343f;
29 | color: #FFFFFF
30 | }
31 |
32 | thead {
33 | font-weight: 200;
34 | font-size: 1.2em;
35 | }
36 |
37 | h1 {
38 | font-weight: 200;
39 | text-align: center;
40 | font-size: 1.4em;
41 | line-height: 3em;
42 | }
43 |
44 | a {
45 | color: #FFFFFF;
46 | text-decoration: none;
47 | }
48 | a:hover {
49 | text-decoration: underline;
50 | }
51 | a.clear, a.clear:link, a.clear:visited {
52 | color: #666;
53 | padding: 2px 0;
54 | font-weight: 400;
55 | font-size: 14px;
56 | margin: 0 0 0 20px;
57 | line-height: 14px;
58 | display: inline-block;
59 | border-bottom: transparent 1px solid;
60 | vertical-align: -10px;
61 | -webkit-transition: all 300ms ease-in;
62 | -moz-transition: all 300ms ease-in;
63 | -ms-transition: all 300ms ease-in;
64 | -o-transition: all 300ms ease-in;
65 | transition: all 300ms ease-in;
66 | }
67 |
68 | input {
69 | margin: 0 auto;
70 | font-size: 100%;
71 | vertical-align: middle;
72 | *overflow: visible;
73 | line-height: normal;
74 | font-family: 'Open Sans', sans-serif;
75 | font-size: 12px;
76 | font-weight: 300;
77 | line-height: 18px;
78 | color: #555;
79 | display: inline-block;
80 | height: 20px;
81 | padding: 4px 32px 4px 6px;
82 | margin-bottom: 9px;
83 | font-size: 14px;
84 | line-height: 20px;
85 | color: #555;
86 | -webkit-border-radius: 3px;
87 | -moz-border-radius: 3px;
88 | border-radius: 3px;
89 | width: 196px;
90 | background-color: #fff;
91 | border: 1px solid #ccc;
92 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
93 | -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
94 | box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
95 | -webkit-transition: border linear .2s,box-shadow linear .2s;
96 | -moz-transition: border linear .2s,box-shadow linear .2s;
97 | -o-transition: border linear .2s,box-shadow linear .2s;
98 | transition: border linear .2s,box-shadow linear .2s;
99 | }
100 | input:focus {
101 | outline: 0;
102 | border-color: rgba(0,0,0,0.8);
103 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);
104 | -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);
105 | box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);
106 | }
107 | input::-moz-focus-inner {
108 | padding: 0;
109 | border: 0;
110 | }
111 |
112 | #search {
113 | color: #FFFFFF;
114 | background-color: #262A32;
115 | display: block;
116 | margin-left: auto;
117 | margin-right: auto;
118 | width: 250px;
119 | margin-top: 20px;
120 | -webkit-box-sizing: content-box;
121 | -moz-box-sizing: content-box;
122 | box-sizing: content-box;
123 | -webkit-appearance: textfield;
124 | -webkit-transition: all 300ms ease-in;
125 | -moz-transition: all 300ms ease-in;
126 | -ms-transition: all 300ms ease-in;
127 | -o-transition: all 300ms ease-in;
128 | transition: all 300ms ease-in;
129 | }
130 |
131 | table {
132 | border-collapse: collapse;
133 | font-size: 0.9em;
134 | max-width: 100%;
135 | margin: 20px auto 0;
136 | }
137 |
138 | tr {
139 | outline: 0;
140 | border: 0;
141 | }
142 | tr:hover td {
143 | color: #FFFFFF;
144 | background: #3D4351;
145 | }
146 | tr td:first-of-type {
147 | padding-left: 10px;
148 | padding-right: 10px;
149 | }
150 | tr.parent a {
151 | color: #9099A3;
152 | }
153 |
154 | th {
155 |
156 | text-align: left;
157 | font-size: .75em;
158 | padding-right: 20px;
159 | }
160 | th + th {
161 | width: 25%;
162 | }
163 | th + th + th + th {
164 | width: 5%;
165 | }
166 |
167 | td {
168 | padding: 5px 0;
169 | outline: 0;
170 | border: 0;
171 | border-bottom: 1px solid #edf1f5;
172 | vertical-align: middle;
173 | text-align: left;
174 | -webkit-transition: background 300ms ease-in;
175 | -moz-transition: background 300ms ease-in;
176 | -ms-transition: background 300ms ease-in;
177 | -o-transition: background 300ms ease-in;
178 | transition: background 300ms ease-in;
179 | }
180 | td:last-child,th:last-child {
181 | text-align: right;
182 | padding-right: 0;
183 | }
184 | td a {
185 | display: block;
186 | }
187 |
188 | .parent a:hover {
189 | color: #2a2a2a;
190 | }
191 |
192 | footer {
193 | font-size:12px;
194 | text-align:center;
195 | }
196 | footer a {
197 | text-decoration: underline;
198 | color:#FFFFFF;
199 | }
200 |
--------------------------------------------------------------------------------
/light-Theme/styles.css:
--------------------------------------------------------------------------------
1 | /* styles.css
2 | * Better styling for of Nginx FancyIndex page
3 | * © 2015-17, Lilian Besson (Naereen) and contributors,
4 | * open-sourced under the MIT License, https://lbesson.mit-license.org/
5 | * hosted on GitHub, https://GitHub.com/Naereen/Nginx-Fancyindex-Theme
6 | */
7 |
8 | * {
9 | font-family: 'Verdana', sans-serif;
10 | margin: 0;
11 | padding: 0;
12 | -webkit-box-sizing: border-box;
13 | -moz-box-sizing: border-box;
14 | box-sizing: border-box;
15 | }
16 |
17 | html {
18 | color: #61666c;
19 | font-weight: 300;
20 | font-size: 1em;
21 | line-height: 2em;
22 | }
23 |
24 | body {
25 | margin: 0 auto;
26 | padding-top: 20px;
27 | max-width: 800px;
28 | }
29 |
30 | thead {
31 | font-weight: 200;
32 | font-size: 1.2em;
33 | }
34 |
35 | h1 {
36 | font-weight: 200;
37 | text-align: center;
38 | font-size: 1.4em;
39 | line-height: 3em;
40 | }
41 |
42 | a {
43 | color: #5f5f5f;
44 | text-decoration: none;
45 | }
46 | a:hover {
47 | color: #000;
48 | }
49 | a.clear, a.clear:link, a.clear:visited {
50 | color: #666;
51 | padding: 2px 0;
52 | font-weight: 400;
53 | font-size: 14px;
54 | margin: 0 0 0 20px;
55 | line-height: 14px;
56 | display: inline-block;
57 | border-bottom: transparent 1px solid;
58 | vertical-align: -10px;
59 | -webkit-transition: all 300ms ease-in;
60 | -moz-transition: all 300ms ease-in;
61 | -ms-transition: all 300ms ease-in;
62 | -o-transition: all 300ms ease-in;
63 | transition: all 300ms ease-in;
64 | }
65 |
66 | input {
67 | margin: 0 auto;
68 | font-size: 100%;
69 | vertical-align: middle;
70 | *overflow: visible;
71 | line-height: normal;
72 | font-family: 'Open Sans', sans-serif;
73 | font-size: 12px;
74 | font-weight: 300;
75 | line-height: 18px;
76 | color: #555;
77 | display: inline-block;
78 | height: 20px;
79 | padding: 4px 32px 4px 6px;
80 | margin-bottom: 9px;
81 | font-size: 14px;
82 | line-height: 20px;
83 | color: #555;
84 | -webkit-border-radius: 3px;
85 | -moz-border-radius: 3px;
86 | border-radius: 3px;
87 | width: 196px;
88 | background-color: #fff;
89 | border: 1px solid #ccc;
90 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
91 | -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
92 | box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
93 | -webkit-transition: border linear .2s,box-shadow linear .2s;
94 | -moz-transition: border linear .2s,box-shadow linear .2s;
95 | -o-transition: border linear .2s,box-shadow linear .2s;
96 | transition: border linear .2s,box-shadow linear .2s;
97 | }
98 | input:focus {
99 | outline: 0;
100 | border-color: rgba(0,0,0,0.8);
101 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);
102 | -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);
103 | box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);
104 | }
105 | input::-moz-focus-inner {
106 | padding: 0;
107 | border: 0;
108 | }
109 |
110 | #search {
111 | display: block;
112 | margin-left: auto;
113 | margin-right: auto;
114 | width: 250px;
115 | margin-top: 20px;
116 | -webkit-box-sizing: content-box;
117 | -moz-box-sizing: content-box;
118 | box-sizing: content-box;
119 | -webkit-appearance: textfield;
120 | -webkit-transition: all 300ms ease-in;
121 | -moz-transition: all 300ms ease-in;
122 | -ms-transition: all 300ms ease-in;
123 | -o-transition: all 300ms ease-in;
124 | transition: all 300ms ease-in;
125 | }
126 |
127 | table {
128 | border-collapse: collapse;
129 | font-size: 0.9em;
130 | max-width: 100%;
131 | margin: 20px auto 0;
132 | }
133 |
134 | tr {
135 | outline: 0;
136 | border: 0;
137 | }
138 | tr:hover td {
139 | background: #f6f6f6;
140 | }
141 | tr td:first-of-type {
142 | padding-left: 10px;
143 | padding-right: 10px;
144 | }
145 | tr.parent a {
146 | color: #9099A3;
147 | }
148 |
149 | th {
150 |
151 | text-align: left;
152 | font-size: .75em;
153 | padding-right: 20px;
154 | }
155 | th + th {
156 | width: 25%;
157 | }
158 | th + th + th + th {
159 | width: 5%;
160 | }
161 |
162 | td {
163 | padding: 5px 0;
164 | outline: 0;
165 | border: 0;
166 | border-bottom: 1px solid #edf1f5;
167 | vertical-align: middle;
168 | text-align: left;
169 | -webkit-transition: background 300ms ease-in;
170 | -moz-transition: background 300ms ease-in;
171 | -ms-transition: background 300ms ease-in;
172 | -o-transition: background 300ms ease-in;
173 | transition: background 300ms ease-in;
174 | }
175 | td:last-child,th:last-child {
176 | text-align: right;
177 | padding-right: 0;
178 | }
179 | td a {
180 | display: block;
181 | }
182 |
183 | .parent a:hover {
184 | color: #2a2a2a;
185 | }
186 |
187 | footer {
188 | font-size:12px;
189 | text-align:center;
190 | }
191 | footer a {
192 | text-decoration: underline;
193 | color:#990012;
194 | }
195 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Nginx-Fancyindex-Theme
2 | A responsive theme for [Nginx](https://www.nginx.org/) Fancyindex module. Minimal, modern and simple.
3 | Comes with a search form, aims to handle thousands of files without any problems.
4 |
5 | The fancyindex module can be found [here](https://github.com/aperezdc/ngx-fancyindex).
6 |
7 | And Chinese manual(中文使用手册):[Nginx浏览目录配置及美化](https://lanffy.github.io/2017/12/27/Nginx-Browse-Folder-Config)
8 |
9 | [](https://www.nginx.org/)
10 |
11 | ## Install Fancyindex Module
12 |
13 | > Reference: [Nginx-Browse-Folder-Config](http://lanffy.github.io/2017/12/27/Nginx-Browse-Folder-Config)
14 |
15 | ## Usage
16 |
17 | 1. Make sure you have the fancyindex module compiled with nginx, either by compiling it yourself or installing nginx via the full distribution (paquet ``nginx-extras``).
18 | 2. Include the content of [fancyindex.conf](fancyindex.conf) in your location directive (``location / {.....}``) in your nginx config (usually ``nginx.conf``).
19 | 3. Move the ``Nginx-Fancyindex-Theme/`` folder to the root of the site directory.
20 | 4. Restart/reload nginx.
21 | 5. Check that it's working, and enjoy!
22 |
23 | ## Configuration
24 |
25 | A standard config looks something like this (use `-light` for the default light theme, or `-dark` for a dark theme):
26 |
27 | ```bash
28 | fancyindex on;
29 | fancyindex_localtime on;
30 | fancyindex_exact_size off;
31 | # Specify the path to the header.html and foother.html files (server-wise)
32 | fancyindex_header "/Nginx-Fancyindex-Theme-light/header.html";
33 | fancyindex_footer "/Nginx-Fancyindex-Theme-light/footer.html";
34 | # Ignored files will not show up in the directory listing, but will still be public.
35 | fancyindex_ignore "examplefile.html";
36 | # Making sure folder where these files are do not show up in the listing.
37 | fancyindex_ignore "Nginx-Fancyindex-Theme-light";
38 | # Maximum file name length in bytes, change as you like.
39 | fancyindex_name_length 255;
40 | ```
41 |
42 | If you want to conserve a few more bytes in network transmissions enable gzip on the served assets.
43 |
44 | ```bash
45 | # Enable gzip compression.
46 | gzip on;
47 |
48 | # Compression level (1-9).
49 | # 5 is a perfect compromise between size and CPU usage, offering about
50 | # 75% reduction for most ASCII files (almost identical to level 9).
51 | gzip_comp_level 5;
52 |
53 | # Don't compress anything that's already small and unlikely to shrink much
54 | # if at all (the default is 20 bytes, which is bad as that usually leads to
55 | # larger files after gzipping).
56 | gzip_min_length 256;
57 |
58 | # Compress data even for clients that are connecting to us via proxies,
59 | # identified by the "Via" header (required for CloudFront).
60 | gzip_proxied any;
61 |
62 | # Tell proxies to cache both the gzipped and regular version of a resource
63 | # whenever the client's Accept-Encoding capabilities header varies;
64 | # Avoids the issue where a non-gzip capable client (which is extremely rare
65 | # today) would display gibberish if their proxy gave them the gzipped version.
66 | gzip_vary on;
67 |
68 | # Compress all output labeled with one of the following MIME-types.
69 | gzip_types
70 | application/atom+xml
71 | application/javascript
72 | application/json
73 | application/ld+json
74 | application/manifest+json
75 | application/rss+xml
76 | application/vnd.geo+json
77 | application/vnd.ms-fontobject
78 | application/x-font-ttf
79 | application/x-web-app-manifest+json
80 | application/xhtml+xml
81 | application/xml
82 | font/opentype
83 | image/bmp
84 | image/svg+xml
85 | image/x-icon
86 | text/cache-manifest
87 | text/css
88 | text/plain
89 | text/vcard
90 | text/vnd.rim.location.xloc
91 | text/vtt
92 | text/x-component
93 | text/x-cross-domain-policy;
94 | # text/html is always compressed by gzip module
95 |
96 | # This should be turned on if you are going to have pre-compressed copies (.gz) of
97 | # static files available. If not it should be left off as it will cause extra I/O
98 | # for the check. It is best if you enable this in a location{} block for
99 | # a specific directory, or on an individual server{} level.
100 | # gzip_static on;
101 | ```
102 |
103 | > Reference: [H5BP Nginx Server Config](https://github.com/h5bp/server-configs-nginx/blob/master/nginx.conf)
104 |
105 | ## Examples
106 | ### Filter a list of directories (with search):
107 | 
108 |
109 | ---
110 |
111 | ### Dark and Light style for chose:
112 | #### FancyIndex-dark
113 | 
114 | #### FancyIndex-light
115 | 
116 |
117 |
118 | ### :scroll: License ? [](https://github.com/Naereen/Nginx-Fancyindex-Theme/blob/master/LICENSE)
119 | [MIT Licensed](https://lbesson.mit-license.org/) (file [LICENSE](LICENSE)).
120 | © [Lilian Besson](https://GitHub.com/Naereen), 2016.
121 |
122 | [](https://GitHub.com/Naereen/Nginx-Fancyindex-Theme/graphs/commit-activity)
123 | [](https://GitHub.com/Naereen/ama)
124 | [](https://GitHub.com/Naereen/Nginx-Fancyindex-Theme/)
125 |
126 | [](https://GitHub.com/Naereen/)
127 | [](http://ForTheBadge.com)
128 | [](http://ForTheBadge.com)
129 | [](http://ForTheBadge.com)
130 | [](http://ForTheBadge.com)
131 | [](https://GitHub.com/)
132 |
--------------------------------------------------------------------------------