1
0
mirror of https://github.com/lrsjng/h5ai.git synced 2025-08-29 16:50:08 +02:00

Compare commits

...

6 Commits
v0.1 ... v0.2

Author SHA1 Message Date
Lars Jung
1c9cb5def4 Added icon view. 2011-06-15 16:20:13 +02:00
Lars Jung
3576db818b Removed unused files. 2011-06-15 02:29:03 +02:00
Lars Jung
9b3575ee78 Minor changes, mainly refactoring. 2011-06-15 02:26:55 +02:00
Lars Jung
76855274ad Modified README. Added link to sample folder. 2011-06-12 03:08:27 +02:00
Lars Jung
2d9cdac8a4 Fixed image links. 2011-06-11 21:03:49 +02:00
Lars Jung
0eca53c3e5 Fixed image links. 2011-06-11 20:56:20 +02:00
54 changed files with 246 additions and 104 deletions

View File

@@ -4,25 +4,50 @@ h5ai - a beautified Apache index
Screenshot
----------
![screenshot](screen.jpg "screenshot")
<img
width="800"
src="http://repo.larsjung.de/screens/h5ai.png"
alt="screenshot"
title="screenshot"
style="border: 1px solid #ccc"
/>
compare it to the built in index
![original index](org.jpg "original index")
compare it to apache's built in autoindex:
<img
width="800"
src="http://repo.larsjung.de/screens/ai.png"
alt="apache autoindex"
title="apache autoindex"
style="border: 1px solid #ccc"
/>
Live example
------------
For a live experience browse [here](http://repo.larsjung.de/h5ai-sample)
*(the files are all empty to save webspace)*
Install
-------
* copy the `h5ai` folder to the web-root directory of your server
* add the content of file `dot-htaccess` to the `.htaccess` file in the directory
you want to be indexed (you might have to create this file)
* Copy the `h5ai` folder to the web-root directory of your server or alternativly set an alias `/h5ai/` to
this folder.
* Add the content of file `dot.htaccess` to the `.htaccess` file in the directory
you want to be indexed (you might have to create this file). This directory and any subdirectories will be
styled.
License
-------
This project is licensed under the [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/)
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a>
This project is licensed under the [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/).
It is based on the awesome [HTML5 Boilerplate](http://html5boilerplate.com) and the beautiful
[Faenza icon set](http://tiheum.deviantart.com/art/Faenza-Icons-173323228), please respect their rights.

View File

@@ -1,7 +1,37 @@
<IfModule mod_autoindex.c>
Options +Indexes +FollowSymLinks
# Options +Indexes
################################
# uncomment the following line to force directory listing
# even for directories with valid index files
################################
# DirectoryIndex IGNORE-DEFAULT-INDEX-FILES
################################
# h5ai header and footer
################################
HeaderName /h5ai/header.html
ReadmeName /h5ai/footer.html
################################
# hide h5ai folder and config files from index
################################
IndexIgnore h5ai h5ai.*
################################
# table options
################################
IndexOrderDefault Ascending Name
IndexOptions Charset=UTF-8
IndexOptions FancyIndexing
@@ -15,47 +45,21 @@
IndexOptions IconsAreLinks
IndexOptions VersionSort
DirectoryIndex IGNORE-DEFAULT-INDEX-FILES
IndexOrderDefault Ascending Name
IndexIgnore h5ai .??* *~ *# RCS CVS *,v *,t
HeaderName /h5ai/header.html
ReadmeName /h5ai/footer.html
AddIconByType /h5ai/icons/png.png image/png
AddIconByType /h5ai/icons/jpg.png image/jpeg
AddIconByType /h5ai/icons/gif.png image/gif
AddIconByType /h5ai/icons/ico.png image/x-icon
AddIconByType /h5ai/icons/bmp.png image/x-ms-bmp
AddIconByType /h5ai/icons/html.png text/html
AddIconByType /h5ai/icons/css.png text/css
AddIcon /h5ai/icons/css.png .less
AddIconByType /h5ai/icons/xml.png application/xml
AddIconByType /h5ai/icons/js.png application/javascript application/json
AddIconByType /h5ai/icons/php.png application/x-httpd-php
AddIconByType /h5ai/icons/java.png text/x-java
AddIconByType /h5ai/icons/py.png text/x-python
AddIconByType /h5ai/icons/rb.png application/x-ruby
AddIconByType /h5ai/icons/cpp.png text/x-c++src
AddIconByType /h5ai/icons/hpp.png text/x-c++hdr
AddIconByType /h5ai/icons/c.png text/x-csrc
AddIconByType /h5ai/icons/h.png text/x-chdr
AddIconByType /h5ai/icons/tex.png text/x-tex
AddIcon /h5ai/icons/script.png .conf .ini .sh .shar .csh .ksh .tcl
################################
# icon mapping
################################
AddIcon /h5ai/icons/log.png log Log LOG
AddIcon /h5ai/icons/authors.png AUTHORS
AddIcon /h5ai/icons/install.png INSTALL
AddIcon /h5ai/icons/copying.png COPYING LICENSE
AddIcon /h5ai/icons/readme.png README
AddIconByType /h5ai/icons/bin.png application/java-vm
AddIcon /h5ai/icons/css.png .less
AddIcon /h5ai/icons/makefile.png .pom pom.xml build.xml
AddIcon /h5ai/icons/script.png .conf .ini .sh .shar .csh .ksh .tcl
AddIcon /h5ai/icons/bin.png .so .o
AddIconByType /h5ai/icons/exe.png application/x-executable application/x-msdos-program
AddIconByType /h5ai/icons/makefile.png text/x-makefile
AddIcon /h5ai/icons/makefile.png pom.xml .pom build.xml
AddIconByType /h5ai/icons/pdf.png application/pdf
AddIconByType /h5ai/icons/rtf.png text/rtf application/rtf
AddIcon /h5ai/icons/zip.png .zip .Z .z .jar .war
AddIcon /h5ai/icons/tar.png .tar
@@ -65,10 +69,34 @@
AddIcon /h5ai/icons/rpm.png .rpm
AddIcon /h5ai/icons/cd.png .iso .cue
AddIcon /h5ai/icons/authors.png AUTHORS
AddIcon /h5ai/icons/install.png INSTALL
AddIcon /h5ai/icons/copying.png COPYING LICENSE
AddIcon /h5ai/icons/readme.png README
AddIconByType /h5ai/icons/png.png image/png
AddIconByType /h5ai/icons/jpg.png image/jpeg
AddIconByType /h5ai/icons/gif.png image/gif
AddIconByType /h5ai/icons/ico.png image/x-icon
AddIconByType /h5ai/icons/bmp.png image/x-ms-bmp
AddIconByType /h5ai/icons/html.png text/html
AddIconByType /h5ai/icons/css.png text/css
AddIconByType /h5ai/icons/xml.png application/xml
AddIconByType /h5ai/icons/js.png application/javascript application/json
AddIconByType /h5ai/icons/php.png application/x-httpd-php
AddIconByType /h5ai/icons/py.png text/x-python
AddIconByType /h5ai/icons/rb.png application/x-ruby
AddIconByType /h5ai/icons/java.png text/x-java
AddIconByType /h5ai/icons/cpp.png text/x-c++src
AddIconByType /h5ai/icons/hpp.png text/x-c++hdr
AddIconByType /h5ai/icons/c.png text/x-csrc
AddIconByType /h5ai/icons/h.png text/x-chdr
AddIconByType /h5ai/icons/pdf.png application/pdf
AddIconByType /h5ai/icons/rtf.png text/rtf application/rtf
AddIconByType /h5ai/icons/tex.png text/x-tex
AddIconByType /h5ai/icons/makefile.png text/x-makefile
AddIconByType /h5ai/icons/bin.png application/java-vm
AddIconByType /h5ai/icons/exe.png application/x-executable application/x-msdos-program
AddIconByType /h5ai/icons/text.png text/*
AddIconByType /h5ai/icons/image.png image/*

View File

@@ -1,14 +1,15 @@
<!-- generated code ends here -->
<div id="empty">empty</div>
<div id="special"></div>
<section id="h5ai-bottom"></section>
</section>
<footer>
<a id="html5" href="http://www.w3.org/html/logo/" target="_blank" title="HTML5 semantics & CSS3">
<a id="html5" href="http://www.w3.org/html/logo/" target="_blank" title="HTML5 semantics, storage & CSS3">
<img class="logo" src="/h5ai/images/html5.png" alt="html5" />
<img class="techclass" src="/h5ai/images/html5-semantics.png" alt="html5-semantics" />
<img class="techclass" src="/h5ai/images/html5-storage.png" alt="html5-storage" />
<img class="techclass" src="/h5ai/images/html5-css3.png" alt="html5-css3" />
</a>
<a href="http://github.com/larrrs/h5ai" target="_blank" title="html5autoindex v0.1">h5ai</a>
<a href="http://github.com/larrrs/h5ai" target="_blank" title="h5ai v0.2">h5ai</a>
using
<a href="http://html5boilerplate.com" target="_blank" title="a rock-solid default for HTML5 awesome">HTML5 Boilerplate</a>
and

View File

@@ -11,11 +11,14 @@
<body>
<nav>
<ul>
<li id="domain"><a href="/"><img src="/h5ai/icons/home.png" alt="domain" /><span>domain</span></a></li>
<li id="domain" class="crumb"><a href="/"><img src="/h5ai/icons/home.png" alt="domain" /><span>domain</span></a></li>
<li id="icons" class="view"><a href="#"><img src="/h5ai/icons/view-icons" alt="view-icons" />icons</a></li>
<li id="details" class="view" ><a href="#"><img src="/h5ai/icons/view-details.png" alt="view-details" />details</a></li>
</ul>
<div class="clearfix"></div>
</nav>
<section id="content">
<section id="h5ai-top"></section>
<!--
The following code was generated by apache's autoindex module. It is not valid HTML 5 for the
reason, that 'align' and 'valign' attributes on the td element are obsolete. Both of them are

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 B

BIN
h5ai/icons/view-details.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

BIN
h5ai/icons/view-icons.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

BIN
h5ai/images/archive.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
h5ai/images/audio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
h5ai/images/bin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
h5ai/images/blank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

BIN
h5ai/images/bmp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
h5ai/images/c.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/cd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
h5ai/images/cpp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/css.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
h5ai/images/deb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
h5ai/images/default.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

BIN
h5ai/images/exe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/gif.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/gzip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
h5ai/images/h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
h5ai/images/hpp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/html.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
h5ai/images/html5-storage.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

BIN
h5ai/images/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
h5ai/images/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
h5ai/images/java.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/jpg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
h5ai/images/js.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
h5ai/images/makefile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
h5ai/images/package.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/parent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
h5ai/images/pdf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/php.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
h5ai/images/png.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
h5ai/images/py.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
h5ai/images/rar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
h5ai/images/rb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
h5ai/images/rpm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
h5ai/images/rtf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/script.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
h5ai/images/tar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 B

BIN
h5ai/images/tex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
h5ai/images/text.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
h5ai/images/tiff.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
h5ai/images/unknown.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
h5ai/images/xml.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
h5ai/images/zip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -32,12 +32,10 @@ nav {
box-shadow: 0px 0px 30px #555;
}
nav li {
float: left;
border-right: 1px dotted rgb(225,225,225);
cursor: pointer;
opacity: 0.7;
}
nav li.hover, nav li.hover a {
nav li:hover, nav li:hover a {
background-color: rgba(255,255,255,0.5);
opacity: 1.0;
}
@@ -52,6 +50,30 @@ nav img {
padding-right: 6px;
padding-bottom: 6px;
}
nav li.crumb {
float: left;
border-right: 1px dotted rgb(225,225,225);
}
nav li.view {
float: right;
border-left: 1px dotted rgb(225,225,225);
}
section#h5ai-top {
display: none;
padding: 0px 0px 10px 0px;
margin: 0px 0px 80px 0px;
border-bottom: 1px solid #999;
}
section#h5ai-bottom {
display: none;
padding: 10px 0px 0px 0px;
margin: 80px 0px 0px 0px;
border-top: 1px solid #999;
}
section#content {
@@ -67,22 +89,22 @@ table {
table {
display: block;
}
table tr.hover, table tr.hover a {
table tr.entry:hover, table tr.entry:hover a {
background-color: rgb(235,245,250);
background-color: #eeeeee;
color: #333;
cursor: pointer;
}
table th, table td {
padding: 3px 6px;
text-align: left;
padding: 3px 6px;
text-align: left;
border: none;
}
table th {
padding-bottom: 18px;
opacity: 0.4;
}
table th.hover {
table th.header:hover {
cursor: pointer;
opacity: 0.9;
}
@@ -93,12 +115,12 @@ table th a, table th a:visited {
table th a img {
width: 12px;
height: 12px;
padding: 0px 8px;
padding: 0px 8px;
}
table td {
border: 1px solid #ddd;
border-left: 0px;
border-right: 0px;
border: 1px solid #ddd;
border-left: 0px;
border-right: 0px;
}
table .icon {
text-align: center;
@@ -139,7 +161,35 @@ div#empty {
}
div#special {
#box {
padding: 10px;
border: 1px solid #eee;
border-radius: 15px;
}
#box .entry {
margin: 10px;
padding: 8px;
width: 100px;
height: 120px;
float: left;
text-align: center;
overflow: hidden;
border-radius: 5px;
cursor: pointer;
}
#box .entry:hover {
-webkit-box-shadow: 0px 0px 20px #555;
-moz-box-shadow: 0px 0px 20px #555;
box-shadow: 0px 0px 20px #999;
}
#box .entry img {
width: 48px;
height: 48px;
margin: 0px 0px 8px 0px;
}
section#special {
display: none;
text-align: center;
margin: 50px 0px;

View File

@@ -3,6 +3,7 @@
var columnClasses = [ "icon", "name", "date", "size" ];
var defaultSortOrder = "C=N;O=A"
var h5aiPath = "/h5ai"
var views = [ "details", "icons" ];
$( function() {
@@ -18,10 +19,12 @@
addColumnClasses();
initTableRows();
addSortOrderIcons();
//specialFiles();
addTopAndBottom();
initViews();
checkView();
};
function convertToHtml5() {
$( "td" ).removeAttr( "align" ).removeAttr( "valign" );
@@ -39,19 +42,11 @@
var part = parts[idx];
if ( part !== "" ) {
path += part + "/";
$ul.append( $( "<li class='crumb'><a href='" + path + "'><img src='" + h5aiPath + "/icons/crumb.png' alt='>' />" + part + "</a></li>" ) );
$ul.append( $( "<li class=\"crumb\"><a href='" + path + "'><img src='" + h5aiPath + "/icons/crumb.png' alt='>' />" + part + "</a></li>" ) );
}
}
$( "nav li a" ).closest( "li" )
.hover(
function () {
$( this ).addClass( "hover" );
},
function () {
$( this ).removeClass( "hover" );
}
)
.click( function () {
document.location.href = $( this ).find( "a" ).attr( "href" );
} );
@@ -84,26 +79,12 @@
function initTableRows() {
$( "th a" ).closest( "th" )
.hover(
function () {
$( this ).addClass( "hover" );
},
function () {
$( this ).removeClass( "hover" );
}
)
.addClass( "header" )
.click( function () {
document.location.href = $( this ).find( "a" ).attr( "href" );
} );
$( "td.name a" ).closest( "tr" )
.hover(
function () {
$( this ).addClass( "hover" );
},
function () {
$( this ).removeClass( "hover" );
}
)
.addClass( "entry" )
.click( function () {
document.location.href = $( this ).find( "td.name a" ).attr( "href" );
} );
@@ -136,24 +117,78 @@
};
function specialFiles() {
function addTopAndBottom() {
specialFile( "README", "readme.png" );
specialFile( "ChangeLog", "changelog.png" );
specialFile( "INSTALL", "install.png" );
specialFile( "COPYING", "copying.png" );
specialFile( "LICENSE", "copying.png" );
specialFile( "AUTHORS", "authors.png" );
$( "#h5ai-top" ).load( "h5ai.top.html", function( response, status, xhr ) {
if (status != "error") {
$( "#h5ai-top" ).show();
}
} );
$( "#h5ai-bottom" ).load( "h5ai.bottom.html", function( response, status, xhr ) {
if (status != "error") {
$( "#h5ai-bottom" ).show();
}
} );
};
function specialFile( name, img ) {
if ( $( "td.name a:contains(" + name + ")" ).size() > 0 ) {
$( "#special" )
.append( $( "<img src='" + h5aiPath + "/images/" + img + "' alt='readme' />" ) )
.show();
function checkView() {
if ( getView() === "icons" ) {
$( "#content table" ).hide();
$( "#content #empty" ).hide();
$( "#content #box" ).show();
} else {
$( "#content table" ).show();
$( "#content #box" ).hide();
}
};
function getView() {
var view = localStorage.getItem( "h5ai.view" );
if ( $.inArray( view, views ) ) {
return view;
};
return views[0];
};
function setView( view ) {
localStorage.setItem( "h5ai.view", view );
checkView();
};
function initViews() {
var $box = $( "<div id=\"box\"></div>" );
$( "td.name a" ).closest( "tr" ).each( function () {
var $tr = $( this );
var icon = $tr.find( "td.icon img" ).attr( "src" ).replace( "icon", "image" );
var name = $tr.find( "td.name a" ).text();
$( "<div class=\"entry\"></div>" )
.append( $( "<img src=\"" + icon + "\" />" ) )
.append( $( "<div class=\"label\">" + name + "</div>" ) )
.click( function () {
document.location.href = $tr.find( "td.name a" ).attr( "href" );
} ).
appendTo( $box );
} );
$box.append( $( "<div class=\"clearfix\"></div>" ) );
$( "#content table" ).after( $box );
$( "#details" ).closest( "li" )
.click( function () {
setView( "details" );
} );
$( "#icons" ).closest( "li" )
.click( function () {
setView( "icons" );
} );
};
} )( jQuery );

BIN
org.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB