Merge branch 'develop'

This commit is contained in:
Lars Jung
2012-10-14 18:35:58 +02:00
370 changed files with 19520 additions and 5517 deletions

View File

@@ -1,19 +1,47 @@
# h5ai
**a modern HTTP web server index for Apache httpd, lighttpd, nginx and Cherokee**
Please don't use files from the `src` folder for installation.
They need to be preprocessed to work correctly. You'll find a preprocessed
package on the [project page](http://larsjung.de/h5ai/).
The preferred way to report a bug or make a feature request is to
create [a new issue](http://github.com/lrsjng/h5ai/issues/new) on GitHub!
* to report a bug or make a feature request please create [a new issue](http://github.com/lrsjng/h5ai/issues/new) on GitHub
* website with download, docs and demo: <http://larsjung.de/h5ai>
* sources: <http://github.com/lrsjng/h5ai>
h5ai is provided under the terms of the [MIT License](http://github.com/lrsjng/h5ai/blob/master/LICENSE.txt).
## Install
(**note:** please don't use files from the `src` folder for installation,
they need to be preprocessed to work correctly)
You'll find a preprocessed package, as well as detailed installation
instructions on the [project page](http://larsjung.de/h5ai/).
## Build
(there are repositories of the latest [releases](http://release.larsjung.de/h5ai/) and [dev builds](http://release.larsjung.de/h5ai/dev/))
If you want to build **h5ai** yourself you need to install the build tool [fQuery](http://larsjung.de/fquery/) first:
> npm install -g fquery
This will install fQuery and its command line tool `makejs`. Run `makejs --help` to see if everything
worked fine.
To clone and build the project run the following commands.
You'll find a new directory `build` including a fresh zipball.
> git clone git://github.com/lrsjng/h5ai.git
> cd h5ai
> makejs release
## License
**h5ai** is provided under the terms of the [MIT License](http://github.com/lrsjng/h5ai/blob/develop/LICENSE.md).
It profits from these great projects:
[AmplifyJS](http://amplifyjs.com)&nbsp;(MIT/GPL),
[Faenza icon set](http://tiheum.deviantart.com/art/Faenza-Icons-173323228)&nbsp;(GPL),
[HTML5 ★ Boilerplate](http://html5boilerplate.com),
[jQuery](http://jquery.com)&nbsp;(MIT/GPL),
[HTML5 ★ Boilerplate](http://html5boilerplate.com)&nbsp;(MIT),
[jQuery](http://jquery.com)&nbsp;(MIT),
[jQuery.filedrop](http://www.github.com/weixiyen/jquery-filedrop)&nbsp;(MIT),
[jQuery.fracs](http://larsjung.de/fracs/)&nbsp;(MIT),
[jQuery.mousewheel](http://github.com/brandonaaron/jquery-mousewheel)&nbsp;(MIT),
[jQuery.qrcode](http://larsjung.de/qrcode/)&nbsp;(MIT),
@@ -22,26 +50,41 @@ It profits from these great projects:
[Modernizr](http://www.modernizr.com)&nbsp;(MIT/BSD),
[modulejs](http://larsjung.de/modulejs/)&nbsp;(MIT),
[Moment.js](http://momentjs.com)&nbsp;(MIT),
[spin.js](http://fgnass.github.com/spin.js/)&nbsp;(MIT),
[SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/)&nbsp;(MIT/GPL),
[Underscore.js](http://underscorejs.org)&nbsp;(MIT)
## Build
A prebuilt package can be found on the [project page](http://larsjung.de/h5ai/). If you want to build
h5ai yourself you need to install [fQuery](http://larsjung.de/fquery/) first:
> npm install -g fquery
To build the project run the following command inside the project's root directory
> makejs
Run `makejs -t` to list all possible targets.
## Changelog
(**h5ai** uses [semantic versioning](http://semver.org/))
### v0.22 - *2012-??-??*
* general changes h5ai directory layout and configuration
* splits configuration file (`config.json`) into files `options.json`, `types.json` and `langs.json`
* localization now in separate files
* adds auto-refresh
* adds drag'n'drop upload (PHP, experimental)
* adds file deletion (PHP, experimental)
* cleans and improves PHP code
* PHP no longer respects htaccess restrictions (so be careful)
* PHP ignore patterns might include paths now
* improves separation between aai and php mode
* improves performance in aai mode
* adds optional binary prefixes for file sizes
* improves filter: autofocus on keypress, clear on `ESC`
* download packages now packaged relative to current folder
* download package name changable
* splits type `js` into `js` and `json`
* prevents some errors with files > 2GB on 32bit OS
* adds max subfolder size in tree view
* adds ctrl-click file selection
* adds Piwik analytics extension
* temp download packages are now stored in the `cache`-folder and deleted as soon as possible
* updates translations
* adds `he` translation by [Tomer Cohen](https://github.com/tomer)
* updates 3rd party libs
### v0.21 - *2012-08-06*

View File

@@ -3,10 +3,8 @@
var path = require('path'),
child_process = require('child_process');
var version = '0.21',
pkg = require('./package.json'),
root = path.resolve(__dirname),
src = path.join(root, 'src'),
@@ -34,14 +32,18 @@ var version = '0.21',
]
},
mapper = function (blob) {
return blob.source.replace(src, build).replace(/\.less$/, '.css');
handlebarsEnv = {
pkg: pkg
},
mapperRoot = function (blob) {
mapSrc = function (blob) {
return blob.source.replace(root, build + '/_h5ai');
return blob.source.replace(src, build).replace(/\.less$/, '.css').replace(/\.jade$/, '');
},
mapRoot = function (blob) {
return blob.source.replace(root, path.join(build, '_h5ai'));
};
@@ -49,137 +51,119 @@ module.exports = function (make) {
var Event = make.Event,
$ = make.fQuery,
moment = make.moment,
stamp, replacements;
moment = make.moment;
make.version('>=0.8.1');
make.defaults('build');
make.before(function () {
stamp = moment();
replacements = {
version: version,
stamp: stamp.format('YYYY-MM-DD HH:mm:ss')
};
Event.info({ method: 'before', message: version + ' ' + replacements.stamp });
handlebarsEnv.stamp = moment().format('YYYY-MM-DD HH:mm:ss');
});
make.target('inc', [], 'increase build number, if any')
.sync(function () {
make.target('check-version', [], 'add git info to dev builds').async(function (done, fail) {
var re = /-(\d+)$/;
var match = version.match(re);
if (!/-dev$/.test(pkg.version)) {
done();
return;
}
if (match) {
var number = parseInt(match[1], 10) + 1;
var newVersion = version.replace(re, '-' + number);
$.git(root, function (err, result) {
$('makefile.js').replace([[version, newVersion]]).write($.OVERWRITE, 'makefile.js');
version = newVersion;
replacements.version = version;
Event.ok({ method: 'inc', message: 'version is now ' + version });
}
});
make.target('clean', [], 'delete build folder')
.sync(function () {
$.rmfr($.I_AM_SURE, build);
});
make.target('lint', [], 'lint all JavaScript files with JSHint')
.sync(function () {
$(src + '/_h5ai/js: **/*.js, ! *.min.js, ! inc/lib/**')
.jshint(jshint);
});
make.target('build', [], 'build all updated files')
.sync(function () {
$(src + ': _h5ai/js/*.js')
.modified(mapper, $(src + ': _h5ai/js/**'))
.includify()
.uglifyjs()
.write($.OVERWRITE, mapper);
$(src + ': _h5ai/css/*.less')
.modified(mapper, $(src + ': _h5ai/css/**'))
.less()
.cssmin()
.write($.OVERWRITE, mapper);
$(src + ': **, ! _h5ai/js/**, ! _h5ai/css/**')
.modified(mapper)
.mustache(replacements)
.write($.OVERWRITE, mapper);
$(root + ': README*, LICENSE*')
.modified(mapperRoot)
.write($.OVERWRITE, mapperRoot);
});
make.target('build-uncompressed', [], 'build all updated files without compression')
.sync(function () {
$(src + ': _h5ai/js/*.js')
.modified(mapper, $(src + ': _h5ai/js/**'))
.includify()
// .uglifyjs()
.write($.OVERWRITE, mapper);
$(src + ': _h5ai/css/*.less')
.modified(mapper, $(src + ': _h5ai/css/**'))
.less()
// .cssmin()
.write($.OVERWRITE, mapper);
$(src + ': **, ! _h5ai/js/**, ! _h5ai/css/**')
.modified(mapper)
.mustache(replacements)
.write($.OVERWRITE, mapper);
$(root + ': README*, LICENSE*')
.modified(mapperRoot)
.write($.OVERWRITE, mapperRoot);
});
make.target('release', ['inc', 'clean', 'build'], 'create a zipball')
.async(function (done, fail) {
var target = path.join(build, 'h5ai-' + version + '.zip'),
cmd = 'zip',
args = ['-ro', target, '_h5ai'],
options = { cwd: build },
proc = child_process.spawn(cmd, args, options);
Event.info({ method: 'exec', message: cmd + ' ' + args.join(' ') });
// proc.stdout.on('data', function (data) {
// process.stdout.write(data);
// });
proc.stderr.on('data', function (data) {
process.stderr.write(data);
});
proc.on('exit', function (code) {
if (code) {
Event.error({ method: 'exec', message: cmd + ' exit code ' + code });
fail();
} else {
Event.ok({ method: 'exec', message: 'created zipball ' + target });
done();
}
pkg.version += '-' + result.revListOriginMasterHead.length + '-' + result.revParseHead.slice(0, 7);
Event.info({
method: 'check-version',
message: 'version set to ' + pkg.version
});
done();
});
});
make.target('clean', [], 'delete build folder').sync(function () {
$.rmfr($.I_AM_SURE, build);
});
make.target('lint', [], 'lint all JavaScript files with JSHint').sync(function () {
$(src + '/_h5ai/client/js: **/*.js, ! lib/**')
.jshint(jshint);
});
make.target('build', ['check-version'], 'build all updated files').sync(function () {
$(src + ': _h5ai/client/js/*.js')
.modified(mapSrc, $(src + ': _h5ai/client/js/**'))
.includify()
.uglifyjs()
.write($.OVERWRITE, mapSrc);
$(src + ': _h5ai/client/css/*.less')
.modified(mapSrc, $(src + ': _h5ai/client/css/**'))
.less()
.cssmin()
.write($.OVERWRITE, mapSrc);
$(src + ': **/*.jade')
.modified(mapSrc)
.handlebars(handlebarsEnv)
.jade()
.write($.OVERWRITE, mapSrc);
$(src + ': **, ! _h5ai/client/js/**, ! _h5ai/client/css/**, ! **/*.jade')
.modified(mapSrc)
.handlebars(handlebarsEnv)
.write($.OVERWRITE, mapSrc);
$(root + ': README*, LICENSE*')
.modified(mapRoot)
.write($.OVERWRITE, mapRoot);
});
make.target('build-uncompressed', ['check-version'], 'build all updated files without compression').sync(function () {
$(src + ': _h5ai/client/js/*.js')
.modified(mapSrc, $(src + ': _h5ai/client/js/**'))
.includify()
// .uglifyjs()
.write($.OVERWRITE, mapSrc);
$(src + ': _h5ai/client/css/*.less')
.modified(mapSrc, $(src + ': _h5ai/client/css/**'))
.less()
// .cssmin()
.write($.OVERWRITE, mapSrc);
$(src + ': **/*.jade')
.modified(mapSrc)
.handlebars(handlebarsEnv)
.jade()
.write($.OVERWRITE, mapSrc);
$(src + ': **, ! _h5ai/client/js/**, ! _h5ai/client/css/**, ! **/*.jade')
.modified(mapSrc)
.handlebars(handlebarsEnv)
.write($.OVERWRITE, mapSrc);
$(root + ': README*, LICENSE*')
.modified(mapRoot)
.write($.OVERWRITE, mapRoot);
});
make.target('release', ['clean', 'build'], 'create a zipball').async(function (done, fail) {
$(build + ': **').shzip({
target: path.join(build, pkg.name + '-' + pkg.version + '.zip'),
dir: build,
callback: done
});
});
};

12
package.json Normal file
View File

@@ -0,0 +1,12 @@
{
"name": "h5ai",
"version": "0.22-dev",
"description": "a modern HTTP web server index",
"url": "http://larsjung.de/h5ai/",
"author": "Lars Jung",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/lrsjng/h5ai.git"
}
}

View File

@@ -1,6 +1,8 @@
Options -Indexes
DirectoryIndex index.html
<IfModule mod_expires.c>
Header set Cache-Control "public"
ExpiresActive on

View File

@@ -1,6 +0,0 @@
<!-- generated code ends here -->
</div>
<script src="/_h5ai/config.js"></script>
<script src="/_h5ai/js/scripts.js"></script>
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Directory index · styled with h5ai</title>
<meta name="description" content="Directory index styled with h5ai (http://larsjung.de/h5ai)">
<meta name="viewport" content="width=device-width">
<link rel="shortcut icon" type="image/png" href="/_h5ai/images/h5ai-16x16.png">
<link rel="apple-touch-icon" type="image/png" href="/_h5ai/images/h5ai-48x48.png">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic,700italic|Ubuntu:400,700,400italic,700italic">
<link rel="stylesheet" href="/_h5ai/css/styles.css">
<script src="/_h5ai/js/modernizr.js"></script>
</head>
<body id="h5ai-main">
<div id="topbar" class="clearfix">
<ul id="navbar"></ul>
</div>
<div id="content">
<div id="extended" class="clearfix"></div>
</div>
<div id="bottombar" class="clearfix">
<span class="left">
<a id="h5ai-reference" href="http://larsjung.de/h5ai" title="h5ai project page">h5ai {{version}}</a>
<span class="hideOnJs noJsMsg"> ⚡ JavaScript is disabled! ⚡ </span>
<span class="oldBrowser"> ⚡ Some features disabled! Works best in <a href="http://browsehappy.com">modern browsers</a>. ⚡ </span>
</span>
<span class="right"></span>
<span class="center"></span>
</div>
<div id="data-apache-autoindex" class="hideOnJs">
<!--
The following code was generated by Apache's autoindex module. It is not valid HTML5, but gets
removed from the DOM tree as soon as possible. The actual page should render as valid HTML5.
-->

View File

@@ -3,6 +3,7 @@
position: fixed;
z-index: 5;
width: 100%;
height: 18px;
left: 0;
bottom: 0;
padding: 6px 0 8px 0;
@@ -24,18 +25,19 @@
}
}
.left {
position: absolute;
left: 0;
display: block;
padding: 0 8px;
float: left
}
.center {
display: block;
margin: 0 100px;
}
.right {
position: absolute;
right: 0;
display: block;
padding: 0 8px;
float: right
}
.noJsMsg {
color: #c33;
@@ -57,6 +59,10 @@
.sep {
display: inline-block;
padding: 0 6px;
&:before {
content: '·'
}
}
&.default {
}

View File

@@ -5,8 +5,8 @@
font-size: 16px;
}
#content-header, #content-footer {
color: #333;
a, a:active, a:visited {
color: #2080FF;
@@ -14,12 +14,11 @@
cursor: pointer;
&:hover {
color: #68A9FF;
color: #555;
}
}
}
#content-header {
padding-bottom: 12px;
margin-bottom: 32px;

View File

@@ -0,0 +1,32 @@
#extended .context-menu {
display: block;
position: absolute;
right: 0;
top: 0;
background-color: rgb(241,241,241);
border: 1px solid rgb(210,210,210);
color: #999;
z-index: 10;
font-size: 0.9em;
ul {
margin: 0;
padding: 0;
list-style: none;
text-align: left;
li {
padding: 8px 12px 10px 12px;
white-space: nowrap;
border-top: 1px solid rgb(231,231,231);
.transition(all 0.2s ease-in-out);
&:hover {
color: #e80;
background-color: rgba(255,255,255,0.8);
}
}
}
}

View File

@@ -0,0 +1,30 @@
#delete {
display: none;
.topbar-right;
.transition(all 0.2s ease-in-out);
&.failed {
background-color: rgba(255,0,0,0.5);
}
}
#delete-auth {
display: none;
position: fixed;
z-index: 5;
left: 0;
top: 0;
.vert-gradient(rgb(241,241,241), rgb(228,228,228));
border: 1px solid rgb(210,210,210);
input {
display: block;
margin: 4px 6px;
border: 1px solid rgb(210,210,210);
font-family: Ubuntu, sans-serif;
color: #555;
background-color: rgba(255,255,255,1);
width: 100px;
}
}

View File

@@ -0,0 +1,89 @@
#content {
border: 1px dashed #fff;
.border-radius(8px);
.transition(border-color 0.2s ease-in-out);
&.hint {
border-color: #ddd;
}
&.match {
border-color: #999;
}
}
#uploads {
width: 450px;
margin: 12px auto;
padding: 0;
list-style: none;
.upload {
color: #555;
font-size: 0.9em;
.name {
display: inline-block;
white-space: nowrap;
overflow: hidden;
&:before {
display: inline-block;
content: '•';
color: #55c;
width: 1em;
text-align: center;
padding-right: 1em;
}
}
.size {
display: none;
float: right;
white-space: nowrap;
&:after {
content: ' bytes'
}
}
.error {
float: right;
white-space: nowrap;
color: #c55;
}
.finished {
float: right;
white-space: nowrap;
color: #008200;
}
.progress {
display: inline-block;
margin: 4px 8px;
width: 84px;
height: 8px;
background-color: #ddd;
overflow: hidden;
float: right;
.bar {
width: 0%;
height: 100%;
background-color: #999;
}
}
&.finished .name:before {
content: '✔';
color: #008200;
}
&.error .name:before {
content: '✖';
color: #c55;
}
}
}

View File

@@ -0,0 +1,46 @@
#extended.view-details {
li {
&.header {
display: list-item;
}
&.entry {
a, a:active, a:visited {
border-bottom: 1px solid #e8e8e8;
}
// needs to be here, to not conflict with header fields
.icon, .label, .date, .size {
padding: 6px;
}
}
.icon.small {
display: inline-block;
position: absolute;
left: 0;
top: -2px;
width: 16px;
}
.label {
margin: 0 270px 0 24px;
}
.date {
position: absolute;
right: 100px;
top: 0;
}
.size {
position: absolute;
right: 0;
top: 0;
}
}
}

View File

@@ -0,0 +1,42 @@
#extended.view-grid {
li {
&.entry {
float: left;
a, a:active, a:visited {
float: left;
margin: 2px;
padding: 8px;
width: 164px;
height: 24px;
border: 2px solid rgba(0,0,0,0);
.border-radius(5px);
&:hover, &.hover {
border-color: #e8e8e8;
}
}
}
.icon.small {
display: inline-block;
position: relative;
left: 0;
top: -2px;
width: 16px;
}
.label {
display: inline-block;
padding-left: 6px;
max-width: 140px;
}
.date, .size {
display: none;
}
}
}

View File

@@ -0,0 +1,47 @@
#extended.view-icons {
li {
text-align: center;
&.entry {
float: left;
a, a:active, a:visited {
float: left;
margin: 8px;
padding: 8px;
width: 100px;
height: 120px;
border: 2px solid rgba(0,0,0,0);
.border-radius(5px);
&:hover, &.hover {
border-color: #e8e8e8;
}
}
}
.icon.big {
display: block;
height: 48px;
margin-bottom: 6px;
}
.label {
text-align: center;
word-wrap: break-word;
white-space: normal;
}
.date, .size {
display: none;
}
}
.empty, .no-match {
margin: 0 120px;
padding: 16px;
height: 120px;
}
}

View File

@@ -0,0 +1,39 @@
#extended.view-list {
li {
&.entry {
a, a:active, a:visited {
height: 56px;
border-bottom: 1px solid #e8e8e8;
}
}
.icon, .label, .date, .size {
padding: 6px;
}
.icon.big {
display: inline-block;
position: absolute;
left: 0;
top: -2px;
width: 100px;
}
.label {
margin: 0 270px 0 106px;
}
.date {
margin: 0 0 0 106px;
}
.date, .size {
position: relative;
top: -6px;
}
}
}

View File

@@ -0,0 +1,168 @@
#selection-rect {
display: none;
position: absolute;
left: 0;
top: 0;
z-index: 2;
border: 1px dashed rgba(240,100,0,0.5);
background-color: rgba(240,100,0,0.2);
}
#extended {
display: none;
a, a:active, a:visited {
color: #333;
cursor: pointer;
text-decoration: none;
}
ul {
margin: 0;
padding: 0;
list-style: none;
}
li {
position: relative;
white-space: nowrap;
&.header {
display: none;
font-size: 13px;
a, a:active, a:visited {
padding: 6px 6px 18px 6px;
opacity: 0.4;
.transition(all 0.2s ease-in-out);
img {
display: none;
position: relative;
top: -2px;
width: 12px;
height: 12px;
padding: 0 8px;
}
&:hover {
color: #555;
opacity: 0.9;
}
&.ascending img.ascending {
display: inline;
}
&.descending img.descending {
display: inline;
}
}
}
&.entry {
a, a:active, a:visited {
display: block;
overflow: hidden;
&:hover, &.hover {
color: #e80;
background-color: #f6f6f6;
border-color: #e8e8e8;
}
}
&.selected:not(.selecting), &.selecting:not(.selected) {
a, a:active, a:visited {
border-color: rgba(240,100,0,0.2);
background-color: rgba(240,100,0,0.2);
&:hover, &.hover {
border-color: rgba(240,100,0,0.2);
background-color: rgba(240,100,0,0.2);
}
}
}
}
&.error {
a, a:active, a:visited {
color: #aaa;
&:hover, &.hover {
color: #e80;
}
}
.label .hint {
padding: 0 6px;
font-size: 0.9em;
color: #c55;
}
}
&.folder-parent {
.date, .size {
display: none;
}
}
.icon {
display: none;
text-align: center;
img {
&.thumb {
.box-shadow(0 0 0 1px #ddd);
}
}
&.small {
img {
max-width: 16px;
max-height: 16px;
}
}
&.big {
img {
max-width: 100px;
max-height: 48px;
}
}
}
.label {
display: block;
overflow: hidden;
text-align: left;
}
.date {
text-align: right;
width: 160px;
}
.size {
text-align: right;
width: 80px;
}
}
.empty, .no-match {
margin: 50px 0;
text-align: center;
color: #ddd;
font-size: 5em;
font-weight: bold;
}
.no-match {
display: none;
}
}

View File

@@ -1,7 +1,7 @@
#data-apache-autoindex, #data-php-no-js-fallback {
max-width: 960px;
margin: 0 auto;
margin: 0 auto 80px auto;
table {
display: block;
@@ -57,6 +57,8 @@
td:nth-child(1), th:nth-child(1) {
text-align: center;
width: 16px;
color: #ccc;
font-size: 0.9em;
img {
width: 16px;

View File

@@ -0,0 +1,24 @@
html { overflow-y: auto; }
::-moz-selection { background: #68A9FF; color: #fff; text-shadow: none; }
::selection { background: #68A9FF; color: #fff; text-shadow: none; }
body {
font-family: Ubuntu, sans-serif;
font-size: 13px;
color: #555;
background-color: #fff;
margin: 30px;
}
html.js .hideOnJs, html.no-js .hideOnNoJs {
display: none;
}
html.oldie {
.oldBrowser {
display: inline !important;
}
#tree {
display: none !important;
}
}

View File

@@ -9,8 +9,6 @@ body#h5ai-info {
.build-version {
display: block;
// font-size: 0.9em;
// color: #aaa;
}
.build-stamp {
display: block;
@@ -66,7 +64,7 @@ body#h5ai-info {
margin: 4px 0 12px 12px;
font-size: 0.7em;
color: #aaa;
width: 300px;
width: 310px;
line-height: 1.2em;
}
}

View File

@@ -33,21 +33,21 @@
padding: 0;
list-style: none;
text-align: left;
}
li {
padding: 8px 24px 10px 24px;
white-space: nowrap;
border-top: 1px solid rgb(231,231,231);
.transition(all 0.2s ease-in-out);
li {
padding: 8px 24px 10px 24px;
white-space: nowrap;
border-top: 1px solid rgb(231,231,231);
.transition(all 0.2s ease-in-out);
&.current {
color: #333;
background-color: rgba(255,255,255,0.8);
}
&:hover {
color: #e80;
background-color: rgba(255,255,255,0.8);
}
&.current {
color: #333;
background-color: rgba(255,255,255,0.8);
}
&:hover {
color: #e80;
background-color: rgba(255,255,255,0.8);
}
}
}

View File

@@ -9,6 +9,7 @@
z-index: 100;
background-color: rgba(0,0,0,0.5);
.transition(background-color 0.3s ease-in-out);
text-align: center;
}
@@ -18,11 +19,22 @@
}
// @check-white: rgba(255,255,255,0.5);
// @check-black: rgba(0,0,0,0.2);
@check-white: #f8f8f8;
@check-black: #e8e8e8;
#pv-img-image {
max-width: 100%;
max-height: 100%;
border: 2px solid #fff;
.border-radius(4px);
background-color: @check-white;
background-image:
-webkit-linear-gradient(45deg, @check-black 25%, transparent 25%, transparent 75%, @check-black 75%, @check-black),
-webkit-linear-gradient(45deg, @check-black 25%, transparent 25%, transparent 75%, @check-black 75%, @check-black);
background-size: 60px 60px;
background-position: 0 0, 30px 30px
}
#pv-img-overlay.fullscreen {
@@ -108,15 +120,15 @@
}
}
#pv-img-topbar {
position: fixed;
z-index: 5;
width: 100%;
left: 0;
top: 0;
.vert-gradient(rgb(37,37,37), rgb(24,24,24));
border-bottom: 1px solid rgb(27,27,27);
}
// #pv-img-topbar {
// position: fixed;
// z-index: 5;
// width: 100%;
// left: 0;
// top: 0;
// .vert-gradient(rgb(37,37,37), rgb(24,24,24));
// border-bottom: 1px solid rgb(27,27,27);
// }
#pv-img-bottombar {
position: fixed;

View File

@@ -26,12 +26,17 @@
}
#pv-txt-text {
word-break: break-all;
.syntaxhighlighter {
overflow: visible !important;
.gutter .line {
border-right: none !important;
}
// .code .line, table td.code .container textarea {
// white-space: normal !important;
// }
}
&.markdown {
@@ -133,15 +138,15 @@
}
}
#pv-txt-topbar {
position: fixed;
z-index: 5;
width: 100%;
left: 0;
top: 0;
.vert-gradient(rgb(37,37,37), rgb(24,24,24));
border-bottom: 1px solid rgb(27,27,27);
}
// #pv-txt-topbar {
// position: fixed;
// z-index: 5;
// width: 100%;
// left: 0;
// top: 0;
// .vert-gradient(rgb(37,37,37), rgb(24,24,24));
// border-bottom: 1px solid rgb(27,27,27);
// }
#pv-txt-bottombar {
position: fixed;

View File

@@ -1,22 +1,16 @@
#context {
position: fixed;
z-index: 1;
#qrcode {
display: none;
position: fixed;
right: 16px;
bottom: 50px;
z-index: 1;
background-color: #fff;
border: 2px solid #ddd;
padding: 8px;
span {
canvas {
display: block;
}
.qrcode {
canvas {
display: block;
}
}
}

View File

@@ -3,6 +3,7 @@
position: fixed;
z-index: 5;
width: 100%;
min-height: 30px;
left: 0;
top: 0;
.vert-gradient(rgb(241,241,241), rgb(228,228,228));

View File

@@ -0,0 +1,119 @@
#tree {
display: none;
position: fixed;
left: 0;
top: 31px;
height: 100%;
z-index: 3;
overflow: auto;
padding: 8px;
background-color: rgb(241,241,241);
border-right: 2px solid rgb(221,221,221);
.sp-scrollbar {
margin: 8px 8px 8px 0;
width: 6px;
background-color: rgb(210,210,210);
.border-radius(3px);
cursor: pointer;
.sp-thumb {
background-color: rgb(180,180,180);
.border-radius(3px);
}
&.active .sp-thumb {
background-color: rgb(150,150,150);
}
}
.indicator {
position: relative;
top: 2px;
display: inline-block;
width: 16px;
height: 22px;
float: left;
opacity: 0.7;
cursor: pointer;
img {
width: 12px;
height: 12px;
.transition(all 0.2s ease-in-out);
}
&.open {
img {
.transform(rotate(90deg));
}
}
&.unknown {
opacity: 0.3;
}
&.none {
opacity: 0;
cursor: inherit;
}
}
a, a:active, a.visited {
display: block;
height: 1.231em;
line-height: 1.231em;
margin-left: 14px;
padding: 4px 6px;
color: #555;
border: 1px solid rgba(0,0,0,0);
.border-radius(5px);
text-decoration: none;
opacity: 0.7;
&:hover, &.hover {
color: #e80;
background-color: rgba(255,255,255,0.5);
opacity: 1;
}
}
.icon {
position: relative;
top: -2px;
margin-right: 6px;
img {
width: 16px;
height: 16px;
}
}
.hint {
margin-left: 6px;
font-size: 0.9em;
color: #ccc;
}
.content {
list-style: none;
margin: 0;
padding: 0 0 0 24px;
}
.summary {
margin: 0 0 0 24px;
color: #999;
font-style: italic;
}
.current {
> a, > a:active, > a:visited {
background-color: rgba(255,255,255,0.5);
border-color: rgb(221,221,221);
opacity: 1;
}
}
.error {
> a, > a:active, > a:visited {
color: #999;
&:hover, &.hover {
color: #e80;
}
}
.hint {
color: #c55;
}
}
}

View File

@@ -0,0 +1,188 @@
/* ==========================================================================
Helper classes
========================================================================== */
/*
* Image replacement
*/
.ir {
background-color: transparent;
border: 0;
overflow: hidden;
/* IE 6/7 fallback */
*text-indent: -9999px;
}
.ir:before {
content: "";
display: block;
width: 0;
height: 100%;
}
/*
* Hide from both screenreaders and browsers: h5bp.com/u
*/
.hidden {
display: none !important;
visibility: hidden;
}
/*
* Hide only visually, but have it available for screenreaders: h5bp.com/v
*/
.visuallyhidden {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
/*
* Extends the .visuallyhidden class to allow the element to be focusable
* when navigated to via the keyboard: h5bp.com/p
*/
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto;
}
/*
* Hide visually and from screenreaders, but maintain layout
*/
.invisible {
visibility: hidden;
}
/*
* Clearfix: contain floats
*
* For modern browsers
* 1. The space content is one way to avoid an Opera bug when the
* `contenteditable` attribute is included anywhere else in the document.
* Otherwise it causes space to appear at the top and bottom of elements
* that receive the `clearfix` class.
* 2. The use of `table` rather than `block` is only necessary if using
* `:before` to contain the top-margins of child elements.
*/
.clearfix:before,
.clearfix:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.clearfix:after {
clear: both;
}
/*
* For IE 6/7 only
* Include this rule to trigger hasLayout and contain floats.
*/
.clearfix {
*zoom: 1;
}
/* ==========================================================================
EXAMPLE Media Queries for Responsive Design.
Theses examples override the primary ('mobile first') styles.
Modify as content requires.
========================================================================== */
@media only screen and (min-width: 35em) {
/* Style adjustments for viewports that meet the condition */
}
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min-resolution: 144dpi) {
/* Style adjustments for high resolution devices */
}
/* ==========================================================================
Print styles.
Inlined to avoid required HTTP connection: h5bp.com/r
========================================================================== */
@media print {
* {
background: transparent !important;
color: #000 !important; /* Black prints faster: h5bp.com/s */
box-shadow:none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
/*
* Don't show links for images, or javascript/internal links
*/
.ir a:after,
a[href^="javascript:"]:after,
a[href^="#"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group; /* h5bp.com/t */
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
@page {
margin: 0.5cm;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
}

View File

@@ -0,0 +1,94 @@
/*
* HTML5 Boilerplate
*
* What follows is the result of much research on cross-browser styling.
* Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
* Kroc Camen, and the H5BP dev community and team.
*/
/* ==========================================================================
Base styles: opinionated defaults
========================================================================== */
html,
button,
input,
select,
textarea {
color: #222;
}
body {
font-size: 1em;
line-height: 1.4;
}
/*
* Remove text-shadow in selection highlight: h5bp.com/i
* These selection declarations have to be separate.
* Customize the background color to match your design.
*/
::-moz-selection {
background: #b3d4fc;
text-shadow: none;
}
::selection {
background: #b3d4fc;
text-shadow: none;
}
/*
* A better looking default horizontal rule
*/
hr {
display: block;
height: 1px;
border: 0;
border-top: 1px solid #ccc;
margin: 1em 0;
padding: 0;
}
/*
* Remove the gap between images and the bottom of their containers: h5bp.com/i/440
*/
img {
vertical-align: middle;
}
/*
* Remove default fieldset styles.
*/
fieldset {
border: 0;
margin: 0;
padding: 0;
}
/*
* Allow only vertical resizing of textareas.
*/
textarea {
resize: vertical;
}
/* ==========================================================================
Chrome Frame prompt
========================================================================== */
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
}
/* ==========================================================================
Author's custom styles
========================================================================== */

View File

@@ -0,0 +1,504 @@
/*! normalize.css v1.0.1 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/*
* Corrects `block` display not defined in IE 6/7/8/9 and Firefox 3.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
display: block;
}
/*
* Corrects `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
*/
audio,
canvas,
video {
display: inline-block;
*display: inline;
*zoom: 1;
}
/*
* Prevents modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/*
* Addresses styling for `hidden` attribute not present in IE 7/8/9, Firefox 3,
* and Safari 4.
* Known issue: no IE 6 support.
*/
[hidden] {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/*
* 1. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
* `em` units.
* 2. Prevents iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-size: 100%; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
-ms-text-size-adjust: 100%; /* 2 */
}
/*
* Addresses `font-family` inconsistency between `textarea` and other form
* elements.
*/
html,
button,
input,
select,
textarea {
font-family: sans-serif;
}
/*
* Addresses margins handled incorrectly in IE 6/7.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/*
* Addresses `outline` inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/*
* Improves readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/*
* Addresses font sizes and margins set differently in IE 6/7.
* Addresses font sizes within `section` and `article` in Firefox 4+, Safari 5,
* and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
h2 {
font-size: 1.5em;
margin: 0.83em 0;
}
h3 {
font-size: 1.17em;
margin: 1em 0;
}
h4 {
font-size: 1em;
margin: 1.33em 0;
}
h5 {
font-size: 0.83em;
margin: 1.67em 0;
}
h6 {
font-size: 0.75em;
margin: 2.33em 0;
}
/*
* Addresses styling not present in IE 7/8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/*
* Addresses style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
blockquote {
margin: 1em 40px;
}
/*
* Addresses styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/*
* Addresses styling not present in IE 6/7/8/9.
*/
mark {
background: #ff0;
color: #000;
}
/*
* Addresses margins set differently in IE 6/7.
*/
p,
pre {
margin: 1em 0;
}
/*
* Corrects font family set oddly in IE 6, Safari 4/5, and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
_font-family: 'courier new', monospace;
font-size: 1em;
}
/*
* Improves readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}
/*
* Addresses CSS quotes not supported in IE 6/7.
*/
q {
quotes: none;
}
/*
* Addresses `quotes` property not supported in Safari 4.
*/
q:before,
q:after {
content: '';
content: none;
}
/*
* Addresses inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/*
* Prevents `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Lists
========================================================================== */
/*
* Addresses margins set differently in IE 6/7.
*/
dl,
menu,
ol,
ul {
margin: 1em 0;
}
dd {
margin: 0 0 0 40px;
}
/*
* Addresses paddings set differently in IE 6/7.
*/
menu,
ol,
ul {
padding: 0 0 0 40px;
}
/*
* Corrects list images handled incorrectly in IE 7.
*/
nav ul,
nav ol {
list-style: none;
list-style-image: none;
}
/* ==========================================================================
Embedded content
========================================================================== */
/*
* 1. Removes border when inside `a` element in IE 6/7/8/9 and Firefox 3.
* 2. Improves image quality when scaled in IE 7.
*/
img {
border: 0; /* 1 */
-ms-interpolation-mode: bicubic; /* 2 */
}
/*
* Corrects overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/*
* Addresses margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/*
* Corrects margin displayed oddly in IE 6/7.
*/
form {
margin: 0;
}
/*
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/*
* 1. Corrects color not being inherited in IE 6/7/8/9.
* 2. Corrects text not wrapping in Firefox 3.
* 3. Corrects alignment displayed oddly in IE 6/7.
*/
legend {
border: 0; /* 1 */
padding: 0;
white-space: normal; /* 2 */
*margin-left: -7px; /* 3 */
}
/*
* 1. Corrects font size not being inherited in all browsers.
* 2. Addresses margins set differently in IE 6/7, Firefox 3+, Safari 5,
* and Chrome.
* 3. Improves appearance and consistency in all browsers.
*/
button,
input,
select,
textarea {
font-size: 100%; /* 1 */
margin: 0; /* 2 */
vertical-align: baseline; /* 3 */
*vertical-align: middle; /* 3 */
}
/*
* Addresses Firefox 3+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/*
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Corrects inability to style clickable `input` types in iOS.
* 3. Improves usability and consistency of cursor style between image-type
* `input` and others.
* 4. Removes inner spacing in IE 7 without affecting normal text inputs.
* Known issue: inner spacing remains in IE 6.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
*overflow: visible; /* 4 */
}
/*
* Re-set default cursor for disabled elements.
*/
button[disabled],
input[disabled] {
cursor: default;
}
/*
* 1. Addresses box sizing set to content-box in IE 8/9.
* 2. Removes excess padding in IE 8/9.
* 3. Removes excess padding in IE 7.
* Known issue: excess padding remains in IE 6.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
*height: 13px; /* 3 */
*width: 13px; /* 3 */
}
/*
* 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/*
* Removes inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/*
* Removes inner padding and border in Firefox 3+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/*
* 1. Removes default vertical scrollbar in IE 6/7/8/9.
* 2. Improves readability and alignment in all browsers.
*/
textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/*
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}

View File

@@ -0,0 +1,35 @@
@import "lib/h5bp-normalize";
@import "lib/h5bp-main-header";
@import "lib/mixins";
@import "lib/sh/shCore";
@import "lib/sh/shThemeDefault";
@import "inc/general";
@import "inc/topbar";
@import "inc/bottombar";
@import "inc/download";
@import "inc/delete";
@import "inc/filter";
@import "inc/l10n";
@import "inc/tree";
@import "inc/qrcode";
@import "inc/preview-img";
@import "inc/preview-txt";
@import "inc/content";
@import "inc/extended";
@import "inc/extended-details";
@import "inc/extended-icons";
@import "inc/extended-list";
@import "inc/extended-grid";
// @import "inc/context-menu";
@import "inc/dropbox";
@import "inc/fallback-table";
@import "inc/responsive";
@import "inc/h5ai-info";
@import "lib/h5bp-main-footer";

View File

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 551 B

View File

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 554 B

View File

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 492 B

View File

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 551 B

View File

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 227 B

View File

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 663 B

View File

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 554 B

View File

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 506 B

View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

View File

Before

Width:  |  Height:  |  Size: 699 B

After

Width:  |  Height:  |  Size: 699 B

View File

Before

Width:  |  Height:  |  Size: 599 B

After

Width:  |  Height:  |  Size: 599 B

View File

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 592 B

View File

Before

Width:  |  Height:  |  Size: 671 B

After

Width:  |  Height:  |  Size: 671 B

View File

Before

Width:  |  Height:  |  Size: 311 B

After

Width:  |  Height:  |  Size: 311 B

View File

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 586 B

View File

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 535 B

View File

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 679 B

View File

Before

Width:  |  Height:  |  Size: 619 B

After

Width:  |  Height:  |  Size: 619 B

View File

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 846 B

View File

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 618 B

View File

Before

Width:  |  Height:  |  Size: 431 B

After

Width:  |  Height:  |  Size: 431 B

View File

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 591 B

View File

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

View File

Before

Width:  |  Height:  |  Size: 395 B

After

Width:  |  Height:  |  Size: 395 B

View File

Before

Width:  |  Height:  |  Size: 655 B

After

Width:  |  Height:  |  Size: 655 B

View File

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 551 B

View File

Before

Width:  |  Height:  |  Size: 504 B

After

Width:  |  Height:  |  Size: 504 B

View File

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 530 B

View File

Before

Width:  |  Height:  |  Size: 770 B

After

Width:  |  Height:  |  Size: 770 B

View File

Before

Width:  |  Height:  |  Size: 792 B

After

Width:  |  Height:  |  Size: 792 B

View File

Before

Width:  |  Height:  |  Size: 671 B

After

Width:  |  Height:  |  Size: 671 B

View File

Before

Width:  |  Height:  |  Size: 788 B

After

Width:  |  Height:  |  Size: 788 B

View File

Before

Width:  |  Height:  |  Size: 658 B

After

Width:  |  Height:  |  Size: 658 B

View File

Before

Width:  |  Height:  |  Size: 675 B

After

Width:  |  Height:  |  Size: 675 B

View File

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

View File

Before

Width:  |  Height:  |  Size: 423 B

After

Width:  |  Height:  |  Size: 423 B

View File

Before

Width:  |  Height:  |  Size: 614 B

After

Width:  |  Height:  |  Size: 614 B

View File

Before

Width:  |  Height:  |  Size: 627 B

After

Width:  |  Height:  |  Size: 627 B

View File

Before

Width:  |  Height:  |  Size: 614 B

After

Width:  |  Height:  |  Size: 614 B

View File

Before

Width:  |  Height:  |  Size: 799 B

After

Width:  |  Height:  |  Size: 799 B

View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

View File

Before

Width:  |  Height:  |  Size: 610 B

After

Width:  |  Height:  |  Size: 610 B

View File

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 679 B

View File

Before

Width:  |  Height:  |  Size: 629 B

After

Width:  |  Height:  |  Size: 629 B

View File

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

View File

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 622 B

View File

Before

Width:  |  Height:  |  Size: 743 B

After

Width:  |  Height:  |  Size: 743 B

View File

Before

Width:  |  Height:  |  Size: 621 B

After

Width:  |  Height:  |  Size: 621 B

View File

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 781 B

View File

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 384 B

View File

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

View File

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

View File

Before

Width:  |  Height:  |  Size: 627 B

After

Width:  |  Height:  |  Size: 627 B

View File

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

View File

Before

Width:  |  Height:  |  Size: 510 B

After

Width:  |  Height:  |  Size: 510 B

View File

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 406 B

View File

Before

Width:  |  Height:  |  Size: 677 B

After

Width:  |  Height:  |  Size: 677 B

View File

Before

Width:  |  Height:  |  Size: 463 B

After

Width:  |  Height:  |  Size: 463 B

View File

Before

Width:  |  Height:  |  Size: 654 B

After

Width:  |  Height:  |  Size: 654 B

View File

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

View File

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

Some files were not shown because too many files have changed in this diff Show More