| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset='utf-8'> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> |
| <title>listing directory {directory}</title> |
| <style>{style}</style> |
| <script> |
| function $(id){ |
| var el = 'string' == typeof id |
| ? document.getElementById(id) |
| : id; |
| |
| el.on = function(event, fn){ |
| if ('content loaded' == event) { |
| event = window.attachEvent ? "load" : "DOMContentLoaded"; |
| } |
| el.addEventListener |
| ? el.addEventListener(event, fn, false) |
| : el.attachEvent("on" + event, fn); |
| }; |
| |
| el.all = function(selector){ |
| return $(el.querySelectorAll(selector)); |
| }; |
| |
| el.each = function(fn){ |
| for (var i = 0, len = el.length; i < len; ++i) { |
| fn($(el[i]), i); |
| } |
| }; |
| |
| el.getClasses = function(){ |
| return this.getAttribute('class').split(/\s+/); |
| }; |
| |
| el.addClass = function(name){ |
| var classes = this.getAttribute('class'); |
| el.setAttribute('class', classes |
| ? classes + ' ' + name |
| : name); |
| }; |
| |
| el.removeClass = function(name){ |
| var classes = this.getClasses().filter(function(curr){ |
| return curr != name; |
| }); |
| this.setAttribute('class', classes.join(' ')); |
| }; |
| |
| return el; |
| } |
| |
| function search() { |
| var str = $('search').value.toLowerCase(); |
| var links = $('files').all('a'); |
| |
| links.each(function(link){ |
| var text = link.textContent.toLowerCase(); |
| |
| if ('..' == text) return; |
| if (str.length && ~text.indexOf(str)) { |
| link.addClass('highlight'); |
| } else { |
| link.removeClass('highlight'); |
| } |
| }); |
| } |
| |
| $(window).on('content loaded', function(){ |
| $('search').on('keyup', search); |
| }); |
| </script> |
| </head> |
| <body class="directory"> |
| <input id="search" type="text" placeholder="Search" autocomplete="off" /> |
| <div id="wrapper"> |
| <h1><a href="/">~</a>{linked-path}</h1> |
| {files} |
| </div> |
| </body> |
| </html> |