Compare commits

...

733 Commits

Author SHA1 Message Date
Paul Irish
080026e4f4 modernizr 2.5.2. includes html5shiv 3.3. 2012-02-07 18:28:52 -08:00
Paul Irish
9434b5bc79 upgrade Modernizr to 1.5.1 which includes IE7 fix. also yepnope 1.5.2 2012-02-07 17:35:49 -08:00
Mathias Bynens
f9ebf5d2e9 Merge branch 'master' of github.com:h5bp/html5-boilerplate
* 'master' of github.com:h5bp/html5-boilerplate:
  2.5 version string in modernizr.
  update index for upgraded modernizr.
  update modernizr and yepnope to brand new latest.
2012-02-06 14:28:16 +01:00
Mathias Bynens
c93f45ff38 Normalize short URLs pointing to GitHub issues
Ref. #954.
2012-02-06 14:25:02 +01:00
Paul Irish
5dbb3b4b0a 2.5 version string in modernizr. 2012-02-05 22:20:28 -08:00
Paul Irish
deeb952314 update index for upgraded modernizr. 2012-02-05 22:03:22 -08:00
Paul Irish
0659528100 update modernizr and yepnope to brand new latest. 2012-02-05 22:03:01 -08:00
Mathias Bynens
4d65006439 .htaccess: Block access to Vim backup files correctly
Fixes #937.
2012-02-05 13:46:28 +01:00
Nicolas Gallagher
ab117fc461 Merge pull request #966 from dhaigh/master
Whitespace removal
2012-02-04 03:43:09 -08:00
Declan Haigh
5d2a6dbe3a obsessive compulsive whitespace removal 2012-02-04 21:31:25 +10:00
Nicolas Gallagher
cedd640083 Avoid using @defer on interdependent <script>s
Whenever a deferred script makes HTML be parsed into the DOM tree
(e.g. when innerHTML, insertAdjacentHTML(), appendChild(),
insertBefore(), replaceChild() etc. are used), IE < 10 may start
looking for more deferred scripts to run, immediately executing
them before the first deferred script has completed.

More information: https://github.com/paulirish/lazyweb-requests/issues/42

Close #961
2012-02-03 15:15:19 +00:00
Nicolas Gallagher
ac50fbc1e2 Update readme 2012-02-03 13:43:07 +00:00
Nicolas Gallagher
f96fed6942 Remove ant build script. Close #826
The ant build script is now in a separate, dedicated repo at:
http://github.com/h5bp/ant-build-script
2012-02-03 12:38:26 +00:00
Nicolas Gallagher
f2924da1b1 Merge pull request #960 from alrra/h5bp
added a more informative page link in the 'robots.txt' file
2012-02-03 03:45:37 -08:00
alrra
a111a79500 added a more informative page link in the 'robots.txt' file 2012-02-03 12:50:06 +02:00
Paul Irish
ce0c28932b update plugins.js to be jshint compliant. fixes #952 2012-01-31 17:31:07 -08:00
Paul Irish
d7e668235f Chromeframe prompt doesnt reccomend IE6 -> IE8. We need mitigate IE8's role as a boat anchor browser as much as possible 2012-01-31 12:26:54 -08:00
Nicolas Gallagher
8552d9543e Re-set default cursor for disabled input and button. Fix #887 2012-01-31 16:12:19 +00:00
Divya Manian
af3bd79de5 fixing the regexes, hopefully for the last time. Unsure where last night's commit went. Thanks @kblomqvist 2012-01-31 07:14:54 -08:00
Divya Manian
2dcdaf0104 fixing conflicts 2012-01-30 19:17:43 -08:00
Divya Manian
3cebea1671 fixing build script AGAIN. Wondering why it worked the first time around? :/ 2012-01-29 20:35:16 -08:00
Divya Manian
a5e31d6132 Updating build tools to their latest versions 2012-01-29 20:26:32 -08:00
Divya Manian
37470f8da6 Merge pull request #949 from adeelejaz/issue/201
Fixes #201 (finally!)
2012-01-29 19:55:50 -08:00
Adeel Ejaz
e1b81302bd Fixes #201 (finally!) 2012-01-30 03:23:23 +00:00
Divya Manian
965f3f1636 Fixing the appending of manifest when php tags exist. Fixes #912 2012-01-29 16:58:14 -08:00
Nicolas Gallagher
fddbaa3487 Move base font-family and color declaration to html.
Applying these shared styles to `html` ensures that people can set
their own overrides on `html` later in the CSS. If the starting
styles were on `body`, then setting them on `html` later in the
CSS would not have the intended effect.
2012-01-29 23:15:33 +00:00
Nicolas Gallagher
26d6be2479 Remove initial-scale from meta viewport. Fix #824 2012-01-29 23:09:12 +00:00
Divya Manian
611162c891 fixing damned whitespaces 2012-01-29 14:22:24 -08:00
Divya Manian
f5d13045c0 cleaning up style.css for chrome frame 2012-01-29 13:14:43 -08:00
Divya Manian
cff92881a8 updated the regex pattern to only look for href=<folder path>/style.css, so it doesnt matter where href is present in the link. Fixes #927 2012-01-29 13:06:10 -08:00
Divya Manian
2eb19a9c99 need opts.extra to be always present to stop build script from throwing an error that it is not found 2012-01-29 13:05:05 -08:00
Divya Manian
2b5f881ecc Made all the arguments for htmlcompressor part of config file. Also added optional additional arguments list in project.properties. Fixes #672 2012-01-29 11:21:39 -08:00
Divya Manian
6a304122b7 Reports of crashes using the chrome frame script check. Instead using the prompt message with a link to chrome frame or a newer IE. Fixes #695 2012-01-29 08:44:45 -08:00
Divya Manian
8b1f5ebe50 copying over the libraries, fixes #944 2012-01-29 08:19:50 -08:00
Nicolas Gallagher
4b213f9050 Merge branch 'master' of github.com:h5bp/html5-boilerplate 2012-01-26 15:33:29 +00:00
Nicolas Gallagher
0bf9143cd1 Additional tweaks to 404.
Simplify CSS styling the Google Search inputs. Improve the
appearance of the keyword input. Use `body` as wrapper. Add `lang`
attribute to `html`.

Thanks to @sindresorhus for suggestions and improvements in #941
2012-01-26 15:29:10 +00:00
Divya Manian
d269a55d45 OK, so this commit ensures that after removing mylibs. the build script works.
What it also ensures is that the file.js.bypass also still works. This means the script looks for these files within the parent js directory. Also finally these files will actually remain untouched compared to previous versions where they were minified/concatenated but just not included.

This means any js file in any folder not included by default in h5bp will be concatenated and minified and output as a single script-hsa.js file. If you do not want this, make sure to do <folder>/* in file.js.bypass in config/project.properties
2012-01-25 23:24:44 -08:00
Nicolas Gallagher
c04b0b57b5 Remove reference to Respond from HTML comment in head 2012-01-24 19:33:13 +00:00
Nicolas Gallagher
f6ccd1032d Simplify JS folder structure. Close #807 2012-01-24 19:31:12 +00:00
Nicolas Gallagher
af98e6fc51 Update Modernizr to remove Respond. Change placeholder Media Query.
Previous version of Respond was known to cause problems in IE8.
It was not necessary for developers who chose to write their CSS
in a 'mobile first' manner. Furthermore, there are some concerns
about the performance penalty Respond imposes upon legacy versions
of IE. If a future version of Respond is shown to be performant
and more reliable, it may be reconsidered for inclusion.

Along with this change is a simplification of the placeholder
Media Queries. Now there is only 1 Media Query example and it is
more clearly labelled as an example. The use of `em` units in the
condition is to reinforce the idea that Media Query breakpoints
should not be device-specific.

Fix #816
2012-01-24 19:19:52 +00:00
Nicolas Gallagher
f0358b52a5 Merge pull request #923 from muiku/gh-920
Fix gh-920
2012-01-24 03:27:27 -08:00
Nicolas Gallagher
1dd911f06a Update design of 404. Close #931
Implement and build upon the design provided by @sindresorhus.
Thanks!
2012-01-24 01:29:06 +00:00
Nicolas Gallagher
1738287ce9 Remove WebKit search cancel button from OS X
This WebKit pseudo-element is only displayed on OS X and is poorly
positioned once you begin to customise the style of a `search`
type input.
2012-01-22 22:01:18 +00:00
Nicolas Gallagher
5c02f406e4 Remove forced scrollbars on html element. Fix #918
This can cause problems for JavaScript plugins (such as modal or
drag-and-drop UIs) in Firefox.
2012-01-22 18:11:34 +00:00
Nicolas Gallagher
2dc1493df6 Allow legend text to wrap in older versions of Firefox. Fix #883 2012-01-22 18:09:44 +00:00
Nicolas Gallagher
79beb6c91c Merge pull request #762 from smashercosmo/master
Removing extra space around checkboxes and radio buttons in IE7
2012-01-22 10:06:28 -08:00
Paul Irish
26ea01971c buildscript properties file. inline example for excluding folders 2012-01-20 11:07:26 -08:00
Kim Blomqvist
4932b4070f It should have been a negative lookbehind
- In addition greater than character (>) in the regexp had to been escaped
2012-01-20 18:42:53 +02:00
Kim Blomqvist
27d1fda0dc Fix gh-920 2012-01-19 21:22:34 +02:00
Kim Blomqvist
e80a3e0637 Fix gh-912
- Add regexp lookahead to skip ?> (php-tag)
2012-01-19 20:41:01 +02:00
Paul Irish
a36d558702 Merge pull request #906 from gzoller/master
Support for js modules with cachebusting
2012-01-18 18:06:05 -08:00
Greg Zoller
3e0b0de9da Removed index.html example mods for module support. Comments in wiki. 2012-01-17 21:01:57 -06:00
Paul Irish
ce9c57c105 CFInstall: cannot have [defer] on a external/inline script combo. fixes #913 2012-01-17 08:47:11 -08:00
Mathias Bynens
f4cd5c18a3 Merge pull request #910 from mikealmond/master
Adding php dist files to the blocked extensions list
2012-01-12 22:06:13 -08:00
Mike Almond
0f9507774b Adding .dist files to the list of filetypes blocked to a user 2012-01-12 20:46:56 -05:00
Mathias Bynens
01296493e7 Revert e2ca1bf931
Ref. #891.
2012-01-07 21:18:58 +01:00
Nicolas Gallagher
8c4ce42af3 Remove author meta tag from head 2012-01-06 15:40:09 +00:00
Greg Zoller
3719f56c86 Added support for js modules 2012-01-05 17:46:14 -06:00
Divya Manian
b3755703b7 Merge pull request #873 from lukeb/patch-1
Requests shouldn't fail if the file or directory beginning with a period...
2011-12-31 07:18:15 -08:00
Divya Manian
f6830c199b Merge pull request #884 from tralston/master
Added target "copyall" in build.xml for the "dev" environment
2011-12-30 17:01:41 -08:00
Divya Manian
f93c8e1636 adding basedir for all tasks. Fixes #437 2011-12-30 07:48:38 -08:00
Divya Manian
5884c3a5fd Updating intermediate folder to not minify the bypassed files. Fixes. #694 2011-12-30 07:31:35 -08:00
Divya Manian
d5c0d33d10 removing imgcopy from buildscript as it is a remnant and not useful. Fixes #845 2011-12-30 07:18:15 -08:00
Divya Manian
b780098073 Merge pull request #881 from splendeo/fix-htaccess
make .htaccess (a bit) less restrictive
2011-12-30 06:53:34 -08:00
Divya Manian
2e1a7bf567 Merge pull request #872 from mikemorris/patch-1
Removed ' <!--<![endif' from regex search string for adding manifest attribute
2011-12-30 06:42:00 -08:00
Mathias Bynens
481dfc1966 Merge pull request #891 from laukstein/patch-2
Apache performance tweak with -SymLinksIfOwnerMatch and +FollowSymLinks
2011-12-28 02:45:25 -08:00
Binyamin Laukstein
71d5229611 Added Apache docs URL 2011-12-28 11:20:24 +02:00
Addy Osmani
32aabb23f7 Merge pull request #830 from mattyclarkson/master
404.html updates.
2011-12-27 16:46:03 -08:00
Mathias Bynens
fd52982efd Escape the . character correctly in FilesMatch directives
Fixes #898.
2011-12-24 08:56:42 +01:00
Mathias Bynens
9feb29f465 Omit .html and .txt from the AddCharset statement
As AddDefaultCharset already takes care of text/plain and text/html. This reverts 024600fd57.
2011-12-22 07:51:26 +01:00
Mathias Bynens
23bd766955 Only send CORS headers for images by default
Ref. #797.
2011-12-20 08:20:04 +01:00
Paul Irish
024600fd57 force utf-8 for .txt for funsies. 2011-12-17 12:06:58 -08:00
Binyamin Laukstein
e2ca1bf931 Apache Performance Tuning http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks
Set -SymLinksIfOwnerMatch to avoid Apache extra system calls to check up on symlinks.
2011-12-14 21:58:54 +02:00
Paul Irish
2b5eeeef27 adding mimetype for .webapp, Mozilla's new app manifest type. more:
This content-type is neccessary apparently:
  https://developer.mozilla.org/en/Apps/The_Manifest
2011-12-13 11:51:33 -08:00
Nicolas Gallagher
e97689d7aa Merge pull request #885 from elexx/master
createproject.sh - removed test
2011-12-10 04:21:28 -08:00
elexx
791734033f Removed test from copy, because the directory has been removed long ago (0a80ebafd0). 2011-12-10 13:13:39 +01:00
Taylor Ralston
cafea9f090 Added target "copyall" in build.xml for the "dev" environment
Fixes issue with not copying non-optimized .css and .js files into the publish folder. If dev environment is selected, .css and .js aren't minified, thus they aren't copied over with existing "copy" target.
2011-12-09 13:04:21 -07:00
Enrique García Cota
d582fe5d8e made .htaccess less restrictive
The rule that made .htaccess restrict access to files (.log, .bak,
.sh, ...) was missing an escape sequence on its dot.

As a result, in addition filtering problematic files, it also filtered
some very valid urls. For example:

    mysite.com/blog        <- satisfies /.log$/ and gets filtered
    mysite.com/hit-refresh <- satisfies /.sh$/ and gets filtered

This change modifies .htacces so the dot is interpreted as a literal dot
character, avoiding those issues.
2011-12-07 19:02:42 +01:00
Luke Brookhart
a835a4dbb0 Requests shouldn't fail if the file or directory beginning with a period doesn't exist. Some CMS's will allow for appending ".qr" to a URL to get a QR code. 2011-11-30 11:54:35 -05:00
mikemorris
ba7d47f931 Removed ' <!--<![endif' from regex search string for adding manifest attribute. Works fine without this segment, and no longer prevents the build script from adding the manifest attribute if the IE conditional comments are removed. 2011-11-29 13:17:50 -05:00
Paul Irish
b1e3aa5fe4 Merge pull request #871 from drublic/master
Update jQuery to 1.7.1
2011-11-28 16:04:50 -08:00
drublic
a8e96a79a1 Update jQuery from version 1.7.0 to 1.7.1
Signed-off-by: drublic <hans@sa-designz.de>
2011-11-29 00:17:26 +01:00
drublic
d8e28f2f2e Merge branch 'master' of https://github.com/h5bp/html5-boilerplate 2011-11-29 00:10:18 +01:00
Mathias Bynens
2727fa23a6 Send CORS headers if browsers request them. This enables CORS-enabled images (@crossorigin). Closes #797. 2011-11-28 20:00:09 +01:00
Nicolas Gallagher
fdb58e6815 Merge pull request #866 from AD7six/feature/slim-gitignore
git ignore files do not need to ignore ignoring themselves
2011-11-23 04:45:00 -08:00
AD7six
875df4e9b5 git ignore files do not need to ignore ignoring themselves
To ensure the dir exists with git, a file is required - but it can be
completely empty.

Since the git ignore file is already in the repo it is not necessary to
not-ignore it - it is already tracked.

Though trivial these !.gitignore files are being understood by some to
mean that they must contain this exact syntax to ensure an empty folder
exists.
2011-11-23 13:20:56 +01:00
Nicolas Gallagher
a0cf284836 Merge pull request #862 from martinsik/master
removed _trackPageLoadTime - it's now enabled by default in Google Analytics
2011-11-20 12:05:52 -08:00
martinsik
a7b1a71624 removed _trackPageLoadTime because it's not necessary any more 2011-11-20 20:42:41 +01:00
Paul Irish
f40da1b529 minor. filename typo. 2011-11-17 12:37:37 -08:00
drublic
9efe695f4d jQuery minified was still 1.6.4. fixes #852
I don't know why pretty sure I updated it.
Anyway… here comes the latest version.

Signed-off-by: drublic <hans@sa-designz.de>
2011-11-17 09:32:53 -08:00
Paul Irish
05965584fc hey filename, take it easy. use your inside voice. 2011-11-17 09:32:22 -08:00
drublic
2dd8ad97f8 jQuery minified was still 1.6.4. fixes #852
I don't know why pretty sure I updated it.
Anyway… here comes the latest version.

Signed-off-by: drublic <hans@sa-designz.de>
2011-11-17 10:42:23 +01:00
Mathias Bynens
78533f248c Update Modernizr header with a more specific build link. 2011-11-11 09:09:34 +01:00
Paul Irish
8bf92b0989 Merge pull request #852 from drublic/master
Update jQuery to the latest version
2011-11-10 15:20:44 -08:00
drublic
8074f1584f Update jQuery form 1.6.4 to 1.7.0
Signed-off-by: drublic <hans@sa-designz.de>
2011-11-11 00:10:21 +01:00
Matt Clarkson
6122ef5ab1 Added the 'px' back in for the things that need it. Added consistent spacing to the styling. 2011-11-09 01:35:07 +00:00
Matt Clarkson
212afb9d43 Added padding to the inputs so that they look better. 'look' is always a personal opinion though... 2011-11-08 01:34:51 +00:00
Matt Clarkson
8278b4552d Updated styling to be more consistent and terse 2011-11-08 00:45:56 +00:00
Divya Manian
ce11ab3f8e Merge pull request #846 from mikealmond/master
Block access to backup/source/config files. Fixes issue #648
2011-11-07 07:44:14 -08:00
Mike Almond
8b634157e3 Block access to backup/source/config files. Fixes issue #648 2011-11-07 09:38:37 -05:00
Divya Manian
588e82c8dc Adding Opera extension to mimetypes and unsetting X-UA-Compatible for opera extensions. Fixes #827 2011-11-06 14:08:45 -08:00
Divya Manian
07634ccaf1 Merge pull request #838 from dplesca/master
Fix for issue #837
2011-11-06 01:33:54 -07:00
Paul Irish
1c18e9e8ca Merge pull request #842 from akavlie/master
Link fixes
2011-11-04 19:43:03 -07:00
Aaron Kavlie
821f3449aa Fix a couple of links in build files that still point to github.com/paulirish 2011-11-04 19:27:14 -07:00
Nicolas Gallagher
4a69c41694 Update urls in .htaccess to reference the new repo and wiki locations 2011-11-04 21:26:42 +00:00
dplesca
6290f4018c Fix for Issue #837. 2011-11-03 12:30:23 +02:00
Mathias Bynens
5718718cdd Use h5bp.com short URL for the viewport discussion. Closes #836. 2011-11-02 08:53:20 +01:00
Mathias Bynens
d526c488ea Merge pull request #836 from kridolfo/patch-1
Update short link for X-UA-Compatible issue in GitHub to point to new repo.
2011-11-02 00:51:53 -07:00
Kyle Ridolfo
e0b5b1c93d Update short link for X-UA-Compatible issue in GitHub to point to new repository. 2011-11-01 12:32:48 -03:00
Matt Clarkson
0eb2dc932a Removed dynamic URL 2011-10-31 09:07:41 +00:00
Paul Irish
fb6d9387ed Merge pull request #832 from adrienkohlbecker/master
Fixed PNG optimization on unix & macos
2011-10-30 11:24:56 -07:00
Adrien Kohlbecker
b0fd587b26 PNGs weren't optimized on unix & macos 2011-10-30 13:12:17 +01:00
Matt Clarkson
5347f874ed Added the URL to the mistyped address and some nicer styling to the text box and button 2011-10-28 17:15:20 +01:00
Nicolas Gallagher
d32dfb7a48 Update README repo urls 2011-10-26 22:00:32 +01:00
Nicolas Gallagher
380c4f80d8 Add default font-size and line-height styles.
Redeclare default font-size using ems (equates to 16px if user
has not altered their prefs). Set a common line-height value to
improve readability in most cases. Should keep people happy.

Ref #723
Close #825
2011-10-25 20:35:19 +01:00
Nicolas Gallagher
125a7a6840 Remove default font-size and line-height. Close #724
The previous font-size and line-height were fairly arbitrary
values taken from the much earlier use of YUI font defaults.
Remove them in favour of developers specifying their own values
based on the typographic requirements of their design.
2011-10-23 20:29:19 +01:00
Nicolas Gallagher
1437e0fefd Remove demo folder.
The demo files haven't been well maintained and are of limited
use. Remove them to simplify the boilerplate.

Ref #808
2011-10-23 20:19:47 +01:00
Nicolas Gallagher
0a80ebafd0 Remove test folder.
Over 80% of people polled are not using the qunit testing
provided. Remove it in favour of people using their unit testing
framework of choice.

Ref #808
2011-10-23 20:05:31 +01:00
Divya Manian
5fdb99f91b adding a depends -clean. fixes #692 2011-10-19 22:40:21 +05:30
Divya Manian
b72f114d95 Merge pull request #813 from dflydev/master
Handle absolute path for name and optionally accept name on command line
2011-10-19 09:52:41 -07:00
Divya Manian
90734c0b45 Adding all images in the img folder to the manifest. Fixes #760 2011-10-19 21:57:58 +05:30
Beau Simensen
f022785b64 Added internal documentation per #813 2011-10-19 10:25:24 -05:00
Paul Irish
d20c503e08 Merge pull request #818 from localpcguy/patch-1
Use REM for comments to avoid error messages on the DOS prompt for Window
2011-10-18 15:46:47 -07:00
localpcguy
a37f57addb Use REM for comments to avoid error messages on the DOS prompt for Windows users 2011-10-18 19:37:30 -03:00
Mathias Bynens
a87078d406 Cleaner, more obvious indentation in .htaccess. Closes #817. 2011-10-18 22:39:58 +03:00
Nicolas Gallagher
ecdb8d79ac Add line-height:0 to .ir helper class. Close #811
The .ir helper class's use of a negative text-indent is not enough
to hide the text of submit inputs in IE6/7. This deals with that
scenario.
2011-10-15 14:50:08 +01:00
Nicolas Gallagher
f3cc3a28e4 Rewrite the README.
Previous version was acting more like a changelog. This update
provides a better overview of the project, more useful information,
clearer description of how to get involved, and links to the
various project resources.
2011-10-15 12:03:26 +01:00
Beau Simensen
8d50ceb127 Handle absolute directories for "name" and optionally take name as command line argument. 2011-10-14 15:10:58 -05:00
Paul Irish
f1e9bb3f94 QUnit updated to 1.2.0pre - which is master, which is 1 day past the 1.1.0 release. :) 2011-10-11 16:19:51 -07:00
Mathias Bynens
5e213a872c Merge pull request #805 from samuelcarlton/patch-1
Added sublime-project and sublime-workspace files to ignore list
2011-10-10 21:41:53 -07:00
Sam Carlton
638f77206f Added sublime-project and sublime-workspace files to ignore list 2011-10-10 19:43:28 -05:00
Divya Manian
25fa9bedd7 Merge pull request #800 from jakearchibald/master
Changing IE class names to target browsers less than a version.
2011-10-09 13:40:09 -07:00
Jake Archibald
b230b84043 Changing IE class names to fall-back rather than target specifically.
Almost all layout bugs that exist in IE8 also exist in 6 & 7, almost all layout bugs in 7 exist in 6. With class names that target versions specifically I end up repeating my selectors for IE6, 7 & 8. This pattern of selectors avoids that. Developers should be more familiar with this behaviour, as this is how it works with the underscore & star hacks.

If a style needs to be applied to IE8 specifically, it could be set on .ltie9 then overridden in .ltie8 - this isn't pretty, but I've never had to target a specific IE in practice, so I'm going on the assumption that it's an edge-case.
2011-10-08 11:51:05 +01:00
Paul Irish
362eb87946 Merge pull request #799 from rigelglen/master
Validate 404 Page's HTML
2011-10-07 10:22:41 -07:00
rigelglen
eaf87bb500 Now Valid HTML 2011-10-07 22:20:22 +05:30
Divya Manian
5c85e31a21 Merge pull request #789 from unfinisheddev/master
Ammendment to CSS @import regex. This will now allow media queries like (min-width: 240px).
2011-10-06 06:07:54 -07:00
Dave Kirk
e17dc838a2 Ammended the regex used to match media queries for imported stylesheets as it wasn't matching qeuries containing certain characters 2011-09-26 10:39:07 +01:00
Nicolas Gallagher
3cdf17e1bc Prevent text inputs growing as you type in IE6/7.
Applying *overflow:visible to button/input causes text inputs to
grow to fit their content, even if an explicit, fixed width is
applied. It was originally included to remove excess inner
spacing on buttons and submit/reset/button-type inputs in IE6/7.

Fixing this bug in IE6 requires dropping the fix entirely because
there is no way to avoid it being applied to text inputs. If
there is a need to fix this excess spacing bug in IE6, then it
should be done using a class that is applied to the
necessary elements.

For IE7, the excess spacing fix can be moved into the ruleset
that targets button and submit/reset/button-type inputs. This
prevents text inputs from growing.
2011-09-22 18:47:24 +01:00
Divya Manian
994cd0801d Merge pull request #768 from mathiasbynens/master
.htaccess improvement: check if mod_headers is available before matching webfont files (instead of the other way around)
2011-09-18 07:02:47 -07:00
Divya Manian
e130ae32c2 Merge pull request #767 from whitman/master
Add -p flag to mkdir
2011-09-18 06:58:16 -07:00
Mathias Bynens
d8a3970e14 Check if mod_headers is available before matching webfont files. This tweak also makes it more consistent with the rest of the .htaccess file. 2011-09-18 10:21:33 +03:00
Alex Whitman
d98f4ae88e Add -p flag to mkdir
- Allows parent directories to be automatically created if necessary
2011-09-17 16:18:39 +02:00
Nicolas Gallagher
6673ce68ff Merge pull request #766 from rigelglen/master
Update Demo Pages with jQuery 1.6.4
2011-09-17 02:17:41 -07:00
Rigel Glen
535918a3ed Updated Demo Page with jQuery 1.6.4 2011-09-17 14:41:22 +05:30
Mathias Bynens
32fcb33604 Merge pull request #765 from rigelglen/master
Added jQuery version 1.6.4
2011-09-17 00:59:46 -07:00
Rigel Glen
d13dfdef40 Added jQuery 1.6.4 2011-09-17 13:05:54 +05:30
Rigel Glen
b23de068c5 Added jQuery 1.6.4 2011-09-17 13:03:30 +05:30
rigelglen
7f94518f6b Added jQuery 1.6.4 2011-09-17 12:52:39 +05:30
Vladislav Shkodin
53aded7bf3 added fixed sizes for checkbox and radio button. this will remove extra space around them in IE7 2011-09-16 04:49:49 +04:00
Divya Manian
7a984c7f84 Changing the default elements inside body. Fixes #203 2011-09-15 17:35:35 -07:00
Divya Manian
8aa70882b4 Removing prefixed box-shadow resets in print styles. 2011-09-13 17:48:53 -03:00
Divya Manian
fe2d67c9c0 Merge pull request #754 from lekkerduidelijk/patch-2
Reset box shadow, including vendor prefixes, for @media print.
2011-09-13 13:48:08 -07:00
RL
115bce064e Reset box shadow, including vendor prefixes, for @media print. 2011-09-13 14:06:55 +03:00
Paul Irish
4994e375a1 Merge pull request #748 from santry/patch-1
A couple grammatical fixes to README.md
2011-09-10 15:51:34 -07:00
Sean Santry
64c9e797b8 A couple grammatical fixes to README.md 2011-09-10 18:52:28 -03:00
Paul Irish
ceb6e819d3 Merge pull request #742 from owilliams/master
Fix small typo in createproject.sh
2011-09-06 14:49:44 -07:00
owilliams
ea716a8f46 Fixed small typo in createproject.sh
Fixed small typos in build/createproject.sh comments: "sucess" -> "success"
2011-09-06 18:20:45 -03:00
Mathias Bynens
715957bffc Correct Expires header to application/x-font-ttf. Fixes #740. 2011-09-06 18:43:15 +03:00
Divya Manian
981e448b36 Merge pull request #733 from inxilpro/master
Added project.xml to build process
2011-09-05 07:02:03 -07:00
Divya Manian
439778a2be Updated the readme to remove duplicate reference to modernizr.load Fixes #737 2011-09-04 15:52:12 -07:00
Mathias Bynens
7b3c30d8c8 Merge pull request #736 from philipvonbargen/master
Added new version of jQuery (1.6.3)
2011-09-03 04:54:26 -07:00
Shi Chuan
70a836c34d added new console api methods to console.log protection 2011-09-03 14:02:43 +08:00
Shi Chuan
75ac1ea512 Merge pull request #735 from joeytrapp/master
Modify .esproj ignore rule.
2011-09-01 20:46:59 -07:00
Philip von Bargen
d07c233422 Added new version of jQuery 2011-09-01 22:08:37 +02:00
Paul Irish
bd72320946 Merge pull request #734 from Danmer/master
Set the file encoding for ant
2011-09-01 09:14:36 -07:00
Joey Trapp
2ba5f9d80d Added * to .esproj as Espresso saves the file as [Project Name].esproj. 2011-09-01 08:16:55 -05:00
Egor Kotlyarov
9b32ced2b4 build script: set the default file encoding for ant. Closes #729. 2011-09-01 10:39:19 +06:00
Chris Morrell
a6bc1d4e69 Added project.xml for custom build targets
Added a project.xml file which should be used for custom build targets
that are specific to your project, and updated build.xml to import that
file.
2011-08-31 17:45:04 -04:00
Divya Manian
2df9a9a863 Merge pull request #732 from Zearin/patch-2
Not 100% complete, but added lots of backticks to make files, paths, and
2011-08-29 13:05:23 -07:00
Tony
19dd8f8318 Not 100% complete, but added lots of backticks to make files, paths, and inline code easier to spot (and read!). 2011-08-29 22:04:00 -03:00
Mathias Bynens
4caa411f01 Switch back to the optimized asynchronous Google Analytics snippet.
Don’t set .async = true, since it only makes a difference in Firefox 3.6. See http://mathiasbynens.be/notes/async-analytics-snippet#async for details.

This reverts commit d9cc711ea1 and fixes #720.
2011-08-25 23:02:07 +02:00
Nicolas Gallagher
fccc4824cc Merge pull request #721 from callum85/patch-1
Move media query placeholders to follow immediately after the primary styles, and before the helper classes
2011-08-24 05:44:18 -07:00
callum85
ef3c095baf Moved media queries placeholder immediately after primary (mobile-first) styles... and before the non-semantic helper classes. 2011-08-25 00:22:08 +02:00
Rutger de Knijf
3f22747dfb Changed -rev target description and renamed to -intro 2011-08-23 10:11:56 +03:00
Paul Irish
ca028d751f Merge pull request #716 from rdeknijf/master
build.xml -rev target clarity
2011-08-22 13:24:37 -07:00
Divya Manian
97c7ae774a adding .esproj to gitignore. Fixes #709 2011-08-21 10:40:31 -07:00
Divya Manian
6727b542ac changing hash length to 7 from 40 2011-08-21 10:24:25 -07:00
Matthew Donoughe
ad423ae3fd add hash.length property to control hash lengths
re: issue gh-696
2011-08-21 16:39:00 +00:00
Paul Irish
e88011b49b closure compiler. renamed the jar. fixup of 3233fdeeec 2011-08-20 22:42:46 -07:00
Divya Manian
01f0a9f999 Adding * to scope zoom to only IE6,7. fixes #710 2011-08-20 20:08:52 -07:00
Divya Manian
d2223de26a Merge branch 'master' of https://github.com/roblarsen/html5-boilerplate into closurecompiler 2011-08-20 19:44:44 -07:00
Rob Larsen
8cbb3e7155 moved the two options (warning_level and compilation_level) into the properites files 2011-08-17 22:03:33 -04:00
Paul Irish
7467f9c041 script.js and style.css both retain their path prefix when being swapped out for the concatenated/minified versions.
by @darktable.
https://github.com/paulirish/html5-boilerplate/pull/705

fixes #705.

Squashed commit of the following:

commit 6a77f5ad7e
Author: calvin <calvin@darktable.com>
Date:   Tue Aug 16 21:12:10 2011 -0700

    adding file.root.script property to default.properties

    this allows people to rename script.js and not have to hack through
    build.xml to keep everything working.

commit 27011c0a1a
Author: calvin <calvin@darktable.com>
Date:   Tue Aug 16 20:51:48 2011 -0700

    revert to normal css and js paths

    had testing paths in the previous commit.

(and some other merge happiness)
2011-08-17 16:14:07 -07:00
Rob Larsen
3233fdeeec issue #658 switch to Closure Compiler for js minification 2011-08-17 12:42:24 -04:00
Paul Irish
2aabc1a276 Merge pull request #697 from nwtn/master
Typo in index.html
2011-08-16 12:22:21 -07:00
David Newton
c8b87abd01 Comment typo: "an manifest" -> "a manifest" 2011-08-16 15:14:10 -03:00
Divya Manian
94b065fb97 okay so it uses the css.sha to replace just style.css to sha.css now 2011-08-15 23:51:52 -07:00
Divya Manian
9fe23b3f82 removed css prefixers, doing this with regex now. Updated regex to not add another /css/ 2011-08-15 23:37:13 -07:00
Paul Irish
c4ef2f3810 build script: tweak script replacement regex for whitespace. Thank You @kevva !
@kevva wins the award for fastest bug report. 118 minutes after a bug was committed,
  he reported it in #html5. And then I was a dunce and couldn't identify the fix
  and so he provided that too.

Not a trivial bug either.

Best bug reporter ever. :D

--

This is a fix for 2fb6ac3369...bf52178981 (L2R62)
2011-08-15 11:52:53 -07:00
calvin
2fef4ad3ee concatenated style.css retains the prefix from the pre-concat style.css.
fixes #686
2011-08-15 10:43:58 -07:00
Paul Irish
20976f7af4 minor. comment wording cleanup. 2011-08-15 10:39:06 -07:00
Paul Irish
64561534a6 kill off misleading css concat statements. build script docs will more clearly illuminate how css concat/importing works.
fixes #687
2011-08-15 10:10:08 -07:00
Paul Irish
bf52178981 Merge pull request #685 from drublic/master
Prefixing CSS/JS resources automatically, idea from @drublic, technique from @darktable
2011-08-15 09:42:11 -07:00
drublic
e1702af5ee Make gae_css.dir property available to use prefixes for any build type
Thanks to @darktable for commit 67d427c1a9

Signed-off-by: drublic <hans@sa-designz.de>
2011-08-15 10:09:04 +02:00
drublic
014b6d4153 Revert "Add option to prefix CSS and JS references in buildscript"
This reverts commit b139b59797.

Signed-off-by: drublic <hans@sa-designz.de>
2011-08-15 10:05:47 +02:00
drublic
b139b59797 Add option to prefix CSS and JS references in buildscript
Syntax: add `(prefix: /file/to/dir/)` in comment before reference
Signed-off-by: drublic <hans@sa-designz.de>
2011-08-14 20:53:16 +02:00
drublic
6c1e80d6dd Whitespace in comments surrounding CSS and JS references
Add whitespace before closing tags of comments surrounding CSS and JS references to maintain consistency with other comments

Signed-off-by: drublic <hans@sa-designz.de>
2011-08-14 20:50:52 +02:00
Paul Irish
2fb6ac3369 Merge pull request #682 from anthracite/cleanup
whitespace .. global code cleanup.. random protip: I use `git gui blame filename.ext` because the git gui has a Blame Previous Commit feature so i can go back beyond the blame commit it found. Useful with commits like this.
2011-08-14 11:25:49 -07:00
Martin Balfanz
50daa07400 Added blank lines to script.js 2011-08-14 20:18:14 +02:00
Mathias Bynens
b44a12d78c Enable gzip compression for favicons. Closes #684. 2011-08-14 11:04:32 +03:00
Martin Balfanz
fa785e0ef0 global code cleanup
includes: - tab removal from html/css
          - fixing indention
          - removing unnecessary whitespaces
2011-08-13 16:19:01 +02:00
Nicolas Gallagher
c86f2b52c0 Remove excess space around radio and checkbox in IE8/9 2011-08-13 02:55:02 +01:00
Paul Irish
0062417c59 Merge pull request #681 from philipvonbargen/master
@import url() starting with // did break build process
2011-08-12 08:53:05 -07:00
philipvonbargen
98e4ca1edf @import urls in the CSS starting with "//" were breaking the build process 2011-08-12 17:31:31 +02:00
Mathias Bynens
21933ec1ee Simplify .gitattributes. Thanks, @jeffbyrnes! See 7f31896fd4 (commitcomment-525963) for more details. 2011-08-11 14:29:58 +03:00
Mathias Bynens
85d8cc0ac0 Check if mod_autoindex.c is available before disabling the Indexes option. Fixes #676. Thanks, @sstok! 2011-08-11 12:42:35 +03:00
Nicolas Gallagher
1311138f3e Update monospace font stack fix to work in Safari 4 2011-08-11 10:40:27 +01:00
Divya Manian
1b3690933e Merge pull request #671 from chendrix/master
Clarified the wording on the new Modernizr build with Respond.js
2011-08-10 15:32:45 -07:00
Christopher Hendrix
b87096669b Clarified wording on the custom Modernizr build containing Respond.js 2011-08-10 18:29:28 -04:00
Paul Irish
7344d57029 Merge pull request #669 from SlexAxton/master
Defer chromeframe too.
2011-08-10 12:17:32 -07:00
Alex Sexton
060315b591 Add the defer attribute to the CF scripts at the bottom. 2011-08-10 14:12:08 -05:00
Divya Manian
5f2b327595 Adding Gavrismo to contrib list 2011-08-10 10:30:43 -07:00
Paul Irish
1e79f7b7df update readme. :) 2011-08-10 00:17:59 -07:00
Paul Irish
c6dbb2892b appcache improvements. :) details below:
* reduce extra code via <isset>
* `manifest` becomes its own ant task now
* html files are populated into the manifest based on ant config
* add manifest attribute to the HTML tag via Ant. So only the config switch is neccessary
* appcache back to disabled by default. toggling it on in config/project.properties is all that's neccessary
2011-08-09 23:07:03 -07:00
Paul Irish
c996f0e685 manifest: js files now include path, correctly. manifest file now named manifest.appcache. 2011-08-09 22:09:45 -07:00
Paul Irish
f10f81a241 build script: manifest improvements (and others).. details:
manifest:
* use a manifest template from build/config/cache.appcache each time
* the only css we are dropping in is the style.css (SHA'd), no more
* we include all js/mylibs/bypass files and all js/libs/*.min.js files
* change default name of manifest to `cache.appcache` but im gonna change it to `manifest.appcache` next commit ;)
* state of repo temporarily includes a manifest but that will revert soon

other:
* rename libs-concat.js to mylibs-concat.js for logic's sake
* add @defer attribute to concated script
2011-08-09 21:59:47 -07:00
Paul Irish
00be05ad18 minor. whitespace in build script following manifest commit (with tabs! omg!) 2011-08-09 19:53:52 -07:00
Nicolas Gallagher
5fe1dda97c Make .hidden class more robust. Update a couple of helper class links to point to better and/or more up-to-date explanations. 2011-08-10 02:10:06 +02:00
calvin
113c98f849 excluding the mylibs directory was preventing minification/concatenation of libs. 2011-08-09 16:50:46 -07:00
Paul Irish
341992913b Merge pull request #652 from gmoulin/master
appcache manifest generation via Ant
2011-08-09 16:49:07 -07:00
Mathias Bynens
1c9145c9a7 Correct Modernizr reference in the test file. Fixes #662. Thanks @jaimie-van-santen! 2011-08-09 15:46:33 +03:00
Mathias Bynens
e13f5c4b37 Add a note saying php_flag expose_php Off should be moved to php.ini since it doesn’t work in .htaccess files. Closes #611. 2011-08-09 10:25:10 +03:00
Paul Irish
d9cc711ea1 google analytics now uses Modernizr.load/yepnope for great justice. fixes #542 2011-08-08 23:03:16 -07:00
Paul Irish
55a7fc2466 Merge pull request #646 from ngryman/master
generic rewrite rules (for virtual host context)
2011-08-08 22:52:06 -07:00
Paul Irish
99e140ded4 Merge pull request #659 from Zearin/patch-1
Mostly lots of <code> additions for consistency.  (I think it also
2011-08-08 08:34:37 -07:00
Tony
b77d30c2f0 Mostly lots of &lt;code&gt; additions for consistency. (I think it also enhances readability, so inline code snippets are obvious.) Few minor capitalization & typographical fixes. 2011-08-08 11:46:58 -03:00
Paul Irish
b191777977 @import inlining should skip anything starting with http.. fixes #657 2011-08-07 18:28:54 -07:00
Divya Manian
6241a72722 Fixing typo in .htaccess file 2011-08-07 18:23:52 -07:00
Paul Irish
2db692e752 build script. flexibility in @import syntax parsing. fixes #649 forreal forreal 2011-08-05 09:20:29 -07:00
Guillaume Moulin
6c5b7719a6 optionnal manifest declaration 2011-08-05 13:44:00 +02:00
Guillaume Moulin
a314d2a374 modifications for manifest awareness in build.xml
with variables in project.properties for handling manifest file name,
javascripts files names and stylesheets files names

the javascripts files will be replaced by the concatened and minified
version
idem for the stylesheets
2011-08-05 13:24:11 +02:00
Guillaume Moulin
a81061aa37 modifications for manifest awareness in build.xml
with variable in project.properties for handling manifest file name

the javascripts files replaced are those concatened and minified by the
build
idem for the stylesheets
2011-08-05 13:00:13 +02:00
Guillaume Moulin
0d4f6b5261 Merge remote-tracking branch 'upstream/master'
Conflicts resolved:
	build/build.xml
	index.html
2011-08-05 10:58:57 +02:00
Guillaume Moulin
a556e26cb5 changes for site.manifest awareness 2011-08-05 10:50:39 +02:00
Paul Irish
cde1dc4f5c build script. flexibility in @import syntax parsing. fixes #649 2011-08-04 17:13:23 -07:00
Paul Irish
601fbc59e4 build script. flexibility in @import syntax parsing. fixes #649 2011-08-04 16:41:53 -07:00
Paul Irish
28b1ca4b8c build script. slightly cleaner css comment style, because we can. credit: darktable, again. 2011-08-04 16:39:46 -07:00
Nicolas Gallagher
ce89a01bef Separate [hidden] from .hidden helper class. Slight tidy up of CSS comments and consistently use h5bp.com shorturl throughout the file 2011-08-03 10:44:29 +01:00
Nicolas Gallagher
7b95c57e2d Remove webkit-overflow-scrolling inserted after a merge. See #577 2011-08-03 09:34:55 +01:00
Nicolas Gallagher
44bc2bdbf2 Leave default webkit-tap-highlight-color in place. Modify vertical alignment of td. Add a:hover color. 2011-08-03 09:32:56 +01:00
Nicolas Gryman
00d8b84570 generic rewrite rules (working in virtual host context) 2011-08-02 18:12:28 +02:00
Paul Irish
458cd36309 build script. protect legacy stylesheets from being consumed and digested by the css-split task. thx darktable. 2011-08-01 23:43:52 -07:00
Paul Irish
586dc13ee3 build script. update @import regex for max compat. 2011-08-01 23:08:23 -07:00
Paul Irish
4238aed87d Merge branch 'css-split' 2011-08-01 22:49:13 -07:00
Paul Irish
a48bd3ebaf Merge branch 'css-split' of https://github.com/darktable/html5-boilerplate into css-split 2011-08-01 21:29:32 -07:00
calvin
19450d9d59 using ==|== syntax to mark export delimiters 2011-08-01 21:21:38 -07:00
calvin
7fca5a5adf using ==|== syntax to mark export delimiters 2011-08-01 21:20:59 -07:00
Paul Irish
7668263695 improved gzip detection for turtletappers. thx @bluesmoon and @marcelduran. fixes #624 2011-08-01 14:40:11 -07:00
Paul Irish
d15376de77 merge in latest darktable. 2011-08-01 13:20:59 -07:00
Mathias Bynens
413822acbc Update demo pages so they use the smaller viewport <meta>. 2011-08-01 15:03:18 +02:00
calvin
11158f1bc4 the css-split method was using @import syntax that isn't standard. 2011-07-31 22:50:25 -07:00
calvin
0b15ec7d6d now the "url" chunk of the @import is optional. 2011-07-31 22:29:19 -07:00
calvin
05d83fcfeb there was a rogue "url" in the replacement regexp. 2011-07-31 22:13:40 -07:00
Gavrisimo
53f28cf87d moved border rule to .ir ruleset 2011-08-01 11:53:58 +08:00
Gavrisimo
4c9e90e730 added small fix for buttons and inputs that have .ir class 2011-08-01 11:53:58 +08:00
Jonathan Fielding
c537194736 jQuery updated to 1.6.2 2011-08-01 11:53:58 +08:00
Rob Larsen
fd345072df Added a task to test for ant version and fail (with instructions) if it's below 1.8.2. 2011-08-01 11:53:57 +08:00
meleyal
51d121e79a fix formatting 2011-08-01 11:53:57 +08:00
meleyal
777f14fa93 remove redundant color rule 2011-08-01 11:53:57 +08:00
meleyal
0a7a6f82bf also use black for links when printing, refs #147 2011-08-01 11:53:57 +08:00
Robert Ros
2792309862 Use substring matching in gzip filter_module and re-enable gzip for some common MIME-types 2011-08-01 11:53:56 +08:00
Robert Ros
976fc0f9ba Workaround for broken regexes in mod_filter
More info: #549
Fixes: #441 #499 #535
2011-08-01 11:53:56 +08:00
darktable
aee2fa8f29 fixes issue where I was including the for task using a namespace 2011-07-31 20:41:05 -07:00
Paul Irish
73f6f66039 minor. buildscript whitespace. 2011-07-31 19:51:50 -07:00
Paul Irish
e7e087854b merged in darktable's css-split branch. 2011-07-31 19:05:13 -07:00
Paul Irish
b14b4a60d1 Normalize javascript mimetype to application/javascript. Reduces cruft. Thx @danbeam for the work. Fixes #485 2011-07-31 18:50:38 -07:00
Paul Irish
8b168ad3b1 Merge pull request #642 from roblarsen/master
two changes for issue  #615
2011-07-31 18:49:20 -07:00
Rob Larsen
f2f59b04ec added a quick example to the file.bypass.js explanation 2011-07-31 19:44:10 -04:00
Paul Irish
727ef92941 htmlcompressor up to 1.4.3 because he fixed #550, #641 for us. \o/ 2011-07-31 15:23:01 -07:00
Mathias Bynens
5c97f98709 Smaller viewport <meta> — 1 is the new 1.0. 2011-07-31 23:32:30 +03:00
Paul Irish
41246db22b build script: htmlcompressor preserves SSI comments by default. fixes #640, #503. 2011-07-31 12:06:15 -07:00
Rob Larsen
3611b4c4e0 issue 615 "files.bypass does not work." It was a case of unraveling where/when the scripts were getting copied over and changing the way, slightly, that the excluded file list was fed to the script. 2011-07-31 09:12:28 -04:00
Nicolas Gallagher
299291e6be Add defer where possible to demo page scripts. Ref #542 2011-07-31 11:26:32 +01:00
Nicolas Gallagher
0d1c066177 Update demo pages to use modernizr 2.0.6 custom build including respond.js 2011-07-31 11:01:32 +01:00
Paul Irish
ffb7b8e359 update to htmlcompressor 1.4.2. fixes #608 2011-07-30 20:11:42 -07:00
Paul Irish
401e66acb4 script defer added where possible. H5BP is now faster!! thx @beverloo. fixes #542 2011-07-30 20:05:07 -07:00
Paul Irish
e49793fdc9 upgrade modernizr to 2.0.6 custom build including respond.js. 2011-07-30 19:53:03 -07:00
Paul Irish
a36c13a732 update the (disabled) SSI for better windows compatibility. fixes #628. code from @aldomx. 2011-07-30 19:40:59 -07:00
Paul Irish
9a6433f92f Vary: User-Agent is no more. We send our X-UA-Compat to everyone, but only for html payloads.. fixes #414 2011-07-30 19:22:39 -07:00
Paul Irish
bd88d3e457 update htmlcompressor to 1.4.1 from 1.1. Outstanding issue upstream but tracked in #608 2011-07-30 19:21:29 -07:00
Paul Irish
58816dd249 golf down the size of @kirbysayshi's log() improvement. ref #498.
I steal log's apply method instead of reaching all the way into Function.prototype.apply.. timesaver and bytesaver. just really ugly.
And then a nasty ( omg ? ternary : action); as a statement. But hey.. sometimes you feel like a nut.

kirby, plz code review this. :p
tested in Chrome 14.
2011-07-30 17:32:47 -07:00
Paul Irish
8175a1c468 console.markTimeline() is now console.timeStamp(). http://webk.it/63317 2011-07-30 17:19:20 -07:00
Paul Irish
ebe10aef34 improve the console.log nerfing for ff3.6. thx @drewcovi. fixes #455 2011-07-30 17:19:20 -07:00
Paul Irish
e52f6af093 Merge pull request #498 from kirbysayshi/master
log() arguments are no longer wrapped in extraneous array
2011-07-30 17:19:04 -07:00
Nicolas Gallagher
559bc56768 Re-fix IE6/7 list-style:none problem. See #263 2011-07-30 15:56:26 +01:00
Mathias Bynens
78641b530f Change the short URL for more <head> tips to something that works in all browsers. Fixes #631. 2011-07-27 19:55:38 +03:00
Paul Irish
6fee66d751 more docs for php_flag html_errors Off. thx @leek. fixes #622 2011-07-23 19:25:54 -07:00
Shi Chuan
c23caaf1d8 #614 changed replace directory to intermediate 2011-07-24 01:24:03 +08:00
Paul Irish
b4229a4d49 Merge pull request #619 from Phize/patch/3
allow access from all domains for .ttc webfont.
2011-07-22 10:56:05 -07:00
Phize
3f3f95de4e allow access from all domains for .ttc webfont. 2011-07-23 02:08:21 +09:00
Phize
acdae81735 add settings for Atom. 2011-07-22 10:00:53 -07:00
Nicolas Gallagher
7f52ddf680 Reintroduce search input normalization. Avoids significant WebKit styling limitations. 2011-07-22 17:22:49 +01:00
Nicolas Gallagher
dc1604c697 Ensure IE6 applies styles for <audio>, <canvas>, and <video>; ensure modern browsers hide <audio> without controls 2011-07-20 20:38:37 +01:00
Nicolas Gallagher
d965db4c5e Add {background-color: transparent} to .ir helper class. Removes default background-color from elements like <button>. Ref #609 2011-07-20 14:56:51 +01:00
Nicolas Gallagher
f78016f555 Make HTML5 [hidden] attribute hide an element from screenreaders and browsers that support the attribute selector. Close #607 2011-07-20 14:27:48 +01:00
Mathias Bynens
c72a81c5e9 Use example.com instead of domain.com, as per RFC 2606. Fixes #613. 2011-07-20 02:03:51 -07:00
Mathias Bynens
639cb05ba0 Typo. Fixes #612. 2011-07-19 23:16:45 -07:00
Nicolas Gallagher
5416bcd103 Add {resize: vertical} to <textarea> 2011-07-16 11:46:46 +02:00
Divya Manian
37446e28af Merge pull request #599 from Gavrisimo/master
Fix buttons and inputs that have .ir class attached
2011-07-12 10:09:09 -07:00
Nicolas Gallagher
a709725b06 Set {overflow:auto} for <button> and <input> in <table> in IE6/7. Avoids numerous layout and whitespace issues that result from setting {overflow:visible} to fix the odd inner spacing of those form elements. 2011-07-12 14:00:11 +02:00
Nicolas Gallagher
d3dc77b211 Add link to CSS wiki in style.css. Close #575 2011-07-12 13:54:04 +02:00
Mathias Bynens
7db1acaeb5 Follow the H5BP coding style guidelines for quotes. http://h5bp.com/docs/#The-markup 2011-07-11 03:00:55 -07:00
Gavrisimo
29c7e128cd moved border rule to .ir ruleset 2011-07-09 21:32:23 +02:00
Gavrisimo
09a8c715cb added small fix for buttons and inputs that have .ir class 2011-07-09 20:53:16 +02:00
Divya Manian
536b6ace6b Merge pull request #595 from rros/master
Modify apache mod_deflate .htaccess triggers
2011-07-06 06:20:28 -07:00
Mathias Bynens
f4a43fd2e4 Merge pull request #596 from jonathan-fielding/master
jQuery Updated to 1.6.2
2011-07-06 04:17:30 -07:00
Jonathan Fielding
c80cc610e2 jQuery updated to 1.6.2 2011-07-06 12:15:11 +01:00
Robert Ros
fca04b1e3e Merge remote-tracking branch 'rmsr/master'
Conflicts:
	.htaccess
2011-07-06 00:48:08 +02:00
Divya Manian
e150d87944 updating csslint to latest version 2011-07-05 15:26:41 -07:00
Divya Manian
b131981d84 Now you can set images.bypass with a list of image files or folders within the img directory that you do not want to be optimized. Fixes #564 2011-07-04 13:56:44 -07:00
Divya Manian
d19dea0572 1. Added a bypass option that lets you bypass certain folders/files in mylibs dir. 2. Cleaned up the human error fix from yesterday to use if else conditions like rest of the targets. 3. Cleaned up usage of mylibs to refer to dir.js.mylibs everywhere 2011-07-04 12:54:51 -07:00
Divya Manian
f5e2524c96 Merge pull request #593 from roblarsen/master
Test for ant version to head off problems with ant < 1.8.2
2011-07-04 07:55:01 -07:00
Rob Larsen
3fb77e0cfa Added a task to test for ant version and fail (with instructions) if it's below 1.8.2. 2011-07-04 10:04:45 -04:00
Divya Manian
e3367bc021 removing concatinated css files from wherever they are linked to with link tag. Fixes #452 2011-07-04 01:42:37 -07:00
Divya Manian
e12930a242 removing unnecessary check on -clean for -invalid 2011-07-04 01:01:25 -07:00
Divya Manian
8e0864f509 with great trepidation I have tested this build conditions to make sure these values ., .., ./, ../, / for dir.publish do not result in a successful build. I have tested all the combinations. Fixes #393 2011-07-04 00:49:33 -07:00
Paul Irish
93f0e38c51 update chromeframe install to 1.0.3. thx @davidmurdoch. 2011-07-01 12:27:19 -04:00
Nicolas Gallagher
705493215e Merge pull request #586 from meleyal/print-styles
Use black for links when printing, refs #147
2011-07-01 09:13:48 -07:00
meleyal
02e749a3f4 fix formatting 2011-06-29 22:58:33 +02:00
meleyal
d9146777db remove redundant color rule 2011-06-29 22:52:19 +02:00
Paul Irish
f7da334d36 Merge pull request #589 from BrunoDeBarros/master
csslint without whitespace
2011-06-29 13:03:44 -07:00
Bruno De Barros
8628fef73e csslint
Does the same as https://github.com/paulirish/html5-boilerplate/pull/567 but without the whitespace, as per @paulirish's request.
2011-06-29 20:58:36 +01:00
meleyal
35872f2e58 also use black for links when printing, refs #147 2011-06-29 13:00:10 +02:00
Mike Almond
ddd7ae43a5 Updating TTF mimetype to fix Google Chrome warning 2011-06-28 20:46:08 -07:00
Divya Manian
954d45cbcb added vertical-align: middle to fix borders on image containers. Fixes #440 2011-06-28 20:29:49 -07:00
Paul Irish
f569ad9813 Merge pull request #585 from rros/master
Workaround for bug in mod_filter

Fixes #441. Fixes #499. Fixes #535.
Closes #549. (the grouping ticket)
Ref #576 (the similar PR)
2011-06-28 17:25:47 -07:00
Robert Ros
210fbe0947 Merge remote-tracking branch 'upstream/master' 2011-06-29 01:13:10 +02:00
Robert Ros
86581681eb Use substring matching in gzip filter_module and re-enable gzip for some common MIME-types 2011-06-29 01:12:12 +02:00
Paul Irish
26a391c60d Revert "Added native iOS inertia scrolling" Details below:
We had discussion here: fbfbbd5dad
and here: https://github.com/paulirish/html5-boilerplate/pull/577

And @irae's explanation helped clarify why this is a bad call as a default:
https://github.com/paulirish/html5-boilerplate/pull/577#issuecomment-1444977

Thanks everyone for weighing and sorry for jumping on the excitement train a bit too fast! :)

This reverts commit 14ba59535e.
Ref #577
2011-06-26 22:26:18 -07:00
darktable
b125225228 added css-split task to split a tagged css file into multiple files
added 'css-split' task to build.xml and changed style.css back to the main version, with "- h5bp-export: filename - " tags in it to allow automated splitting into root file with @imports and satellite files.
2011-06-26 13:15:14 -07:00
Nicolas Gallagher
b61671ccc6 Merge pull request #580 from thatcoolguy/master
Format svg ruleset the same way other rulesets are formatted
2011-06-26 09:43:17 -07:00
Frank
91f39213da changed svg formatting 2011-06-26 12:48:44 -03:00
darktable
036b1e5e4b more robust @import regexp. 2011-06-25 22:15:08 -07:00
darktable
401250356e swapped style.css for property name ${file.root.stylesheet}
swapped to property name to make the build process more flexible.
2011-06-25 20:08:14 -07:00
darktable
2d09367d64 another experimental method for concatenating css files
This build converts the @import statement in style.css to tags that are then swapped for the file contents.
It also converts the media types after the import to @media ... {} style tags.
2011-06-25 19:38:14 -07:00
darktable
0928889ddc new way to concat css files together
adding css/concat directory with the css files named in the order they should be included.
the build script then concats these files in alphabetical order and replaces their block with the concated file using the same method as the .js swap (looks for the surrounding comments).
2011-06-25 12:53:03 -07:00
Paul Irish
fbfbbd5dad Merge pull request #577 from joeybaker/master
Added native iOS inertia scrolling (avaliable in iOS5 beta2)
2011-06-25 12:28:32 -07:00
Joey Baker
14ba59535e Added native iOS inertia scrolling (avaliable in iOS5 beta2) 2011-06-25 12:11:28 -07:00
Robert Ros
6edd2cb9b2 Workaround for broken regexes in mod_filter
More info: #549
Fixes: #441 #499 #535
2011-06-25 11:55:11 +02:00
Mathias Bynens
5e26749118 Encourage people to send the X-UA-Compatible HTTP header instead of leaving it in the HTML, to avoid edge case issues. Fixes #378. 2011-06-24 12:00:32 -07:00
Paul Irish
b84c9aeb50 Merge pull request #573 from retlehs/master
protocol-relative URL for Chrome Frame install prompt
2011-06-23 22:39:52 -07:00
Ben Word
4c8e51a459 protocol-relative URL for the Chrome Frame install prompt 2011-06-23 23:08:35 -06:00
Paul Irish
8ace459e0e move chromeframe to bottom of page after the other scripts. also reference exact version # for higher expires headers. 2011-06-23 21:13:25 -07:00
Paul Irish
c03be7e137 Merge pull request #572 from adeelejaz/upstream
Prompt IE 6 users to install Chrome Frame. #495
2011-06-23 21:09:24 -07:00
Adeel Ejaz
bca1d30716 Prompt IE 6 users to install Chrome Frame. #495 2011-06-24 01:47:06 +01:00
Paul Irish
82c2125692 Merge pull request #570 from botskonet/master
very minor gitignore additions of textmate project folder, and older CVS folders
2011-06-23 09:20:48 -07:00
Mike Botsko
5572931889 adding back in lost sass_cache gitignore 2011-06-23 08:58:18 -07:00
Shi Chuan
b37d518d81 removed trailing slash redirects in htacess
a wiki page is created for people who want to use it: https://github.com/paulirish/html5-boilerplate/wiki/Proper-usage-of-trailing-slash-redirects
it is also under the Make it better section of the wiki https://github.com/paulirish/html5-boilerplate/wiki/Make-it-better
this has been discussed at many issues/tickets/mailinglist posts #493 #515
2011-06-23 22:57:34 +08:00
Paul Irish
d5d05a36cd if you type <input type=search> then you're getting a search input. ohmagawd. 2011-06-22 21:21:02 -07:00
Mike Botsko
94c63ee571 adding textmate project and CVS folders to gitignore 2011-06-22 15:21:35 -07:00
Nicolas Gallagher
b49ca17032 Add <svg> overflow fix for IE9. Group <img> and <svg> rules in an 'embedded content' section of CSS file. Add {cursor:pointer} to <label> element. 2011-06-21 18:53:11 +01:00
Nicolas Gallagher
6aba703c89 Add <img> and <svg> to elements.html 2011-06-21 18:49:34 +01:00
Nicolas Gallagher
73b878bf9e Merge branch 'master' of github.com:paulirish/html5-boilerplate 2011-06-21 00:36:34 +01:00
Nicolas Gallagher
ddaf66a515 Major: Now using css normalization instead of css reset + building up default styles
We're pulling in http://github.com/necolas/normalize.css/ developed by Nicolas Gallagher along with Jonathan Neal.

normalize.css retains useful browser defaults and includes several common fixes to improve cross-browser (desktop and mobile) styling consistency.

Lots of research has gone into normalize, verifying what are the default user agent styles provided by each browser. We can very specifically change only the ones we need to instead of the bulldozer approach.

Why this is great news:

* Who likes being so damn redudant and declaring: em, i { font-style: italic; }
* By using normalization instead of a reset + building up default styles, we use less styles and save bytes
* Less noise in your dev tools: when debugging, you don't have to trawl through every reset selector to reach the actual style that is causing the issue.
* More details here: http://necolas.github.com/normalize.css/

We're really happy to get user feedback on this, as we think style normalization is a better direction than resetting; and want to make sure you do too. :) Leave a comment here or in the Google Group: http://h5bp.com/group

Fixes #412
Fixes #500
Fixes #534
Closes #456

Links #566
2011-06-21 00:34:58 +01:00
Nicolas Gallagher
e9f342b91f Update HTML elements demo: reduce repetition, remove deprecated elements, add certain HTML5 elements, add more comprehensive collection of HTML5 input types, include different form markup styles, add form elements box-sizing test 2011-06-20 22:11:06 +01:00
Paul Irish
6d8a8ef805 Merge pull request #548 from darktable/master
minify css and js files that are not being concatenated and fix optipng reference.
2011-06-20 11:21:45 -07:00
Divya Manian
31025414e9 Merge pull request #568 from disusered/master
.htaccess comment normalization & ignore .sass-cache in Git
2011-06-20 09:58:41 -07:00
Carlos Rosquillas
4f2003b5fe Added SASS Cache to git exclusion list 2011-06-20 09:39:18 -07:00
Carlos Rosquillas
bfe9a84023 Modified htaccess for consistent capitalization and comment style 2011-06-20 09:35:34 -07:00
Nicolas Gallagher
929eeccc5f Add simpler escape for to demo html files 2011-06-19 23:42:14 +01:00
Paul Irish
2f370b8156 Merge pull request #565 from toddhgardner/patch-1
Added DOCTYPE so Eclipse and other IDE's do not complain about the lack o
2011-06-16 21:45:17 -07:00
toddhgardner
d97a2ff818 Added DOCTYPE so Eclipse and other IDE's do not complain about the lack of schema.
http://stackoverflow.com/questions/363768/disable-dtd-warning-for-ant-scripts-in-eclipse
2011-06-16 20:20:39 -07:00
Nicolas Gallagher
ff68f939b6 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2011-06-15 23:12:45 +01:00
Nicolas Gallagher
1a54c57370 Remove unnecessary units from 0 values in box-shadow. Remove unnecessary h1-6 {font-weight:bold} declaration. Improve white-space consistency. 2011-06-15 23:12:01 +01:00
Mathias Bynens
0b5d68c0af Merge pull request #559 from rdeknijf/patch-1
typo
2011-06-14 08:31:06 -07:00
rdeknijf
bec3000690 typo 2011-06-14 08:25:26 -07:00
Nicolas Gallagher
bc1b720915 Switch to outline:0 for accesible focus treatment. Avoids Opera bug when combined with transitions. Also saves bytes. 2011-06-14 12:35:03 +01:00
Nicolas Gallagher
dab7d7ebc7 Merge pull request #557 from johnattebury/master
Correct comment typo
2011-06-12 03:11:10 -07:00
John Attebury
b4432895b5 typo 2011-06-12 00:32:35 -05:00
Mathias Bynens
7610e41dad Typo. 2011-06-08 11:29:16 -07:00
Mathias Bynens
b10c7c04c4 Simpler escape for </script>. See http://mths.be/etago for more information. 2011-06-07 13:32:25 -07:00
Paul Irish
83f3d6ab09 move tap-highlight to hang with the other hot pinks. 2011-06-06 19:17:47 -07:00
darktable
ef41c51637 updating windows optipng and jpegtran paths to include ${basedir} 2011-06-06 13:47:42 -07:00
darktable
a2c89c0964 removed duplicated block. 2011-06-06 10:18:15 -07:00
Calvin Rien
dc31d7c852 build doesn't fail in mylibs directory doesn't exist.
removed undefined property from css swap regexp.
2011-06-06 10:13:48 -07:00
Calvin Rien
e02dd35b51 minification affects all .css and .js files in /css and /js dirs,
not just the ones explicitly included in concatenation.

using a more flexible regexp to replace style.css in html files.
2011-06-06 10:00:20 -07:00
Audioname
452c2836b2 Merge branch 'master' of github.com:darktable/html5-boilerplate
Conflicts:
	build/build.xml
2011-06-06 09:49:13 -07:00
Audioname
2834081fac Merge https://github.com/paulirish/html5-boilerplate 2011-06-06 09:42:41 -07:00
Mathias Bynens
7f31896fd4 Add .gitattributes. 2011-06-06 08:51:25 +02:00
Divya Manian
9cba6fcae9 Merge pull request #547 from thatryan/patch-1
Removed comment stating closing media query comment was required for respond.js
2011-06-05 00:41:27 -07:00
Ryan
26463fe491 Removed comment stating closing media query comment was required for respond.js. 2011-06-05 00:39:04 -07:00
Mathias Bynens
0a3456758b Fix typo. 2011-06-04 06:06:25 -07:00
necolas
ab3abb63db Update Respond.js to improved, comment-free version. Remove the CSS comments that the old version of Respond required. 2011-06-02 18:48:21 +01:00
necolas
4504c11445 Update demo files to reference Modernizr 2.0 2011-06-02 18:44:29 +01:00
Mathias Bynens
695d2ca304 Encourage people to use a custom Modernizr build containing only the features they need for that particular project. 2011-06-02 01:43:38 -07:00
Mathias Bynens
7b37e95341 Merge pull request #543 from daylerees/master
Modernizr 2.0 Update.
2011-06-02 01:39:32 -07:00
Dayle Rees
7227e7fb27 Updated to Modernizr 2.0 Complete, Production minified. 2011-06-02 09:28:54 +01:00
darktable
fdbbc12871 merging from main 2011-05-31 20:48:42 -07:00
Paul Irish
bad4fb5288 build script: compress all images in subfolders, too. thx calvin rien. 2011-05-30 19:02:45 -07:00
darktable
d9f114c019 added gae.js_dir and gae.css_dir so that App Engine projects can have the correct directory names swapped in their templates.
added a second replace token statement so that "/css/style.css" gets swapped too.
2011-05-30 14:49:12 -07:00
darktable
5c93b03069 swapped "apply rm" for delete task. much faster.
change *.png and *.jpg to **/*.png and **/*.jpg so that optimize commands reach subdirectories.
2011-05-30 14:41:24 -07:00
Ryan Smith-Roberts
c7f763c966 mod_deflate trigger rules modifications
* Add gzip support for xhtml, rss, atom
* Move font & svg compression from FilesMatch to FilterProvider / AddOutputFilterByType
2011-05-28 13:04:07 -07:00
Paul Irish
c24b78462a Merge pull request #530 from brianblakely/patch-1
Issue 482: https://github.com/paulirish/html5-boilerplate/issues/482
2011-05-28 02:06:07 -07:00
brianblakely
3300a6847f Issue 482: https://github.com/paulirish/html5-boilerplate/issues/482 2011-05-27 22:09:28 -07:00
Audioname
347e0c0053 testing123 2011-05-26 15:20:47 -07:00
Audioname
1d0ec96931 Adding properties to project.properties so that
Google App Engine builds don't have "static"
prepended when swapping for minified versions.
2011-05-26 15:02:51 -07:00
Paul Irish
fdb8f6aced Merge pull request #527 from heff/master
Added additional mp4 extensions to MIME types
2011-05-26 11:41:52 -07:00
Steve Heffernan
a30e338dc5 Added m4a (Need it for IE9) and m4v (HandBrake default) MIME types. 2011-05-26 11:18:38 -07:00
Paul Irish
14608f44cf Merge pull request #421 from JoeMorgan/master
Added JSLint target to build script
2011-05-25 15:10:27 -07:00
necolas
cbbaaecc0e Add 'oldie' class to conditional <html> classnames. Fix #522 2011-05-24 20:53:51 +01:00
necolas
7f53f98ec7 Revert "Change our conditional comments around the HTML tag to use a single .oldie class."
This reverts commit e5e057e538.
2011-05-24 20:47:21 +01:00
Paul Irish
b4a91bda9f build script is compatible with php files now. it appears. fixes #392. thx robbyrice. 2011-05-20 14:13:23 -07:00
necolas
e5e057e538 Change our conditional comments around the HTML tag to use a single .oldie class.
http://mathiasbynens.be/notes/safe-css-hacks

We're doing this because that quadruple conditional comment <html> tag definition looks pretty scary and especially when combined with namespace augmenting stuff like Facebook's gross xmlns:fb="http://www.facebook.com/2008/fbml" bullshit.

We are trying to simplify the markup we use in H5BP and a combination of conditional classnames with IE-specific hacks would be much simpler than the markup bloat we currently have.

We'll target IE6 and IE7 specifically with attribute syntax hacks.
http://paulirish.com/2009/browser-specific-css-hacks/


    /* CLEAN NO HACKS */
    div { color: blue; }

    /* HACKS FOR IE */
    .oldie div {
      color: blue; /* IE 8 and below */
      *color: blue; /* IE 7 and below */
      _color: blue; /* IE 6 */
    }

    /* IE6, IE7 - star hack */
    .oldie div { *color: blue; }

    /* IE8 - winning hack */
    .oldie div { color: blue\0/; } /* must be last declaration in the selector's ruleset */

Using these attribute hacks by themselves does not change the selector specificity. If you've worked with a large, long-term codebase, you'll know managing your specificity wisely is critical. Also watch Nicole Sullivan's talks.
2011-05-20 01:32:42 +01:00
Divya Manian
362d0b78d3 Merge pull request #513 from barneycarroll/patch-1
Fix .ir fringe case failure when <br>s are used in the .ir text.
2011-05-19 10:53:22 -07:00
Barney Carroll
bb94ded9f3 Hard breaks in image-replaced text negate the negative text indent. This fix causes line breaks in image-replaced text not to be displayed, fixing the effect. 2011-05-19 08:53:00 -07:00
Shi Chuan
9ee01e94dc moved ETag removal configs closer 2011-05-19 15:10:34 +08:00
Paul Irish
91ff0b8fec Merge pull request #511 from gormus/patch-1
added Header unset ETag
2011-05-18 22:53:23 -07:00
Osman Gormus
1f94b05317 added Header unset ETag
In some servers setting "FileETag None" alone, is not enough. Removing header and setting it to None fixes the issue.
2011-05-18 22:45:11 -07:00
Paul Irish
648026d780 Tweaking our hot pink ::selection based on a suggestion from David Murdoch and research from Adam Diehm.
It is now #fe57a1, which is Festal (adj): pertaining to or befitting a feast, festival, holiday, or gala occasion.

Party!! Party in your webpage! With Festal!!!!

thx also to lexidecimal.com for putting a name to this damn thing and inspiring david to inspire others.
2011-05-18 12:09:51 -07:00
necolas
24f174de59 Fix incorrect paths to Modernizr and Respond in demo pages 2011-05-17 19:24:54 +01:00
necolas
1cec539712 Use minified CDN jQuery by default on demo pages 2011-05-17 19:24:08 +01:00
necolas
b6a8dec0e4 Further quote consistency changes 2011-05-17 19:23:11 +01:00
Paul Irish
0e1c7ba929 Use minified jQuery by default.
While I personally prefer developing with an unminified jQuery (as
it makes debugging easier) I understand that most people don't need that.

So the onus is now on more advanced developers to s/.min.js/.js/
Though they're safe with the build script which will switch the refs back to the min.

And everyone else will default to min'd js, regardless of if they use the
build script.

:)
2011-05-17 09:40:24 -07:00
Paul Irish
f467a7e84b minor whitespace. 2011-05-17 09:38:20 -07:00
Mathias Bynens
c5289aad2b Consistent quotes. Hat tip: @walker. 2011-05-17 09:20:08 -07:00
Paul Irish
4c3301b9cc Merge pull request #505 from jtokoph/master
Fixing broken link to wiki in the changelog
2011-05-16 14:04:23 -07:00
Jason Tokoph
e3d389a171 Fixed URL typo in the changelog 2011-05-16 13:36:59 -07:00
necolas
974d1e2d0b Merge branch 'master' of git://github.com/paulirish/html5-boilerplate 2011-05-15 19:25:58 +01:00
Paul Irish
3522122e31 Merge pull request #502 from sguolin/master
Build script compatibility with Netbeans
2011-05-15 10:59:41 -07:00
See Guo Lin
fb41ccd538 Improved build script compatibility with Netbeans IDE. 2011-05-15 19:15:23 +08:00
See Guo Lin
4bbbfc88de default.properties: added IDE generated files/folders to exclude from build script 2011-05-15 19:14:20 +08:00
See Guo Lin
0c9eec9b52 .gitignore: Filename case correction for Windows generated Thumb.db 2011-05-15 19:13:06 +08:00
necolas
5cad48ced5 Fix #374 2011-05-13 15:39:59 +01:00
necolas
8a3955dae6 Normalize <b> font-weight 2011-05-13 15:05:03 +01:00
necolas
59b993abe9 Update to jQuery 1.6.1 2011-05-13 15:04:11 +01:00
Shi Chuan
b0685726da fixes to pull requests 427 2011-05-13 19:54:50 +08:00
Drew Petersen
0e41abd9e2 formatting style correction 2011-05-12 13:02:27 -04:00
Drew Petersen
caab9d30bd don't wrap all args from log to console.log with array 2011-05-12 12:48:09 -04:00
Nicolas Gallagher
e10e3f04b4 Merge pull request #491 from jphustman/patch-3
typo line 41: buidling a development environment
2011-05-09 01:05:19 -07:00
Jeremey Hustman
98180a91f9 typo line 41: buidling a development environment 2011-05-08 17:50:23 -07:00
necolas
0e2062cb4a Add placeholder CSS MQs for mobile-first approach 2011-05-08 20:50:34 +01:00
necolas
7d792b6845 Add respond.js as part of shift to 'mobile first' approach 2011-05-08 20:42:41 +01:00
necolas
e65c1ad37f Remove icon links in demo files 2011-05-08 20:06:16 +01:00
Divya Manian
9c1188592a Editing the comment for adding touch icons 2011-05-08 11:29:52 -07:00
Divya Manian
1faa76a804 Merge pull request #490 from jamwil/touch-icons
Removing touch icon link tags and retaining only the comment.
2011-05-08 11:28:05 -07:00
James Williams
f4283547f8 Removed redundant icon links and cleaned up the comment 2011-05-08 10:30:16 -06:00
Mathias Bynens
2833b89914 Add Options +FollowSymlinks when RewriteEngine is used. Fixes #489. 2011-05-07 23:42:48 -07:00
James Williams
d284eac8fd Improved the comment. 2011-05-07 22:14:52 -06:00
James Williams
6a71a7e9d5 Added maximum touch-icon support as per http://mathiasbynens.be/notes/touch-icons#sizes 2011-05-07 21:58:28 -06:00
necolas
cf2ee8e826 Update demo tests file 2011-05-07 11:31:54 +01:00
necolas
ef83a0481e Update qunit test page to reference jQuery 1.6 2011-05-07 11:27:31 +01:00
necolas
758f2f4f4c Update elements.html template to match that of index.html 2011-05-07 11:13:37 +01:00
Nicolas Gallagher
e7089e8cf8 Merge pull request #484 from jsma/master
Removed reference to handheld.css
2011-05-05 15:36:58 -07:00
John-Scott Atlakson
8e36358c04 Removed reference to handheld.css now that this has been removed. 2011-05-05 15:32:48 -07:00
Divya Manian
496898500c Merge pull request #483 from jsma/master
Removed dd_belatedpng.js from index.html
2011-05-05 15:32:28 -07:00
John-Scott Atlakson
fe1d2a3f70 Removed dd_belatedpng.js from index.html now that the file has been removed from the project. 2011-05-05 15:24:58 -07:00
necolas
dbed4dacf7 Remove handheld.css and belatedpng fix 2011-05-05 19:04:35 +01:00
necolas
fd2a816d53 Change form element alignments; group and reduce repetition of form element selectors 2011-05-05 18:33:28 +01:00
necolas
a7361c1a13 Remove font:inherit from reset. Fix #451 2011-05-05 18:01:41 +01:00
Divya Manian
3180b3f3dd Merge pull request #439 from clemos/master
trailing slash redirections should be relative
2011-05-04 21:05:16 -07:00
slavic
1a398b3eaf some more security for php - turn off error display and turn on error logging 2011-05-05 11:17:03 +08:00
slavic
61557bbe09 some more security for php 2011-05-05 11:13:33 +08:00
Divya Manian
1d229e42d1 Merge pull request #480 from walker/master
jQuery 1.6 update
2011-05-04 19:39:02 -07:00
Mathias Bynens
d96d5b6c8b Merge pull request #481 from jsma/patch-1
Added Site Speed tracking for Google Analytics.
2011-05-04 12:52:24 -07:00
John-Scott Atlakson
7bc7e96d96 Added Site Speed tracking for Google Analytics.
See => http://www.google.com/support/analyticshelp/bin/answer.py?hl=en&answer=1205784&topic=1120718
2011-05-04 12:51:19 -07:00
Paul Irish
edd1da8572 Merge pull request #478 from Calvein/master.
Moved the ::selection declaration
2011-05-04 12:08:32 -07:00
walker
ffa8bc9438 Updated links for 1.6 2011-05-04 12:17:23 -04:00
walker
c1e3a7e6b4 jQuery 1.6 2011-05-04 11:42:06 -04:00
François Robichet
6ce2a0f9f9 You might tweak the ::selection's color too. 2011-05-04 02:11:53 -07:00
necolas
ac92ae7a5f Update micro clearfix method 2011-04-26 22:59:45 +01:00
Paul Irish
37462b1bcc Merged pull request #469 from leobetosouza/patch-1.
Allow blackberry to read vcards
2011-04-26 12:34:06 -07:00
leobetosouza
fc7d9e1ebb Allow blackberry to read vcards 2011-04-26 12:25:51 -07:00
Mathias Bynens
b2faa1fc3c Add img { max-width: 100%; } to print styles to prevent images from getting cut off.
Hat tip: http://twitter.com/dontcallmedom/status/40413256942235648
2011-04-25 13:18:46 -07:00
necolas
1b78ceb957 Add overflow:hidden to pseudo-elements for clearfix. Avoids edge case of space at top of body in Firefox. 2011-04-21 19:57:53 +01:00
necolas
9a9660b2f9 Tidied up link to clearfix explanation 2011-04-21 17:09:22 +01:00
necolas
5373835d17 Update clearfix to use 'micro' clearfix 2011-04-21 11:32:49 +01:00
Matthew Donoughe
7e5efcc23c change jpeg task so it doesn't run unnecessarily
on my computer, unlike the old warning said, jpegtran was being run even
if the image had not changed
2011-04-16 18:49:47 +00:00
Matthew Donoughe
a2274d1993 copy files last
This slightly simplifies copying because we don't have to exclude png,
jpeg, or html files from the copy stage.
2011-04-16 18:43:57 +00:00
Matthew Donoughe
a59a243eda dd_belatedpng should be dd_belatedpng.min
it comes preminified, and we don't need to minify it again

This also updates the html so that the script is not missing if the
unminified scripts are unavailable on the server

This commit requires a change to existing html files :/
2011-04-16 18:38:39 +00:00
Shi Chuan
c0d3d939d7 Merge remote branch 'danielfilho/master' 2011-04-16 14:54:44 +08:00
Patrick Hall
b62ca34b72 curly quotes hates us 2011-04-14 16:48:55 -07:00
Daniel Filho
5b0dd0f4df fixing the order of stylesheets on build.xml as suggested by @shichuan. Fixes #435 2011-04-14 16:37:03 -03:00
Divya Manian
6ee79bc4ba making nicolas comment less wordy 2011-04-14 12:20:55 -07:00
necolas
72bb744064 Group link styles. Group form styles. Simplify the way input, button, textarea normalisation is done 2011-04-15 03:03:34 +08:00
necolas
0e18366fc5 Add input and button padding fixes for IE and Firefox 2011-04-15 03:03:33 +08:00
AD7six
45cd0378d5 don't add the callee - unless you're going to use it 2011-04-15 01:14:28 +08:00
walker
24b0f14ca0 Added in jquery 1.5.2 2011-04-15 00:55:44 +08:00
Daniel Filho
0843a608eb Put the -strip-console.log right befor all js.* calls on build.xml 2011-04-13 19:07:55 -03:00
Clément
1cf9f7487f removed slash to allow relative redirections 2011-04-12 12:23:07 +02:00
necolas
d2acfe0654 Simplify the conditional comment containing code for IE 9+ and modern browsers 2011-04-09 23:58:31 +08:00
Matthew Donoughe
eab37feb45 fix the recursive concatination properly
don't minify scripts-concat and libs-concat and there won't be a
scripts-concat.min.js to include into the next scripts-concat.js
2011-04-09 05:17:43 +00:00
Matthew Donoughe
f1a8fbf649 don't include scripts-concat in scripts-concat
otherwise your scripts duplicate and pile up
2011-04-08 21:51:20 +00:00
Matthew Donoughe
043491dea5 fix imgcopy 2011-04-08 18:30:24 +00:00
Matthew Donoughe
b817d1758c work around OptiPNG #2671422
delete old optimized pngs because optipng does not support overwriting
2011-04-08 18:29:19 +00:00
Matthew Donoughe
a0ac99a4d9 optimize build process
Intermediate stages are stored in a new intermediate folder, and only
files that should be published are copied into the publish folder.

Files are not deleted at the beginning of every build, and files that
have already been processed will not be reprocessed unless the source
has changed.

Versioned files are referenced by a SHA-1 hash of the content rather
than a build number. This means that changing your HTML and rebuilding
will not cause your users to redownload the same CSS and Javascript, and
a reverted change may cause users to use a copy that was previously
downloaded. It may be better to use only part of the hash so the HTTP
request is shorter.

Cleaning must be done manually to delete unreferenced files, or you will
eventually fill your publish folder with unreferenced files. AFAIK this
is a very hard problem to solve properly with Ant because there's no
file dependency tree available to show which files are not products of
the current build. It's doable by creating a map from source to publish
and excluding those files while deleting everything from publish, but it
may be better to just delete the publish directory?

console.log statements are no longer commented out. The regular
expression responsible did not work properly if there were parenthesis
inside the console.log, and it put comments into the scripts that had
just been minimized, so they weren't really minimal anymore.
2011-04-07 23:10:28 +00:00
Matthew Donoughe
96d7b26406 change the source htaccess rather than updating it 2011-04-07 23:10:28 +00:00
Matthew Donoughe
c35755b8d6 try not to reoptimize the same images every time 2011-04-07 23:09:48 +00:00
Paul Irish
e3007f0b31 nerf the serverconfig manip by checking to make sure it exists. fixes #423 2011-04-07 13:38:30 -07:00
Joe Morgan
2d4ddfeca9 Added JSHint as separate target and added ability to configure options in the project.properites file 2011-04-05 11:48:26 -04:00
Joe Morgan
164dcab88b Added JSHint target (separate from JSLint, so users could call either without having to make edits to the properties file) 2011-04-05 10:53:51 -04:00
Joe Morgan
5ea8b6446b Added JSLint target to build script (runs independently on source JS, excludes *.min.js and libs/*.js files) 2011-04-05 09:15:48 -04:00
Joe Morgan
ce6878eeb4 added comment 2011-04-05 09:11:33 -04:00
Joe Morgan
7ef42605c2 added some globals for rhino functions 2011-04-05 09:09:18 -04:00
Joe Morgan
b736756a92 prettied up the JSLint code 2011-04-05 09:06:51 -04:00
Joe Morgan
3820568da4 added config options to jslint 2011-04-04 21:50:14 -04:00
Joe Morgan
ce7e249ae4 added jslint target 2011-04-04 21:40:49 -04:00
Paul Irish
8185bc313a Update htmlcompressor to 1.1 which uses the new yuicompressor for CSS. fixing a @media query bug (for inline style tags.) 2011-03-30 12:51:52 -07:00
Paul Irish
bb22ca66a8 Remove the cache-busting query parameters from the HTML. Details below:
In case you were wondering what ?v=2 was for.. read this:
http://html5boilerplate.com/docs/#Version-Control-with-Cachebusting

Query param revving is bad news:
http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

Even though that warning is from 2008, I've confirmed with Souders (a few months ago)
that this is still a concern.

The build script automatically revs filenames for you, so this is taken care of.
If you need to manually cachebust, then feel free to add the query params yourself, but
be aware of the small consequences. It shouldn't be a regular thing. ;)
2011-03-30 08:26:45 -07:00
Mike Almond
5b6db9d0bd Disable directory browsing by default 2011-03-29 12:01:22 -07:00
Han Lin Yap
edf9c3fbdb httponly 2011-03-29 22:53:34 +08:00
Gregg Gajic
9b1a477b12 Fix typo in Changelog 2011-03-28 17:55:11 -05:00
Paul Irish
41c657a05a adjust attribution byline. 2011-03-26 16:54:40 -07:00
Samus_
b9341fe4ce protecting against git rev-parse silly behavior on unrecognized options 2011-03-25 23:25:50 -04:00
Samus_
91fa216839 protect commands from weird filenames 2011-03-25 22:55:25 -04:00
Paul Irish
e4edeff4fa Revert "Fixing input type="search" behaviour in Safari by John Lein http://diveintohtml5.org/forms.html thanks to MarcHaunschild and hoopyfrood fixes #396"
This reverts commit 4dc87b52c2.

Based on the conversation here:
https://github.com/paulirish/html5-boilerplate/commit/4dc87b52c2
2011-03-23 13:30:34 -07:00
Shi Chuan
4dc87b52c2 Fixing input type="search" behaviour in Safari by John Lein http://diveintohtml5.org/forms.html thanks to MarcHaunschild and hoopyfrood fixes #396 2011-03-24 00:33:24 +08:00
Shi Chuan
71880dee16 fixed missing letter t in properties files in build tool 2011-03-23 00:49:08 +08:00
Shi Chuan
5c9fa3a83d fixed typo styleshee to stylesheet in build default properties 2011-03-23 00:32:14 +08:00
alrra
19fec34e0d modified the 404 page (it can cause some problems in IE if the user decided to use the html5shiv: e.g.: http://i.imgur.com/iK5ad.png) 2011-03-22 21:49:55 +08:00
Paul Irish
50fb1a7870 update yuicompressor to 2.4.5. fixes media query minification issue.
Basically ...

@media screen and (max-width:980px){

was getting minified to

@media screen and(max-width:980px){

Which webkit was rejecting.. So.. now the updated yuicompressor leaves that space in place.
And all is well with the world.
<3z
2011-03-21 23:19:13 -07:00
Paul Irish
69039d03b9 build script: spruced up the echo messages to make it a little friendlier. 2011-03-20 18:47:13 -07:00
Paul Irish
2fedc604cc createproject shoudl also copy build and test folders. 2011-03-20 16:24:36 -07:00
Dmitry Gladkov
aa3068c8e0 fix createproject.sh directory copying 2011-03-20 15:54:37 -07:00
Paul Irish
7f73ae3d72 build script: go back to yuicompressor for CSS. php dependency is a little awkward. temporary goodbye to css @import inlining. :/ au revoir. 2011-03-20 10:23:53 -07:00
Paul Irish
94cb8195b7 build script: change search/replace to be a global task. 2011-03-20 10:20:27 -07:00
Divya Manian
5b4ddd3a58 updated read me with translators, contributors 2011-03-19 21:34:34 -07:00
Paul Irish
dc5379c0c9 delete build.properties. consider it vestigal. 2011-03-19 15:01:37 -07:00
Paul Irish
828141a41d build script: adjust images path in case folder structure is unique. 2011-03-19 15:01:36 -07:00
David Murdoch
d7d467e69e Replace single-quotes with double-quotes for consistency and to save a few extra bytes during GZIP/DEFLATE compression 2011-03-16 05:50:07 +08:00
jbueza
ff3ed8f402 Fixed demo elements page with whitespace fix. 2011-03-16 05:47:10 +08:00
Marcel Turi
caeb9138fc Description corrections for "Built-in filename-based cache busting" section. 2011-03-16 00:49:03 +08:00
Shi Chuan
17894ff685 added separate task prodcopy to handle buildkit and build with jpgtran 2011-03-08 01:23:23 +08:00
Paul Irish
a39f656d95 Revert " removing demo/ and readme temporarily to tag."
That was just temporary so i could tag the release.

This reverts commit f93c3a5b87.
2011-03-07 00:38:05 -08:00
Paul Irish
f93c3a5b87 h5bp 1.0rc - removing demo/ and readme temporarily to tag. 2011-03-06 23:57:06 -08:00
Paul Irish
6ac62b0846 build script. typo for folder. we werent excluding it from the publish. 2011-03-06 23:53:30 -08:00
Divya Manian
9f7b4b6091 updating links for dependencies in the build script 2011-03-06 23:53:08 -08:00
Paul Irish
28c06a9fb9 build script: css compressor update to handle absolute paths. thx corey for the fix. 2011-03-06 23:36:51 -08:00
Corey Ward
22333ab6e0 Update createproject script to include img/ instead of images/ 2011-03-07 00:15:38 +08:00
Divya Manian
2404601c72 updated woff mime-type in ExpiresByType rule in .htaccess. fixes #349 2011-03-05 21:14:13 -08:00
Paul Irish
56cefd41e4 rename /images/ to /img/. If you're upgrading to the new build script from the old one you'll have to update this path. 2011-03-05 20:53:28 -08:00
Paul Irish
67dfe6f47a build script. strip root favicon reference with replaceregexp instead, due to recent Ant change. 2011-03-05 20:53:28 -08:00
Divya Manian
339c2a64ea adding all the touch icons as per mathias exhaustive post. thnx mathias. fixes #302 2011-03-05 20:35:01 -08:00
Paul Irish
3090a50f72 minor fixes from mike almond's very useful 404 page upgrade. thx mike. 2011-03-05 19:55:52 -08:00
Paul Irish
cdfbffc199 Merge branch 'master' of https://github.com/mikealmond/html5-boilerplate into mikealmond-master 2011-03-05 19:34:50 -08:00
Paul Irish
e81479ba2f add filename revving mapped to real asset into htaccess. (disabled by default). thx marcel. fixes #355 2011-03-05 19:33:33 -08:00
Paul Irish
eb091e9f80 minor. syncing up demo/test files with latest changes. 2011-03-05 19:20:55 -08:00
Paul Irish
a638ad6f0c Revert "kill off plugins.js. "
This reverts commit 937c886b99.

Back due to popular demand. Fixes #357
2011-03-05 19:14:47 -08:00
Paul Irish
cada0b681a simpler local jQuery injection. thx cowboy, snover, mathias. this will break in XHTML, btw. fixes #359 2011-03-05 19:14:20 -08:00
Paul Irish
6a4a1e25b1 build script: handy .bat file for windows users. 2011-03-05 18:52:01 -08:00
Paul Irish
d9801c57e1 build script: enabling css @import inlining. fixing relative path issue.
Sorry Corey. There is probably a better way to do both things. :)
2011-03-05 18:28:16 -08:00
Paul Irish
10ee9c474c build script: update css-compressor to latest version. 2011-03-05 17:36:52 -08:00
Paul Irish
758b714783 build script: jpegtran now works everywhere! Waa hoo!
Also added a jpgcopy task that is used in "text" builds.

Also:
Quieted windows optipng output. More helpful echo's.
Updated to htmlcompressor-0.9.9.jar (1 very minor fix)

Short summary of the jpegtran workaround:
jpegtran doesnt like to overwrite files. It thinks they are already optimized.
So, we exclude JPGs from the copy task at the beginning,
then we copy them over while we chuck them through jpegtran.
Fun.

Fixes #338
2011-03-05 17:29:43 -08:00
Paul Irish
5ed87b9881 build script: jpegtran fun. default to stripping metadata. make the output WORK on mac. Oh and we actually want it to compress the files. :) 2011-03-05 15:59:57 -08:00
Paul Irish
37f0ac6fe3 build script: mega whitespace commit. huge thanks to craigbarnes. 2011-03-05 15:09:11 -08:00
Paul Irish
315586244c build script: quiet the optipng output 2011-03-05 14:49:49 -08:00
mikealmond
598a1c9633 Added Google's enhance 404 widget and some copy to help users understand the error more. 2011-03-02 07:38:54 -08:00
mikealmond
2ea8ab2bec Edited 404.html via GitHub 2011-03-02 07:36:50 -08:00
Paul Irish
b26e8bbd5b remove favicon reference from HTML only if favicon is in the domain root. 2011-03-02 00:07:31 -08:00
Samus_
df5722ee73 fix nonsensical copy process 2011-03-01 11:10:07 -08:00
Samus_
7d39c44830 removing noise from comment 2011-03-01 11:10:07 -08:00
Samus_
8ef7f55c4e fixing indentation 2011-03-01 11:10:07 -08:00
Samus_
b68861f48d adding check for cpio 2011-03-01 11:10:07 -08:00
Samus_
1f60eae914 adding loop to prevent empty $name 2011-03-01 11:10:07 -08:00
Samus_
11827ed646 shebang indicates bash usage, swithing to modern [[ keyword 2011-03-01 11:10:07 -08:00
Samus_
96c1155fa3 changed capitalization of var names (caps are for environment and/or bash reserved vars) 2011-03-01 11:10:07 -08:00
Samus_
5e25d85bcf fixing quotes 2011-03-01 11:10:06 -08:00
Shi Chuan
c13b80dd9c merged build.xml 2011-03-01 22:18:21 +08:00
Paul Irish
937c886b99 kill off plugins.js. Didn't seem to make sense for anyone but me. :) Comment on this commit if you lurve it and want it back. 2011-02-28 22:36:58 -08:00
Paul Irish
c1f064c0fe comprehensive protection against stray console.log()s. thx henrik. fixes #244 2011-02-28 22:33:03 -08:00
Paul Irish
a2c48898b5 more docs for trailing slash problem. 2011-02-28 22:30:12 -08:00
Paul Irish
18be2cf89a Merge branch 'master' of https://github.com/jingman/html5-boilerplate into jingman-master 2011-02-28 22:29:29 -08:00
Divya Manian
6875bb5be7 oops. using old jquery refs from an older pull req. fixed. 2011-02-28 22:05:42 -08:00
Divya Manian
8def09ffda making the world a positive place. thnx aristidesfl. fixes #332 2011-02-28 21:53:49 -08:00
Divya Manian
7a5705b57a window.log enhancement. thnx trevnorris. fixes #313 2011-02-28 21:32:49 -08:00
Divya Manian
2a2f1d6d8b moving lang back to html, also consistent spacing in css. fixes #286 2011-02-28 21:03:06 -08:00
Divya Manian
ce120b5902 killing whitespace: pre-line; does more harm than good. I trust webdevs who use bp to use pre with the care it deserves. fixes #294 2011-02-28 20:51:01 -08:00
Divya Manian
cf4726e7c2 fixing clearfix. fixes #340 2011-02-28 20:34:21 -08:00
Mathias Bynens
b0bb456eeb Update to jQuery 1.5.1. 2011-02-25 14:15:39 +01:00
Shi Chuan
d88d40dd20 fixed jpegtran issue 2011-02-23 23:46:40 +08:00
Andrew Le
e124b48fb0 Friendly error messages when optipng or jpegtrans not installed
On *nix's and Mac OS X display a helpful error message with instructions
and do not fail the build if either optipng or jpegtrans is not
installed or not in the execution path.
2011-02-22 16:49:37 -08:00
Paul Irish
792430393c build script: less verbose html comment required. 2011-02-22 14:12:20 -08:00
Shi Chuan
ccf437a7c2 added DIRECTORY_SEPARATOR 2011-02-23 01:54:50 +08:00
Paul Irish
ad3d734149 Merge branch 'master' of https://github.com/jonathan-fielding/html5-boilerplate into jonathan-fielding-master 2011-02-21 18:11:34 -06:00
Jonathan Fielding
964f1b44a3 Updated modernizr-1.6.min.js to modernizr-1.7.min.js 2011-02-21 20:36:45 +00:00
Jonathan Fielding
899e1a817e Updated modernizr-1.6.min.js to modernizr-1.7.min.js 2011-02-21 15:09:15 +00:00
Paul Irish
7df2afc560 minor. slight tweak to whitespace around the document structure. 2011-02-18 19:58:33 -08:00
Paul Irish
8d402bbe88 bring tweakable styles a little closer to the primary author styles, for usability. & note the protocol-relative URL in use. 2011-02-18 19:51:05 -08:00
kblomqvist
696a6126b7 Add missing ending div-tag in demopage 2011-02-16 18:27:44 +02:00
Shi Chuan
5e69fa5bc6 changed from strrpos to strpos 2011-02-16 21:59:44 +08:00
Paul Irish
6f2d5058f8 Merge branch 'master' of https://github.com/nicpottier/html5-boilerplate into nicpottier-master 2011-02-15 08:40:09 -08:00
Nic Pottier
5b4f0aa34b add a source directory option in the build config. This allows you to put your files in a different directory than the directory immediately above /build. Useful if you have a different layout than is assumed by boilerplate, for example, in Django 2011-02-15 17:28:53 +02:00
Shi Chuan
369e439a0f fixed the CSS Compressor issue 2011-02-15 22:29:35 +08:00
Divya Manian
9b29109f2c Merge branch 'master' of https://github.com/beverloo/html5-boilerplate into beverloo-master 2011-02-15 10:19:12 +01:00
Andrew Le
5bf99e4fef Clean up build targets so target dependencies are resolved correctly 2011-02-14 06:38:32 -08:00
Sam S
eebdfffecb minor alteration to ssi js include illustrate that path should be relative from location of the combined asset file 2011-02-13 16:31:32 -08:00
Sam S
779bc0283e komodo projects files ignore 2011-02-13 16:30:19 -08:00
Paul Irish
993440dd1b Merge branch 'mverbaar-master' 2011-02-12 21:26:26 -08:00
Paul Irish
07e5589e1d Merge branch 'master' of https://github.com/johnbacon/html5-boilerplate into johnbacon-master 2011-02-12 21:24:23 -08:00
Chris Hager
3c97e05b0c fix for build.xml to set version number on minified css filename 2011-02-12 19:07:22 -05:00
John Bacon
20f25adb70 Corrected misspelling. 2011-02-11 19:40:25 -05:00
John Bacon
1b6e010c1a Fixed spelling error in build.properties... 2011-02-11 19:30:02 -05:00
Paul Irish
3a41223daf note: you can add page handlers for 500, 403 errors easily. fixes #299 2011-02-11 14:11:23 -08:00
Paul Irish
2fe0b745d5 caching of .htc files. thx rich. fixes #303 2011-02-11 14:09:19 -08:00
Paul Irish
e75f023662 fix demo/tests script. fixes #304 2011-02-11 14:00:34 -08:00
Paul Irish
d9afd22990 killing superfluous punctuation. 2011-02-11 13:54:17 -08:00
Maarten Verbaarschot
ff29c10051 Standardize comment syntax and grammar. 2011-02-10 00:23:09 +08:00
Maarten Verbaarschot
0729f0abdb Merge branch 'master' of https://github.com/paulirish/html5-boilerplate 2011-02-09 14:07:03 +01:00
Shi Chuan
33139c8012 added default environment in project.properties 2011-02-08 23:48:31 +08:00
Maarten Verbaarschot
84161236ea Adjust Drupal code to Boilerplate code. 2011-02-07 21:14:42 +01:00
Maarten Verbaarschot
7588f53379 Add .focusable helper class that extends .visuallyhidden to allow the element to be focusable when navigated to via the keyboard. 2011-02-07 21:02:37 +01:00
Mathias Bynens
1733fc8acd Update to jQuery 1.5 now that ajax.googleapis.com finally hosts it as well. 2011-02-03 13:23:37 +01:00
Shi Chuan
8c9e80188a removed x in the buildkit prod/test that blocked execution 2011-02-02 17:38:11 +08:00
Mathias Bynens
de50e81376 Use the .appcache extension instead of .manifest, as per http://html5.org/r/5812. 2011-01-31 16:54:11 -08:00
Jake Ingman
70a1c04805 new RewriteCond simplified RewriteRule regex 2011-01-26 19:27:19 -08:00
Jake Ingman
7217a506e7 using better check for file /via paularmstrong 2011-01-26 19:16:38 -08:00
Jake Ingman
cebeb1f81b always add/remove trailing slashes on URLs
http://googlewebmastercentral.blogspot.com/2010/04/to-slash-or-not-to-slash.html
2011-01-26 11:30:14 -08:00
Peter Beverloo
dab3e71f99 Hello world from application/x-font-woff!
- P
2011-01-26 03:14:22 -08:00
Paul Irish
38d79ac945 adding humans.txt. see http://humanstxt.org for more info
fixes #289
2011-01-25 14:10:09 -08:00
ashnur
55495513b7 Bugfix. Header directive appeared without IfModule mod_headers.c causing Internal Server Error when mod_headers was not available. 2011-01-26 05:51:01 +08:00
Paul Irish
15b32829ca build script. fix up a few dependency breaks. Lesson learned: ant depends implies ORDER, not just dependency. 2011-01-23 21:12:07 -08:00
Paul Irish
78f4ec5517 htaccess: block access to .git and .svn folders. 2011-01-23 19:07:43 -08:00
Paul Irish
2496a8e8f1 whitespace formatting in style.css 2011-01-23 19:07:43 -08:00
Paul Irish
46a9bad46b fix incorrect closing tag. thx sammyk! fixes #287 2011-01-23 19:07:42 -08:00
Kenneth Nordahl
80d6d58306 Fixed a spelling error of a name in the thanks
Signed-off-by: Kenneth Nordahl <kenneth@nordahl.me>
2011-01-23 12:32:35 +08:00
Paul Irish
2cdb10c472 Using Corey Hart's css-compressor (php-based) script for our css-min. Stoyan's research has proved it to be the best.
http://twitter.com/#!/stoyanstefanov/status/29517474600
^ was tweeted after he did http://www.phpied.com/css-minifiers-comparison/

Also clarified the text in project.properties and killed off old Optipng files.
2011-01-22 18:37:35 -08:00
Paul Irish
eea85ed4cf build script upgrades the Expires headers for you. 2011-01-22 17:45:25 -08:00
Paul Irish
c50f6e0a7e DRY up htmlcompressor references. Detail on ignoring more files. Fixes #267 2011-01-22 17:02:13 -08:00
Paul Irish
98335ab5a0 build script. os x matches on osfamily=unix, in fact. kill redundant call. fixes #272 2011-01-22 16:57:30 -08:00
Paul Irish
71b308c30a Making the build script happier. Changes below:
1) Production build by default. (like previous version)
2) Main script gets minified correctly (a bug)
3) We were deleting the wrong files (whoops)
4) dir.js.main is now specified (and can be moved around)
5) Did I mention that spaces are always better than tabs because not even tabs people can agree on 2 vs 4 and this causes PROBLEMS gosh damn it. >:|
2011-01-22 16:43:02 -08:00
Paul Irish
3b9dd052fa update build script to account for latest changes. 2011-01-22 12:45:40 -08:00
Paul Irish
b32b3710e2 eradicating chrome console warning on WOFF font downloads. fixes #273 2011-01-20 12:59:36 -08:00
Paul Irish
16e9b7d61c move @lang attribute from HTML elem to BODY. fixes #286
thx davidmurdoch
2011-01-20 12:30:01 -08:00
Paul Irish
5d67f6499a updating htmlcompressor version to address some html minification errors. fixes #279 2011-01-20 12:28:42 -08:00
Divya Manian
d7ed897097 removed outline: 0 inline with Eric Meyer's new reset. 2011-01-19 13:41:34 -08:00
Divya Manian
e9d6b996ee removed the resetting of anchor links. 2011-01-19 13:34:25 -08:00
Divya Manian
31fb49c0fb space crunch 2011-01-19 12:47:45 -08:00
Paul Irish
044bd7c1e7 Applying list-style-image:none to nav ul in all browsers. (Not just IE6+7)
It is actually only neccessary to force the `none` in IE6+7, but for declarative
consistency we'll give it to everyone.

We've documented the little quirk on both the FAQ and Style wiki pages.

This is related to issue #263.

Testcase before: http://jsfiddle.net/9DtcX/2/ after: http://jsfiddle.net/9DtcX/3/
2011-01-19 12:33:22 -08:00
Divya Manian
c5f92fa2af added list-style-image: none to prevent IE7 and 6 from rendering list bg images for nav uls 2011-01-19 10:59:54 -08:00
Divya Manian
6da1bd8b43 Moved helper classes after primary styles to make sure they override author styles. Fixes #265 & #194 2011-01-19 09:23:15 -08:00
timemachine3030
c3175aacea check for mod_headers before calling RequestHeaders 2011-01-19 02:44:57 +08:00
Paul Irish
4971aa0ae0 servertokens doesnt work in .htaccess.. only httpd.conf. 2011-01-14 09:57:00 -08:00
Paul Irish
4b67ea5cab The order of <meta> tags, <title>, and charset has been documented more extensively now:
https://github.com/paulirish/html5-boilerplate/wiki/The-markup see The order of charset, meta tags, and <title>...

Because the boilerplate markup enforces the document structure,
we can intentionally place the charset above the title (and other content)
and avoid the XSS issues that caused the HTML5 spec to specify that
"charset must be in the first 512 bytes".

So even if you throw the xmlns:fb="http://www.facebook.com/2008/fbml" bullshit
into ALL the html tags, and the validator says your document is now invalid
because charset is after the first 512 bytes, we'll.. it's okay. You're still safe.
And so are the kittens.
2011-01-12 13:57:59 -08:00
Mathias Bynens
3c07677ab3 Fixed a typo in the asynchronous Google Analytics snippet and optimized the protocol check. 2011-01-07 13:49:52 +01:00
simshaun
db9da49bb3 Removed comment that seems to have been meant for a specific application. 2011-01-07 00:18:35 +08:00
Paul Irish
4ab1c3d327 ServerTokens Prod added to htaccess. thx alrra. 2011-01-05 14:52:42 -08:00
Paul Irish
e4183675f1 scrunch up the analytics snippet some more. it doesnt need to be so readable IMO 2011-01-05 14:52:42 -08:00
Divya Manian
e7ad33ce89 fixing conflicts 2011-01-03 15:30:03 -08:00
Divya Manian
1f4f4f41d7 Updated reset to latest updates to Eric Meyer's reset css. Removed camelcase from the classname visuallyhidden to be consistent with other classname formats 2011-01-03 15:25:31 -08:00
Paul Irish
342c27d1dc minor whitespace formatting in style.css 2011-01-03 15:19:40 -08:00
Paul Irish
5e3a844b1d removing YUI profiling. you probably weren't using it anyway. 2011-01-03 14:49:20 -08:00
Paul Irish
990e5bdcfb cleaning up what's in plugins.js. no more closure wrap, no more document.write whitelisting. 2011-01-03 14:49:19 -08:00
Paul Irish
9670091104 minor. filename rename. 2011-01-03 14:49:19 -08:00
Divya Manian
b12c895705 removed reset on the image in a table cell as it looks terrible with multiple lines. Browser defaults to baseline alignment for images which works better than top alignment. Fixes #259 2010-12-31 12:42:54 -08:00
Paul Irish
58490fe18c removing qunit's unit tests. no need to ship with them, really. 2010-12-18 20:00:16 -08:00
Divya Manian
2a49d6fb16 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-12-16 10:29:22 -08:00
Divya Manian
4504b435c3 marking HTML5Doctor CSS Reset as Public Domain. WOOOHOO. 2010-12-16 10:28:47 -08:00
Paul Irish
37b5fec090 changing mimetype of .ico files to "image/x-icon". Details follow:
While Wikipedia would lead you to be believe one thing...
  http://en.wikipedia.org/wiki/ICO_(file_format)#MIME_type
... specifically that the vnd.microsoft.icon mime type is correct..

Well that's wrong.

It does work in the address bar, IE can also use an .ico file as an
<img src> in some cases. But it has to be served as image/x-icon
instead.

So thanks a lot wikipedia & jimmy wales' face. Psh.

Thanks a bunch Jonathan Neal. Fixes #219
2010-12-15 10:25:41 -08:00
Paul Irish
977c042164 going back to non-$.getScript'd DD_belatedPNG, due to some messy race conditions. fixes #245 2010-12-14 21:27:42 -08:00
Paul Irish
961ec5435d Moved all server configurations (except apache's .htaccess) over to a new repo:
https://github.com/paulirish/html5-boilerplate-server-configs

This should make things much cleaner for most people who download the boilerplate.
But we'll keep the .htaccess in here as it's the most common setup.
2010-12-14 21:15:51 -08:00
Paul Irish
e5f76306df force deflate for mangled accept-encoding headers 2010-12-13 22:18:42 -08:00
Paul Irish
63d8a6ca86 tightening up michael van laar's apache changes 2010-12-13 22:15:26 -08:00
Michael van Laar
94712defc8 .htaccess: some additional features and more structure for easier readability
I added some features to .htaccess (mostly taken from the MODx CMS sample .htaccess file) as well as a little more structure for easier readability.
I tested most of the features myself (as far as possible). The MODx CMS sample .htaccess is also well tested, so these things should work.

Signed-off-by: Michael van Laar <michael@van-laar.de>
2010-12-07 22:58:08 +01:00
Shi Chuan
c29ae78388 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-12-07 04:16:27 +08:00
Shi Chuan
e7a7e5119e added Flash video mime types to IIS server 2010-12-07 04:09:10 +08:00
Shi Chuan
a623bb284e added Flash video mine types to IIS server 2010-12-07 00:41:01 +08:00
Craig Barnes
eefe8d9b5a Clean up cache expires directives in nginx.conf 2010-12-06 04:23:54 +08:00
Divya Manian
89055740c8 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-12-05 08:34:30 -08:00
Divya Manian
02a5762d5f increased margin-left on ol, to allow for 2-digit list numbers. Thanks MichaelvanLaar. 2010-12-05 08:16:25 -08:00
Jeremy Balch
13a90524b8 added dreamweaver added files to .gitignore 2010-12-05 23:44:50 +08:00
S Anand
211da4667f Ensure that .htaccess works even if mod_headers is not installed 2010-12-05 23:41:19 +08:00
Divya Manian
2db11b3cde added a reset on filters for print styles. fixes #225 2010-12-01 08:43:47 -08:00
Divya Manian
a6885b5125 comment update 2010-12-01 07:23:10 -08:00
Divya Manian
797a347977 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-12-01 07:21:22 -08:00
Divya Manian
7c81999b78 Updated sub/sup css to make them not be impacted by line-height. Fixes #227 2010-12-01 07:20:49 -08:00
Divya Manian
ae070b6802 Updated sub/sup css to make them not be impacted by line-height. Fixes #227 2010-12-01 07:17:07 -08:00
Divya Manian
876673322c implemented some of the formatting changes of craigbarnes. Fixes #220 2010-11-30 21:13:16 -08:00
Divya Manian
f7c3ea6e08 added role to div#main for elemental ARIA. Fixes #204 2010-11-30 20:10:38 -08:00
Divya Manian
07768edc28 Updated visuallyHidden rule to make sure it overrides all other declarations. Thanks Jonathan Neal. Fixes #194 2010-11-30 18:12:11 -08:00
Divya Manian
43c3719cd7 Added comment on tackling transparent PNGs for IE. Fixes #149 2010-11-30 16:10:16 -08:00
Divya Manian
96a53956eb cleaning up print link styles 2010-11-24 12:35:42 -08:00
Martin Hintzmann
093b5d5c97 Do not print hash-links. 2010-11-25 04:32:18 +08:00
Martin Hintzmann
5fc91dfe44 Do not print href-values for javascript links. 2010-11-25 04:32:01 +08:00
Craig Barnes
9cd21210f7 Changed nginx.conf to include SVG and font formats for gzipping 2010-11-23 22:22:26 +08:00
Paul Irish
732779413e Merge branch 'build' of https://github.com/AD7six/html5-boilerplate into AD7six-build 2010-11-19 17:56:50 +09:00
Paul Irish
146dd4fd76 removing disabled mod_pagespeed reference. it doesn't help us out much.
I would much rather promote usage the build script rather than mod_pagespeed. I didn't find anything in there that was particularly useful for us..

i wrote more about it here: http://groups.google.com/group/html5boilerplate/browse_thread/thread/4c832ffcef0da433
2010-11-19 17:46:42 +09:00
Paul Irish
822709f4f6 thumbS.db. lol. thx rizkysyazuli 2010-11-19 17:42:57 +09:00
Paul Irish
8f1245d027 clean up new async DD_belated call. 2010-11-19 17:37:54 +09:00
Jaime Bueza
c956187004 Fixed modernizr path issue. It was 404ing because it didn't have 'libs' 2010-11-19 00:14:33 -08:00
Jaime Bueza
9c9089879c Merge branch 'master' of https://github.com/paulirish/html5-boilerplate 2010-11-19 00:13:20 -08:00
Jaime Bueza
11aec5b373 Updated jQuery 1.4.2 to 1.4.4 in all occurrences of the project. 2010-11-19 00:11:26 -08:00
Paul Irish
379d9233b1 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-11-19 16:31:45 +09:00
Paul Irish
e863583cae update css reset version to what we've been using. 2010-11-19 16:31:34 +09:00
Rob Larsen
773e064e45 cleaning up that mark of the web commit. 2010-11-19 00:41:32 -05:00
Jaime Bueza
bea990b340 Removed test 32bit png from #main as I was testing whether dd_belated png could work through $.getScript(). 2010-11-18 20:56:15 -08:00
Rob Larsen
df1e4b833b oops, forgot the jar 2010-11-18 23:30:49 -05:00
Rob Larsen
9ac07e0e42 Moving the following changes into git
"Dave Kirk just added a bunch of stuff but he's not too sharp on Git so i have it in a zip here....

You can download the build directory from http://dl.dropbox.com/u/9273778/build.zip

    You can now add multiple stylesheets to the project (defined in the project.properties file) and they will be concatenated into 1 file, with any default stylesheets defined in the default.properties file being added at the end.

    Adding new 'pages' (html, php, etc) is handled in the same way and the script should iterate through any files listed here and update the css / javascript references as per the original script

    I have also added the ability to define 'environments' for the build process as this fits in with the way I work. The original targets still exist, and run the same functions, however each target now has a prod, test and dev environment too. This has come at a as it requires using the ant-contrib library and due to the way Ant works you can no longer use the depends model, and the sub targets have to be called with antcall.

Here is how the environments work:

    * dev (default) - Increases build number, cleans and copies the build and optimises any images if the target originally did
    * test - Runs everything that the original target did, however it does not strip the console.log or profiling parts
    * prod - Runs everything the original target did

    To run it you simply use ant <target> -Denv=<environment>

ant build -Denv=prod

    If you don't provide the env variable it will use the development environment, but that would be pretty easy to change to run another environment as default.

    Like I say, it could probably still be improved no end but it is getting to the limits of Ant without writing a java library with extra tasks, which I may look at in the future.."
2010-11-18 23:25:11 -05:00
Divya Manian
decb4b5591 moved the documentation below the meta elements 2010-11-17 07:08:24 -08:00
Divya Manian
850e08efd1 adding more documentation to why charset and X-UA-Compatible meta tags are before the title element 2010-11-17 06:57:24 -08:00
Jaime Bueza
ea80fce0c1 added test image to see if ie6 actually apply transparency to a 24-bit ie logo 2010-11-16 05:02:31 -08:00
Jaime Bueza
d7522e937c added test image to see if ie6 actually apply transparency to a 24-bit ie logo 2010-11-16 05:01:07 -08:00
Jaime Bueza
f19e32e00b Implement async load for dd_belated 2010-11-16 01:56:00 -08:00
Divya Manian
a54714fd0b fixing the filter module to reflect only html, txt, css, js, json, xml, htc 2010-11-11 06:35:49 -08:00
Craig Barnes
4d65b4dcf2 Fixed regression where EOT fonts had been excluded from DEFLATE compression 2010-11-11 21:29:59 +08:00
Divya Manian
5fb5af9fd2 removed rss/atom & MS formats not necessary for generic use 2010-11-10 19:13:10 -08:00
Divya Manian
473af90bdb updated .htaccess regex for filter_module thanks to unwiredbrain 2010-11-10 18:47:20 -08:00
Daniel Schildt
84774e88ae Fixed small typo from README.markdown
URL had extra space character that caused it to point to wrong location.
2010-11-10 00:23:56 +02:00
AD7six
724e24e1b3 typo 2010-11-07 01:42:23 +08:00
AD7six
0d51c7a4e2 ignore more files and folders
add ignores for most common editors so that swap files don't show up as
untracked files.
2010-11-07 01:42:04 +08:00
Craig Barnes
170b0da912 Add note and link regarding best practices for Apache config 2010-11-07 01:25:24 +08:00
Divya Manian
55daf5a0d5 removed \b as per unwiredbrain's latest comment 2010-11-06 09:53:44 -07:00
Divya Manian
9bae730ec3 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-11-06 09:52:18 -07:00
Divya Manian
45cb5a9aef black color prints faster. Fixes #147 2010-11-06 09:49:21 -07:00
Adeel Ejaz
168d2eb7e0 Use mod_filter for compression, with fallback to AddOutputFilterByType directive for legacy versions 2010-11-07 00:11:40 +08:00
Divya Manian
81179481bc reverting comments about double scrollbar as it has nothing to do with boilerplate styles 2010-11-06 09:10:45 -07:00
Divya Manian
a0bbe45a51 added input type=image based on Ivannikolic's suggestion 2010-11-06 07:44:12 -07:00
Divya Manian
af71023adc adding double quotes to all attribute selectors, fixes #174 2010-11-06 07:41:28 -07:00
Divya Manian
9520ab8296 Removed IE9 conditional on html file, added comment to style.css for Opera. Fixes #142, #183 2010-11-06 07:39:00 -07:00
Shi Chuan
fea0fdd547 added Apache mod_pagespeed developed by Google 2010-11-06 18:21:16 +08:00
Alex Dunae
72f5b495c0 Append instead of setting Cache-Control:public header so it doesn't get clobbered by ExpiresByType 2010-11-04 02:01:06 +08:00
AD7six
f6c8c0ab33 exclude config files from build process
exclude config files from being copied to the publish folder
2010-10-31 23:53:42 +01:00
Manuel Strehl
ed8d1fad8a print styles: additional info only if present 2010-10-29 22:27:12 +08:00
Paul Irish
e3db0c0c57 .gitignore - dont ignore contents of empty folders. fixes #160 2010-10-28 22:21:19 -07:00
Paul Irish
45e892ff8c nginx already gzips text/html. we can avoid a warning. fixes #153 2010-10-28 22:15:00 -07:00
Paul Irish
252d117fa7 nginx config expires bugfix. fixes #154 2010-10-28 22:13:49 -07:00
Paul Irish
c4c638f7d7 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-10-28 18:51:45 -07:00
Paul Irish
b57c5c8620 minor. htaccess comment 2010-10-28 18:47:25 -07:00
Dustin Whittle
3d95cfa01e added plugin/extension mime types for safari, chrome, firefox 2010-10-29 09:37:43 +08:00
Paul Irish
6794dc3c10 adding a bit mroe around the commented out CORS 2010-10-28 14:46:49 -07:00
Paul Irish
3f3d6f4ae9 Merge branch 'master' of github.com:paulirish/html5-boilerplate 2010-10-28 14:35:31 -07:00
Rob Larsen
71df119772 Merged with 0.95 master
Plenty of goodness from master. Want to try out the new smushit command line tool, so I need to be up to date on my branch.
2010-10-28 13:37:11 -04:00
Paul Irish
d96229ca17 minor. credits update 2010-10-27 10:47:45 -07:00
Divya Manian
dc6978a8dc formatting comments on .htaccess 2010-10-27 09:24:34 -07:00
Ben Truyman
e2c718cc0f According to RFC 5334 ( http://tools.ietf.org/html/rfc5334 ), the 'ogg'
extension is reserved for Ogg audio, while Ogg video is 'ogv'. 'oga' is also
acceptable for Ogg audio. I've updated the .htaccess and mime.types
files to reflect this.
2010-10-28 00:18:03 +08:00
Ben Truyman
1754717e5b Added nginx mime.types config file. The default that ships with nginx
misses several "newer" MIME types such as oga/g/v, webm/p, mp4, fonts,
etc. This file contains all of the MIME type additions made in the
.htaccess file.
2010-10-28 00:17:43 +08:00
AD7six
7b96c314bd initial commit of a lighttpd config file
intended to be equivalent in functionality to the apache and nginx
config files
2010-10-27 23:58:20 +08:00
Paul Irish
f19dab3f9c idea added to gitignore for IDE from jetbrains called Webstorm (or WebIDE). 2010-10-26 11:18:14 -07:00
Shi Chuan
637d25b16d Merge github.com:paulirish/html5-boilerplate 2010-10-27 01:03:40 +08:00
Shi Chuan
7226d7e6ce filter Windows image thumb and .hg files from .gitignore 2010-10-27 01:01:41 +08:00
rwldrn
373dd13bb0 Fixing incorrect path in first run instructions 2010-10-27 01:01:19 +08:00
Paul Irish
c59f163cd5 readme update for credits and changelog 2010-10-26 09:38:39 -07:00
Divya Manian
e90971b6bb updated Readme with Sirupsen 2010-10-25 22:47:14 -07:00
Divya Manian
73df984047 added sirupsen to contributors list 2010-10-25 22:45:50 -07:00
Rob Larsen
6d7669feea added the "mark of the web" which stops the annoying security dialog when debugging in Internet Explorer on the local file system 2010-09-17 08:08:43 -04:00
63 changed files with 10206 additions and 14275 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto

45
.gitignore vendored
View File

@@ -1,4 +1,43 @@
.svn/
publish/
build/buildinfo.properties
# Numerous always-ignore extensions
*.diff
*.err
*.orig
*.log
*.rej
*.swo
*.swp
*.vi
*~
*.sass-cache
# OS or Editor folders
.DS_Store
Thumbs.db
.cache
.project
.settings
.tmproj
*.esproj
nbproject
*.sublime-project
*.sublime-workspace
# Dreamweaver added files
_notes
dwsync.xml
# Komodo
*.komodoproject
.komodotools
# Folders to ignore
.hg
.svn
.CVS
intermediate
publish
.idea
# build script local files
build/buildinfo.properties
build/config/buildinfo.properties

550
.htaccess
View File

@@ -1,146 +1,247 @@
# Apache configuration file
# httpd.apache.org/docs/2.2/mod/quickreference.html
# Note .htaccess files are an overhead, this logic should be in your Apache config if possible
# httpd.apache.org/docs/2.2/howto/htaccess.html
# Techniques in here adapted from all over, including:
# Kroc Camen: camendesign.com/.htaccess
# perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/
# Sample .htaccess file of CMS MODx: modxcms.com
###
### If you run a webserver other than Apache, consider:
### github.com/h5bp/server-configs
###
# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------
# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
</IfModule>
</IfModule>
<IfModule mod_headers.c>
# Because X-UA-Compatible isn't sent to non-IE (to save header bytes),
# We need to inform proxies that content changes based on UA
Header append Vary User-Agent
# Cache control is set only if mod_headers is enabled, so that's unncessary to declare
Header set X-UA-Compatible "IE=Edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
# hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
# Disabled. Uncomment to serve cross-domain ajax requests
#<IfModule mod_headers.c>
# Header set Access-Control-Allow-Origin "*"
#</IfModule>
# ----------------------------------------------------------------------
# Cross-domain AJAX requests
# ----------------------------------------------------------------------
# Serve cross-domain Ajax requests, disabled by default.
# enable-cors.org
# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
# <IfModule mod_headers.c>
# Header set Access-Control-Allow-Origin "*"
# </IfModule>
# ----------------------------------------------------------------------
# CORS-enabled images (@crossorigin)
# ----------------------------------------------------------------------
# Send CORS headers if browsers request them; enabled by default for images.
# developer.mozilla.org/en/CORS_Enabled_Image
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute
# allow access from all domains for webfonts
# alternatively you could only whitelist
# your subdomains like "sub.domain.com"
<FilesMatch "\.(ttf|otf|eot|woff|font.css)$">
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
# mod_headers, y u no match by Content-Type?!
<FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</FilesMatch>
</IfModule>
# video
AddType video/ogg ogg ogv
AddType video/mp4 mp4
AddType video/webm webm
# ----------------------------------------------------------------------
# Webfont access
# ----------------------------------------------------------------------
# Proper svg serving. Required for svg webfonts on iPad
# twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# webfonts
AddType application/vnd.ms-fontobject eot
AddType font/truetype ttf
AddType font/opentype otf
AddType font/woff woff
# Allow access from all domains for webfonts.
# Alternatively you could only whitelist your
# subdomains like "subdomain.example.com".
# assorted types
AddType image/vnd.microsoft.icon ico
AddType image/webp webp
AddType text/cache-manifest manifest
AddType text/x-component htc
AddType application/x-chrome-extension crx
# allow concatenation from within specific js and css files
# e.g. Inside of script.combined.js you could have
# <!--#include file="jquery-1.4.2.js" -->
# <!--#include file="jquery.idletimer.js" -->
# and they would be included into this single file
# this is not in use in the boilerplate as it stands. you may
# choose to name your files in this way for this advantage
# or concatenate and minify them manually.
# Disabled by default.
# <FilesMatch "\.combined\.(js|css)$">
# Options +Includes
# SetOutputFilter INCLUDES
# </FilesMatch>
# gzip compression.
<IfModule mod_deflate.c>
# html, txt, css, js, json, xml, htc:
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
# webfonts and svg:
<FilesMatch "\.(ttf|otf|eot|svg)$" >
SetOutputFilter DEFLATE
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
# these are pretty far-future expires headers
# they assume you control versioning with cachebusting query params like
# ----------------------------------------------------------------------
# Proper MIME type for all files
# ----------------------------------------------------------------------
# JavaScript
# Normalize to standard type (it's sniffed in IE anyways)
# tools.ietf.org/html/rfc4329#section-7.2
AddType application/javascript js
# Audio
AddType audio/ogg oga ogg
AddType audio/mp4 m4a
# Video
AddType video/ogg ogv
AddType video/mp4 mp4 m4v
AddType video/webm webm
# SVG
# Required for svg webfonts on iPad
# twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Webfonts
AddType application/vnd.ms-fontobject eot
AddType application/x-font-ttf ttf ttc
AddType font/opentype otf
AddType application/x-font-woff woff
# Assorted types
AddType image/x-icon ico
AddType image/webp webp
AddType text/cache-manifest appcache manifest
AddType text/x-component htc
AddType application/x-chrome-extension crx
AddType application/x-opera-extension oex
AddType application/x-xpinstall xpi
AddType application/octet-stream safariextz
AddType application/x-web-app-manifest+json webapp
AddType text/x-vcard vcf
# ----------------------------------------------------------------------
# Allow concatenation from within specific js and css files
# ----------------------------------------------------------------------
# e.g. Inside of script.combined.js you could have
# <!--#include file="libs/jquery-1.5.0.min.js" -->
# <!--#include file="plugins/jquery.idletimer.js" -->
# and they would be included into this single file.
# This is not in use in the boilerplate as it stands. You may
# choose to name your files in this way for this advantage or
# concatenate and minify them manually.
# Disabled by default.
#<FilesMatch "\.combined\.js$">
# Options +Includes
# AddOutputFilterByType INCLUDES application/javascript application/json
# SetOutputFilter INCLUDES
#</FilesMatch>
#<FilesMatch "\.combined\.css$">
# Options +Includes
# AddOutputFilterByType INCLUDES text/css
# SetOutputFilter INCLUDES
#</FilesMatch>
# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
<IfModule filter_module>
FilterDeclare COMPRESS
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/x-icon
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
FilterChain COMPRESS
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
</IfModule>
<IfModule !mod_filter.c>
# Legacy versions of Apache
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
# These are pretty far-future expires headers.
# They assume you control versioning with cachebusting query params like
# <script src="application.js?20100608">
# additionally, consider that outdated proxies may miscache
# Additionally, consider that outdated proxies may miscache
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
# if you don't use filenames to version, lower the css and js to something like
# "access plus 1 week" or so
# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week" or so.
<IfModule mod_expires.c>
Header set Cache-Control "public"
ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault "access plus 1 month"
# cache.manifest needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# your document html
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# data
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# rss feed
# Feed
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/atom+xml "access plus 1 hour"
# favicon (cannot be renamed)
ExpiresByType image/vnd.microsoft.icon "access plus 1 week"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# media: images, video, audio
# Media: images, video, audio
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
@@ -149,22 +250,33 @@ AddType application/x-chrome-extension crx
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# webfonts
ExpiresByType font/truetype "access plus 1 month"
# HTC files (css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Webfonts
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType font/woff "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# css and javascript
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
# CSS and JavaScript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
# ----------------------------------------------------------------------
# ETag removal
# ----------------------------------------------------------------------
# FileETag None is not enough for every server.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
# Since we're sending far-future expires, we don't need ETags for
# static content.
@@ -173,6 +285,24 @@ FileETag None
# ----------------------------------------------------------------------
# Stop screen flicker in IE on CSS rollovers
# ----------------------------------------------------------------------
# The following directives stop screen flicker in IE on CSS rollovers - in
# combination with the "ExpiresByType" rules for images (see above). If
# needed, un-comment the following rules.
# BrowserMatch "MSIE" brokenvary=1
# BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
# BrowserMatch "Opera" !brokenvary
# SetEnvIf brokenvary 1 force-no-vary
# ----------------------------------------------------------------------
# Cookie setting from iframes
# ----------------------------------------------------------------------
# Allow cookies to be set from iframes (for IE only)
# If needed, uncomment and specify a path or regex in the Location directive
@@ -184,37 +314,223 @@ FileETag None
# </IfModule>
# you probably want www.example.com to forward to example.com -- shorter URLs are sexier.
# no-www.org/faq.php?q=class_b
# ----------------------------------------------------------------------
# Start rewrite engine
# ----------------------------------------------------------------------
# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the same name does not exist
# ----------------------------------------------------------------------
# Suppress or force the "www." at the beginning of URLs
# ----------------------------------------------------------------------
# The same content should never be available under two different URLs - especially not with and
# without "www." at the beginning, since this can cause SEO problems (duplicate content).
# That's why you should choose one of the alternatives and redirect the other one.
# By default option 1 (no "www.") is activated. Remember: Shorter URLs are sexier.
# no-www.org/faq.php?q=class_b
# If you rather want to use option 2, just comment out all option 1 lines
# and uncomment option 2.
# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME!
# ----------------------------------------------------------------------
# Option 1:
# Rewrite "www.example.com -> example.com"
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
# ----------------------------------------------------------------------
# Option 2:
# To rewrite "example.com -> www.example.com" uncomment the following lines.
# Be aware that the following rule might not be a good idea if you
# use "real" subdomains for certain parts of your website.
# <IfModule mod_rewrite.c>
# RewriteCond %{HTTPS} !=on
# RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# </IfModule>
# ----------------------------------------------------------------------
# Built-in filename-based cache busting
# ----------------------------------------------------------------------
# If you're not using the build script to manage your filename version revving,
# you might want to consider enabling this, which will route requests for
# /css/style.20110203.css to /css/style.css
# To understand why this is important and a better idea than all.css?v1231,
# read: github.com/h5bp/html5-boilerplate/wiki/Version-Control-with-Cachebusting
# Uncomment to enable.
# <IfModule mod_rewrite.c>
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
# </IfModule>
# ----------------------------------------------------------------------
# Prevent SSL cert warnings
# ----------------------------------------------------------------------
# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
# https://www.example.com when your cert only allows https://secure.example.com
# Uncomment the following lines to use this feature.
# <IfModule mod_rewrite.c>
# RewriteCond %{SERVER_PORT} !^443
# RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L]
# </IfModule>
# ----------------------------------------------------------------------
# Prevent 404 errors for non-existing redirected folders
# ----------------------------------------------------------------------
# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the same name does not exist
# e.g. /blog/hello : webmasterworld.com/apache/3808792.htm
Options -MultiViews
# -Indexes will have Apache block users from browsing folders without a default document
# Options -Indexes
Options -MultiViews
# custom 404 page
# ----------------------------------------------------------------------
# Custom 404 page
# ----------------------------------------------------------------------
# You can add custom pages to handle 500 or 403 pretty easily, if you like.
ErrorDocument 404 /404.html
# use utf-8 encoding for anything served text/plain or text/html
# ----------------------------------------------------------------------
# UTF-8 encoding
# ----------------------------------------------------------------------
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# force utf-8 for a number of file formats
AddCharset utf-8 .html .css .js .xml .json .rss
# Force UTF-8 for a number of file formats
AddCharset utf-8 .css .js .xml .json .rss .atom
# We don't need to tell everyone we're apache.
ServerSignature Off
# ----------------------------------------------------------------------
# A little more security
# ----------------------------------------------------------------------
# Do we want to advertise the exact version number of Apache we're running?
# Probably not.
## This can only be enabled if used in httpd.conf - It will not work in .htaccess
# ServerTokens Prod
# "-Indexes" will have Apache block users from browsing folders without a default document
# Usually you should leave this activated, because you shouldn't allow everybody to surf through
# every folder on your server (which includes rather private places like CMS system folders).
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# Block access to "hidden" directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or Git.
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
# Block access to backup and source files
# This files may be left by some text/html editors and
# pose a great security danger, when someone can access them
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
# If your server is not already configured as such, the following directive
# should be uncommented in order to set PHP's register_globals option to OFF.
# This closes a major security hole that is abused by most XSS (cross-site
# scripting) attacks. For more information: http://php.net/register_globals
#
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
#
# Your server does not allow PHP directives to be set via .htaccess. In that
# case you must make this change in your php.ini file instead. If you are
# using a commercial web host, contact the administrators for assistance in
# doing this. Not all servers allow local php.ini files, and they should
# include all PHP configurations (not just this one), or you will effectively
# reset everything to PHP defaults. Consult www.php.net for more detailed
# information about setting PHP directives.
# php_flag register_globals Off
# Rename session cookie to something else, than PHPSESSID
# php_value session.name sid
# Do not show you are using PHP
# Note: Move this line to php.ini since it won't work in .htaccess
# php_flag expose_php Off
# Level of log detail - log all errors
# php_value error_reporting -1
# Write errors to log file
# php_flag log_errors On
# Do not display errors in browser (production - Off, development - On)
# php_flag display_errors Off
# Do not display startup errors (production - Off, development - On)
# php_flag display_startup_errors Off
# Format errors in plain text
# Note: Leave this setting 'On' for xdebug's var_dump() output
# php_flag html_errors Off
# Show multiple occurrence of error
# php_flag ignore_repeated_errors Off
# Show same errors from different sources
# php_flag ignore_repeated_source Off
# Size limit for error messages
# php_value log_errors_max_len 1024
# Don't precede error with string (doesn't accept empty string, use whitespace if you need)
# php_value error_prepend_string " "
# Don't prepend to error (doesn't accept empty string, use whitespace if you need)
# php_value error_append_string " "
# Increase cookie security
<IfModule php5_module>
php_value session.cookie_httponly true
</IfModule>

View File

@@ -1,22 +1,44 @@
<!doctype html>
<title>not found</title>
<style>
body { text-align: center;}
h1 { font-size: 50px; }
body { font: 20px Constantia, 'Hoefler Text', "Adobe Caslon Pro", Baskerville, Georgia, Times, serif; color: #999; text-shadow: 2px 2px 2px rgba(200, 200, 200, 0.5); }
::-moz-selection{ background:#FF5E99; color:#fff; }
::selection { background:#FF5E99; color:#fff; }
details { display:block; }
a { color: rgb(36, 109, 56); text-decoration:none; }
a:hover { color: rgb(96, 73, 141) ; text-shadow: 2px 2px 2px rgba(36, 109, 56, 0.5); }
span[frown] { transform: rotate(90deg); display:inline-block; color: #bbb; }
</style>
<details>
<summary><h1>Not found</h1></summary>
<p><span frown>:(</span></p>
</details>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page Not Found :(</title>
<style>
::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
::selection { background: #fe57a1; color: #fff; text-shadow: none; }
html { padding: 30px 10px; font-size: 20px; line-height: 1.4; color: #737373; background: #f0f0f0; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
html, input { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
body { max-width: 500px; _width: 500px; padding: 30px 20px 50px; border: 1px solid #b3b3b3; border-radius: 4px; margin: 0 auto; box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff; background: #fcfcfc; }
h1 { margin: 0 10px; font-size: 50px; text-align: center; }
h1 span { color: #bbb; }
h3 { margin: 1.5em 0 0.5em; }
p { margin: 1em 0; }
ul { padding: 0 0 0 40px; margin: 1em 0; }
.container { max-width: 380px; _width: 380px; margin: 0 auto; }
/* google search */
#goog-fixurl ul { list-style: none; padding: 0; margin: 0; }
#goog-fixurl form { margin: 0; }
#goog-wm-qt, #goog-wm-sb { border: 1px solid #bbb; font-size: 16px; line-height: normal; vertical-align: top; color: #444; border-radius: 2px; }
#goog-wm-qt { width: 220px; height: 20px; padding: 5px; margin: 5px 10px 0 0; box-shadow: inset 0 1px 1px #ccc; }
#goog-wm-sb { display: inline-block; height: 32px; padding: 0 10px; margin: 5px 0 0; white-space: nowrap; cursor: pointer; background-color: #f5f5f5; background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1); background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1); background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1); background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1); -webkit-appearance: none; -moz-appearance: none; appearance: none; *overflow: visible; *display: inline; *zoom: 1; }
#goog-wm-sb:hover, #goog-wm-sb:focus { border-color: #aaa; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); background-color: #f8f8f8; }
#goog-wm-qt:focus, #goog-wm-sb:focus { border-color: #105cb6; outline: 0; color: #222; }
input::-moz-focus-inner { padding: 0; border: 0; }
</style>
</head>
<body>
<div class="container">
<h1>Not found <span>:(</span></h1>
<p>Sorry, but the page you were trying to view does not exist.</p>
<p>It looks like this was the result of either:</p>
<ul>
<li>a mistyped address</li>
<li>an out-of-date link</li>
</ul>
<script>
var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
</script>
<script src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
</div>
</body>
</html>

View File

@@ -1,129 +0,0 @@
# HTML5 Boilerplate [http://html5boilerplate.com](http://html5boilerplate.com)
## Changelog:
### v.0.9.5 : October 25th, 2010
Major changes:
<ul>
<li>Removed <code>-webkit-font-smoothing: antialiased;</code> it makes monospace too thin.</li>
<li>IE conditional classes have moved from the <code>&lt;body&gt;</code> tag to the <code>&lt;html&gt;</code> tag ( #44 ).</li>
<li>Dropped <code>text-rendering: <a href="http://www.aestheticallyloyal.com/public/optimize-legibility/">optimizeLegibility</a></code> as it breaks small-caps, looks odd on Linux machines, and goes invisible on WebOS.</li>
<li>Added a IE6 call for the minified <code>dd_belatedpng</code>.</li>
<li>Revised viewport declaration to allow user scaling and clear Webkit console errors ( #37 ).</li>
<li>Updated Modernizr to 1.6 </li>
<li>Added <code>web.config</code> file for Microsoft IIS</li>
<li>Beta release of the <a href="http://github.com/paulirish/html5-boilerplate/wiki/Build-script ">Build Script</a> (this is HUGE)</li>
<li>New project scaffolding <a href="http://github.com/paulirish/html5-boilerplate/wiki/makep.sh">bash script</a>.</li>
<li><a href="http://github.com/paulirish/html5-boilerplate/blob/master/README.markdown">.... and over 100 other fixes and improvements.</a></li>
</ul>
#### General
* Updated Modernizr to 1.6 (smaller and faster)
* Added web.config file for Microsoft IIS. Now forcing latest IE version and ChromeFrame, if installed.
* Added favicon and default icon for iOS.
* Updated crossdomain.xml wording for better security guidelines ( #124 ).
* Expires value for nginx.conf corrected.
* License clarified.
#### style.css
* Removed -webkit-font-smoothing: antialiased; as it made monospace too thin.
* Updated fonts normalization to YUI 3.2.0 PR1.
* Table Header set explicitly for IE6 and table row now has page-break: avoid in print CSS.
* text-shadow:none !important set for all text in print css.
* Removed scrollbar from textareas in IE.
* Fixed textarea stylings and form field treatment for validity. Added default background-color.
* New robust clearfix solution without IE 5.5 hack ( #45 #126 ).
* Margins for form-elements explicitly set to 0 as webkit adds 2px space around form elements' chrome.
* Dropped text-rendering: optimizeLegibility as it breaks small-caps and looks odd on Linux machines.
* Lists now have a left margin of 1.8em. Default list-style-type for ordered list is decimal.
* Image Replacement now works with right-to-left text ( #68 ).
* Removed "Star Hack" for checkboxes in favor of .ie7 selector.
#### index.html
* IE conditional classes have moved from the <body> tag to the <html> tag ( #44 ).
* Added a IE6 call for the minified dd_belatedpng.
* Google Analytics script will now work with SSL in IE6.
* Added protocol independent absolute path for cdn jquery, with improved fallback-to-local code to protect against edge case IE bug.
* Commented out handheld CSS ( #73 ).
* Mobile viewport and textsize styles adjusted per group feedback ( #37 ).
#### .htaccess
* More files are served via gzip like .htc ( #55 ).
* Added Expires header for content types image/gif and video/webm.
* Fixed favicon display in IE6 ( #113 ).
* Corrected mimetypes for fonts.
* Removed caching for files of type json/xml.
* Better use of ifmodule for more stability in different Apache environments.
[View full diff and commit history](http://github.com/paulirish/html5-boilerplate/compare/v0.9.1)
#### Contributors
Shi Chuan, Rob Larsen, Ivan Nikolić, Mikko Tikkanen, Paul Neave, Weston Ruter, Jeffrey Barke, Robert Meissner, SirFunk, Philip von Bargen, Kroc Camen, Andreas Madsen, Marco d'Itri, Adeelejaz, James Rosen, Dave DeSandro, Ken Newman, Swaroop C H, Yann Mainier, Joe Sak, Irakli, Rob Flaherty, Jeff Starr, Mike Lamb, Holek, Aaron Peters, Kaelig, Meander, Charlie Ussery, Ciney, Région Wallonne and Paul Hayes.
### v.0.9.1 : August 13th, 2010
* HTML5 Boilerplate is now in the Public Domain
* Nginx configuration added
* Font stacks (sans-serif and monospace) simplified
* Very accessible a:focus styles.
* Corrected IE=edge,chromeframe enabling (As a result, the base HTML [does not validate](http://bit.ly/cGSSgr))
* ServerSideIncludes disabled by default.
* Apache config bugfixes
* Conditional body tag class combined
* dd_belatedPNG updated to 0.0.8. Redundant BackgroundImageCache fix removed.
[View full diff and commit history](http://github.com/paulirish/html5-boilerplate/compare/v0.9...v0.9.1)
##### Thanks:
voodootikigod, garowetz, fearphage, christopherjacob, mathias byenens, daniel harttman, rse, chris dary, erik dahlstrom, timwillison, ken nordahl, riddle, elcuervo, andreas kuckartz, 3rdEden, riley willis, majic3
### v0.9 : August 10th, 2010 - Initial release
## License:
Major components:
* Modernizr: MIT/BSD license
* jQuery: MIT/GPL license
* DD_belatedPNG: MIT license
* YUI Profiling: BSD license
* HTML5Doctor CSS reset: Creative Commons 3.0 BY
* CSS Reset Reloaded: Public Domain
Everything else:
* [The Unlicense](http://unlicense.org) (aka: public domain)
## Summary:
This is a set of files that a front-end developer can use to get started on a website, with following included:
1. Cross-browser compatible (IE6, yeah we got that.)
2. HTML5 ready. Use the new tags with certainty.
3. Optimal caching and compression rules for grade-A performance
4. Best practice site configuration defaults
5. Think there's too much? The HTML5 Boilerplate is delete-key friendly. :)
6. Mobile browser optimizations
7. Progressive enhancement graceful degredation ........ yeah yeah we got that
8. IE specific classes for maximum cross-browser control
9. Want to write unit tests but lazy? A full, hooked up test suite is waiting for you.
10. Javascript profiling.. in IE6 and IE7? Sure, no problem.
11. Console.log nerfing so you won't break anyone by mistake.
12. Never go wrong with your doctype or markup!
13. An optimal print stylesheet, performance optimized
14. iOS, Android, Opera Mobile-adaptable markup and CSS skeleton.
15. IE6 pngfix baked in.
16. jQuery, waiting for you
## Releases
There are two releases: a documented release, which is exactly what you see here, and a "stripped" release, with most of the descriptive comments stripped out.
Watch the [current tickets](http://github.com/paulirish/html5-boilerplate/issues) to view the areas of active development.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 640 B

View File

@@ -1,3 +0,0 @@
# build.properties file defines overrides for default.properties
# Explaination: This file should be created by each user as and when he or she needs to override particular values.
# Consequently, it should not be placed under version control.

View File

@@ -1,428 +0,0 @@
<?xml version="1.0"?>
<project name="Boilerplate Build" default="build" basedir="../"> <!-- one back since we're in build/ -->
<!-- load property files -->
<property file="build/build.properties"/>
<property file="build/default.properties"/>
<!-- there are three different options for html optimization:
buildkit : all html whitespace retained. inline script/style minified
htmlclean (default) : minor html optimizations (extra quotes removed). inline script/style minified
htmlcompress : html minification
-->
<target name="basics" depends="clean,rev,current-number,copy,usemin,js.all,css,html" description="Concats files, runs YUI Compressor on them and makes magic happen."/>
<target name="text" depends="basics,htmlclean" description="Concats files, runs YUI Compressor on them and makes magic happen."/>
<target name="buildkit" depends="basics,htmlbuildkit,imagespng,imagesjpg" description="Concats files, runs YUI Compressor, optimizes images. There is much rejoicing."/>
<target name="build" depends="basics,htmlclean,imagespng,imagesjpg" description="Concats files, runs YUI Compressor, optimizes images. There is much rejoicing."/>
<target name="minify" depends="basics,htmlcompress,imagespng,imagesjpg" description="Concats files, runs YUI Compressor, optimizes images. There is much rejoicing."/>
<!-- Increase the current build number by one and set build date -->
<!-- as per http://www.ibmpressbooks.com/articles/article.aspx?p=519946 -->
<target name="rev">
<echo message="Rev the build number..."/>
<propertyfile file="./${dir.build}/${build.info}" comment="Build Information File - DO NOT CHANGE">
<entry key="build.number" type="int" default="0000" operation="+" pattern="0000"/>
<entry key="build.date" type="date" value="now" pattern="dd.MM.yyyy HH:mm"/>
</propertyfile>
<property file="./${dir.build}/${build.info}"/>
</target>
<target name="current-number">
<echo>Current build number: ${build.number}</echo>
</target>
<!--
Wipe the old
-->
<target name="clean">
<echo message="Cleaning up previous build directory..."/>
<delete dir="./${dir.publish}/"/>
</target>
<!--
Copy in the new stuff
-->
<target name="copy" depends="clean, rev">
<echo message="Copying over new files..."/>
<copy todir="./${dir.publish}">
<fileset dir="./">
<exclude name=".gitignore"/>
<exclude name=".project"/>
<exclude name=".settings"/>
<exclude name="README.markdown"/>
<exclude name="**/.git/**"/>
<exclude name="**/.svn/**"/>
<exclude name=".gitignore"/>
<exclude name="**/${dir.build}/**"/>
<exclude name="**/${dir.test}/**"/>
<exclude name="**/${dir.demo}/**"/>
<exclude name="**/${dir.js}/profiling/**"/>
<!-- configurable excludes -->
<exclude name="**/${file.exclude}/**"/>
</fileset>
</copy>
</target>
<!-- Optimize javascript files
-->
<target name="js.all" depends="js.remove.console, js.all.min, js.main.concat, js.libs.concat, js.concat.scripts, js.minifyonly.min, js.delete"></target>
<!--
JS: Concat primary scripts
-->
<target name="js.main.concat" depends="js.all.min">
<echo message="Concatenating JS scripts"/>
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.js">
<fileset dir="./${dir.publish}/">
<include name="**/${dir.js.main}/*.min.js"/>
<exclude name="**/${dir.js.mylibs}/*.js"/>
<exclude name="**/${dir.js.libs}/*.js"/>
</fileset>
</concat>
</target>
<!--
JS: Concat library scripts
-->
<target name="js.libs.concat" depends="js.all.min">
<echo message="Concatenating JS libraries"/>
<concat destfile="./${dir.publish}/${dir.js}/libs-${build.number}.js">
<fileset dir="./${dir.publish}/${dir.js.mylibs}/">
<include name="**/*.min.js"/>
</fileset>
</concat>
</target>
<!-- Comment out console.log commands from main scripts -->
<target name="js.remove.console" description="Comment out console.log lines">
<echo>Commenting out console.log lines</echo>
<replaceregexp match="(console.log\(.*\))" replace="/\*\1\*/" flags="g" >
<fileset dir="./${dir.publish}/${dir.js}/">
<include name="**/*.js"/>
<exclude name="**/*.min.js"/>
</fileset>
</replaceregexp>
</target>
<!--
JS: Minify primary scripts and libraries
-->
<target name="js.all.min" depends="copy">
<echo message="Minifying concatenated script- and library-file"/>
<apply executable="java" parallel="false">
<fileset dir="./${dir.publish}/${dir.js}">
<include name="**/*.js"/>
<exclude name="**/*.min.js"/>
<exclude name="**/${dir.js.libs}/*.js"/>
</fileset>
<arg line="-jar"/>
<arg path="./${dir.tools}/${tool.yuicompressor}"/>
<srcfile/>
<arg line="--line-break"/>
<arg line="4000"/>
<arg line="-o"/>
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js}/*.min.js"/>
<targetfile/>
</apply>
</target>
<!--
JS: Minify helper files.
these files do not get concat'd with anyone else.
they will get a build number in their filename though
-->
<target name="js.minifyonly.min">
<echo message="Minifying helper JS files"/>
<apply executable="java" parallel="false">
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
<arg line="-jar"/>
<arg path="./${dir.tools}/${tool.yuicompressor}"/>
<srcfile/>
<arg line="-o"/>
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js.libs}/*-${build.number}.min.js"/>
<targetfile/>
</apply>
</target>
<!--
JS: Concat mylibs- and scripts- into a normal and a debug file.
Then rename them to s/-all//
-->
<target name="js.concat.scripts" if="build.concat.scripts">
<echo message="Concatenating library file with main script file"/>
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js">
<fileset dir="./${dir.publish}/${dir.js}/">
<include name="libs-${build.number}.js"/>
<include name="scripts-${build.number}.js"/>
</fileset>
</concat>
<echo message="Concatenating library file with main debug script file"/>
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.min.js">
<fileset dir="./${dir.publish}/${dir.js}/">
<include name="libs-${build.number}.js"/>
<include name="scripts-${build.number}-debug.js"/>
</fileset>
</concat>
<echo>About to rename scripts-all to scripts</echo>
<!--
<move file="./${dir.publish}/${dir.js}/scripts-all-${build.number}.min.js" tofile="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js"/>
<move file="./${dir.publish}/${dir.js}/scripts-all-${build.number}-debug.min.js" tofile="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.min.js"/>
-->
</target>
<!--
JS: Delete unoptimized files (If set)
-->
<target name="js.delete" if="build.delete.unoptimized" depends="js.if.concat.scripts">
<echo message="Deleting unoptimized files"/>
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.js"/>
<!--
<delete dir="./${dir.publish}/${dir.js.lib}/"/>
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
this guy probably COULD be on but I think it's better if we keep him off for now. ^pi
<delete includeemptydirs="true">
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
</delete>
-->
</target>
<!-- JS, Delete concatenated libs file (only if concat.scripts and delete.unoptimized are defined) -->
<target name="js.if.concat.scripts" if="build.delete.unoptimized, build.concat.scripts">
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.min.js"/>
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js"/>
</target>
<!--
CSS: concat style.css into ... one file. :)
run it through yui compressor for minification.
replace the reference to it in index.html
-->
<target name="css" depends="copy">
<echo message="Minifying css..."/>
<concat destfile="./${dir.publish}/${dir.css}/style-${build.number}.css">
<fileset file="./${dir.css}/style.css"/>
</concat>
<apply executable="java" parallel="false">
<fileset dir="./${dir.publish}/${dir.css}/" includes="style-${build.number}.css"/>
<arg line="-jar"/>
<arg path="./${dir.tools}/${tool.yuicompressor}"/>
<srcfile/>
<arg line="-o"/>
<mapper type="glob" from="style-${build.number}.css" to="../${dir.publish}/${dir.css}/style-${build.number}.min.css"/>
<targetfile/>
</apply>
<replace token="style.css" value="style-${build.number}.min.css" file="./${dir.publish}/${file.index}"/>
<!-- <delete file="./publish/css/style-${build.number}.css"/> -->
</target>
<!--
IMAGES: png
-->
<target name="imagespng" depends="copy">
<echo message="Optimizing images"/>
<apply executable="optipng" osfamily="unix">
<arg value="-o7"/>
<fileset dir="./${dir.publish}/">
<include name="**/*.png"/>
</fileset>
</apply>
<apply executable="optipng" osfamily="mac">
<arg value="-o7"/>
<fileset dir="./${dir.publish}/">
<include name="**/*.png"/>
</fileset>
</apply>
<apply executable="tools/optipng-0.6.4-exe/optipng.exe" osfamily="windows">
<arg value="-o7"/>
<fileset dir="./${dir.publish}/">
<include name="**/*.png"/>
</fileset>
</apply>
</target>
<!--
IMAGES: jpg
-->
<target name="imagesjpg" depends="copy">
<echo message="Clean up those jpgs..."/>
<apply executable="jpegtran" osfamily="unix">
<fileset dir="./${dir.publish}/${dir.images}/" includes="*.jpg"/>
<arg value="-copy"/>
<!-- change 'all to 'none' in order to strip metadata
only do so if you own copyright to the image -->
<arg value="all"/>
<srcfile/>
<targetfile/>
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
<mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
</apply>
<apply executable="jpegtran" osfamily="mac">
<fileset dir="./${dir.publish}/${dir.images}/" includes="*.jpg"/>
<arg value="-copy"/>
<!-- change 'all to 'none' in order to strip metadata
only do so if you own copyright to the image -->
<arg value="all"/>
<srcfile/>
<targetfile/>
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
<mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
</apply>
<apply executable="tools/jpegtran.exe" osfamily="windows">
<fileset dir="./${dir.publish}/${dir.images}/" includes="*.jpg"/>
<arg value="-copy"/>
<!-- change 'all to 'none' in order to strip metadata
only do so if you own copyright to the image -->
<arg value="all"/>
<srcfile/>
<targetfile/>
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
<mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
</apply>
</target>
<!--
HTML: switch to minified jquery in the html
-->
<target name="usemin" depends="copy">
<echo message="Switching to minified js files..."/>
<!-- switch from a regular jquery to minified-->
<replaceregexp match="jquery-(\d|\d(\.\d)+)\.js" replace="jquery-\1.min.js" file="./${dir.publish}/${file.index}" flags=""/>
<!-- switch any google CDN reference to minified -->
<replaceregexp match="(\d|\d(\.\d)+)\/jquery\.js" replace="\1/jquery.min.js" file="./${dir.publish}/${file.index}" flags=""/>
<echo>kill off those versioning flags: ?v=2</echo>
<replaceregexp match='\?v=\d+">' replace='">' file="./${dir.publish}/${file.index}" flags=""/>
</target>
<!--
HTML: replaces scripts with single concat'd one.
removes profiling code
-->
<target name="html" depends="">
<echo message="Clean up the html..."/>
<!-- style.css replacement handled as a replacetoken above -->
<replaceregexp match="&lt;!-- scripts concatenated [\d\w\s\W]*?!-- end concatenated and minified scripts--&gt;" file="./${dir.publish}/${file.index}" replace="&lt;script src='${dir.js}/scripts-${build.number}.min.js\'&gt;&lt;/script&gt;" flags="m"/>
<replaceregexp match="&lt;!-- yui profiler[\d\w\s\W]*?end profiling code --&gt;" file="./${dir.publish}/${file.index}" replace=" " flags="m"/>
<!--[! use comments like this one to avoid having them get minified -->
</target>
<!--
HTML Minification. There are three levels. htmlclean is default.
-->
<target name="htmlbuildkit" depends="html" >
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
<fileset dir="./${dir.publish}/" includes="*.html"/>
<arg value="-jar"/>
<arg path="./${dir.build}/tools/htmlcompressor-0.9.3.jar"/>
<arg value="--preserve-comments"/>
<arg line="--preserve-multi-spaces"/>
<arg line="--type html"/>
<arg line="--compress-js"/>
<arg line="--compress-css"/>
<srcfile/>
<arg value="-o"/>
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
<targetfile/>
</apply>
</target>
<target name="htmlclean" depends="html" >
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
<fileset dir="./${dir.publish}/" includes="*.html"/>
<arg value="-jar"/>
<arg path="./${dir.build}/tools/htmlcompressor-0.9.3.jar"/>
<arg line="--type html"/>
<arg line="--preserve-multi-spaces"/>
<arg line="--remove-quotes"/>
<arg line="--compress-js"/>
<arg line="--compress-css"/>
<srcfile/>
<arg value="-o"/>
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
<targetfile/>
</apply>
</target>
<target name="htmlcompress" depends="html" >
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
<fileset dir="./${dir.publish}/" includes="*.html"/>
<arg value="-jar"/>
<arg path="./${dir.build}/tools/htmlcompressor-0.9.3.jar"/>
<arg line="--type html"/>
<arg line="--remove-quotes"/>
<arg line="--compress-js"/>
<arg line="--compress-css"/>
<srcfile/>
<arg value="-o"/>
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
<targetfile/>
</apply>
</target>
</project>

View File

@@ -1,73 +0,0 @@
#!/usr/bin/env bash
#Generate a new project from your HTML5 Boilerplate repo clone
#Created 2010-10-13, Rick Waldron
##first run
# $ cd html5-boilerplate
# $ sudo chmod a+x createproject.sh && ./createproject.sh
##usage
# $ cd html5-boilerplate/build
# $ ./createproject.sh
echo "To create a new html5-boilerplate project, enter a new directory name:"
read name
cd ..
webroot=$PWD
SRC=$webroot"/html5-boilerplate"
DST=$webroot"/../"$name
if [ -d "$DST" ]
then
echo "$DST exists"
else
#create new project
mkdir $name
#sucess message
echo "Created Directory: $DST"
cd $SRC
#copy to new project directory
#http://en.wikipedia.org/wiki/Cpio#Copy
#http://cybertiggyr.com/cpio-howto/
#http://www.cyberciti.biz/faq/how-do-i-use-cpio-command-under-linux/
find . -depth -print0 | cpio -0pdmv $DST
#sucess message
echo "Created Project: $DST"
# delete that temporary folder
rm -r $name
#move into new project
cd $DST
#in Bourne Again Shell, the cpio was copying
#the whole dir into the new project, along with the contents
if [ -d "$DST/html5-boilerplate" ]
then
rm -r html5-boilerplate
fi
if [ -e "$DST/createproject.sh" ]
then
rm -r createproject.sh
fi
if [ -e "$DST/.git" ]
then
rm -rf .git
fi
fi

View File

@@ -1,52 +0,0 @@
# Build options ---------------------------------
# Customize these to fit your needs
# If set, concat libraries with main scripts file, producing single script file
build.concat.scripts = true
# If set, delete unoptimized files
build.delete.unoptimized = true
# Exclude file filter for publishing (can't be empty)
# For example: ...<add example here>...
file.exclude = nonexistentfile
# Project structure -----------------------------
# Directory names
dir.publish = publish
dir.build = build
dir.tools = ${dir.build}/tools
dir.test = test
dir.demo = demo
dir.js = js
# Main JS script folder (Will be concatenated and minified)
dir.js.main = ${dir.js}
# JS libraries folder (Will be concatenated and minified)
dir.js.mylibs = ${dir.js}/mylibs
# Folder that should be only minified, not concatenated together
dir.js.libs = ${dir.js}/libs
dir.css = css
dir.images = images
# Files
# all the html/php whatever that the build script will be mucking with.
# For example: ...<add example here>...
file.index = index.html
# Hardcore build options... --------------------
# Build Versioning
build.info = buildinfo.properties
# Tools
tool.yuicompressor = yuicompressor-2.4.2.jar

Binary file not shown.

Binary file not shown.

View File

@@ -1,21 +0,0 @@
Copyright (C) 2001-2010 Cosmin Truta.
This software is provided 'as-is', without any express or implied
warranty. In no event will the author(s) be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

View File

@@ -1,2 +0,0 @@
[InternetShortcut]
URL=http://optipng.sourceforge.net/

View File

@@ -1,32 +0,0 @@
CAVEAT EMPTOR
=============
(known bugs, problems or limitations)
Legend
------
- Minor bug, limitation, or incompletely-implemented feature.
! Bug that may lead to a behavior different than expected,
but without any serious consequence.
!! Bug that may cause accidental data loss, security hazard,
or another serious consequence.
* Another problematic issue, that is not necessarily a bug.
Version 0.6.4 14-mar-2010
-------------
- Lossless image reductions are not completely implemented.
(This does NOT affect the integrity of PNG files.)
Here are the missing pieces:
- The color palette reductions are implemented only partially.
- The bit depth reductions below 8, for grayscale images, are
not implemented yet.
- TIFF support is limited to uncompressed, PNG-compatible
color spaces (grayscale, RGB and RGBA).
- Metadata is not imported from the external image formats.
- There is no support for pipes or streams.

View File

@@ -1,318 +0,0 @@
OptiPNG - Revision history
==========================
Legend
------
++ Added or improved performance-related feature
(might improve compression ratio or processing speed).
+ Added or improved feature.
- Removed feature.
! Fixed bug.
!! Fixed dangerous bug
(data/metadata loss or serious security hazard).
* Other modification (e.g. architectural improvement).
Version 0.6.4 14-mar-2010
-------------
+ Upgraded libpng to version 1.4.1-optipng [private]
+ Upgraded zlib to version 1.2.4-optipng [private]
+ Added the option -nx.
* Clarified the behavior of -nz and the relation between -nz and -o0.
+ Added a filesystem check (resolving normalized paths, symlinks, etc.)
to better detect when the output overwrites the input.
+ Enabled automatic wildcard expansion (i.e. globbing) on Win64.
! Fixed a Unicode build issue on Windows.
(Thanks to Fabien Barbier for the fix.)
Version 0.6.3 18-may-2009
-------------
+ Upgraded libpng to version 1.2.36-optipng [private]
!! Fixed a use-after-free error in the GIF reader.
(Thanks to Roy Tam for the report, and to Bryan McQuade for the fix.)
! Flushed the output log to display the current trial in real time.
This only worked on Windows in the previous version.
(Thanks to Vincent Lefevre for the fix.)
! Fixed an error in reporting unrecognized file formats.
(Thanks to [LaughingMan] for the report.)
- Removed the requirement to "fix" TIFF files that contain unrecognized
metadata. (Thanks to Piotr Bandurski for the suggestion.)
* Simplified the option abbreviation rules. Option names can now be
abbreviated to their shortest unique prefix, as in X11 applications.
Version 0.6.2 9-nov-2008
-------------
+ Upgraded libpng to version 1.2.33-optipng [private]
++ Put back a speed optimization, accidentally removed in version 0.6,
allowing singleton trials (-o1) to be bypassed in certain conditions.
!! Fixed an array overflow in the BMP reader.
!! Fixed the loss of private chunks under the -snip option.
+ Produced a more concise on-screen output in the non-verbose mode.
(Thanks to Vincent Lefevre for the contribution.)
* Added a programming interface to the optimization engine, in order
to facilitate the development of PNG-optimizing GUI apps and plugins.
Version 0.6.1 20-jul-2008
-------------
* Upgraded cexcept to version 2.0.1.
+ Added a configure script, to be used instead of unix-secure.mak.
! Fixed a build issue that occured when using libpng from the system.
(Thanks to Nelson A. de Oliveira for the report.)
! Fixed processing when image reduction yields an output larger than
the original. (Thanks to Michael Krishtopa for the report.)
! Fixed behavior of -preserve.
(Thanks to Bill Koch for the report.)
- Removed displaying of partial progress when abandoning IDATs under
the -v option. The percentages displayed were not very accurate.
Version 0.6 15-jun-2008
-----------
+ Upgraded libpng to version 1.2.29-optipng [private]
++ Implemented grayscale(alpha)-to-palette reductions.
++ Improved conversion of bKGD info during RGB-to-palette reductions.
(Thanks to Matthew Fearnley for the contribution.)
!! Fixed conversion of bKGD and tRNS during 16-to-8-bit reductions.
(Thanks to Matthew Fearnley for the report.)
+ Added support for compressed BMP (incl. PNG-compressed BMP, you bet!)
+ Improved the speed of reading raw PNM files.
+ Recognized PNG digital signatures (dSIG) and disabled optimization
in their presence, to preserve their integrity.
+ Allowed the user to enforce the optimization of dSIG'ed files.
+ Recognized APNG animation files and disabled reductions to preserve
their integrity.
+ Added the -snip option, to allow the user to "snip" one image out of
a multi-image file, such as animated GIF, multi-page TIFF, or APNG.
(Thanks to [LaughingMan] for the suggestion.)
+ Improved recovery of PNG files with incomplete IDAT.
!! Fixed a crash triggered by the use of -log on some platforms.
(Thanks to Stefan Bruns for the fix.)
! Fixed behavior of -out and -dir when the input is already optimized.
(Thanks to Christian Davideck for the report.)
* Provided more detailed image information at the start of processing.
* Provided a more detailed summary at the end of processing, under the
presence of the -v option and/or the occurence of exceptional events.
Version 0.5.5 28-jan-2007
-------------
+ Upgraded libpng to version 1.2.15-optipng [private]
++ Used a previously-missed RGB-to-palette reduction opportunity
for images containing 256 distinct colors.
(Thanks to Joachim Kluge for the report.)
!! Fixed conversion of bKGD info during RGB-to-palette reductions.
(Thanks to Matthew Fearnley for the report.)
! Fixed pre-computation of iterations.
(Thanks to Matthew Fearnley for the report.)
! Eliminated a false alarm when processing RGB images with tRNS
in Unix-secure mode. (Thanks to Till Maas for the report, and
thanks to Nelson A. de Oliveira for the fix.)
! Fixed behavior of -out and -dir when changing interlacing.
(Thanks to Martin Packman for the report.)
! Fixed the behavior of "-dir [DRIVE]:" on Windows.
Version 0.5.4 11-aug-2006
-------------
+ Added user options -out and -dir, to specify the name of
the output file or directory.
(Thanks to Alexander Lucas for the suggestion.)
* Added support for builds based on the system-supplied libpng.
(Thanks to Nelson A. de Oliveira for the valuable help.)
Version 0.5.3 23-jul-2006
-------------
+ Upgraded libpng to version 1.2.12-optipng [private]
+ Implemented basic support for TIFF (grayscale, RGB and RGBA,
uncompressed).
++ Avoided the redundant trial when the search space is singular
(e.g. when running "optipng -o1 example.tif").
+ Prevented accidental file corruption when using option "-log".
! Fixed (again) a small typo in the online help.
Version 0.5.2 7-may-2006
-------------
+ Improved handling of inexact PNM-to-PNG conversions.
! Fixed a typo that was breaking the build on some Unix platforms.
(Thanks to Aaron Reitz for the report.)
Version 0.5.1 30-apr-2006
-------------
++ Implemented bit depth reduction for palette images.
+ Upgraded libpng to version 1.2.10-optipng [private]
+ Improved the BMP support.
+ Added a Unix man page.
(Thanks to Nelson A. de Oliveira for the contribution.)
+ Allowed abbreviation of command-line options.
+ Changed user option -log to accept a file name as an argument.
* Changed user option -no to -simulate.
! Fixed an error in handling .bak files on Unix.
(Thanks to Adam Szojda and Nelson A. de Oliveira for the report.)
! Fixed a small typo in the help screen.
(Thanks to A. Costa and Nelson A. de Oliveira for the report.)
Version 0.5 14-jan-2006
-----------
++ Added pngxtern, a libpng add-on for external image format
support: BMP (uncompressed), GIF, PNM.
(This was incorporated from OptiPNG-Plus.)
++ Implemented RGB(A)-to-palette reductions.
+ Upgraded zlib to version 1.2.3-optipng [private]
+ Upgraded libpng to version 1.2.8-optipng [private]
+ If trials are ended prematurely, detailed progression is only
reported under the user option -v.
- Removed reporting of some IDAT sizes that exceeded the optimum.
(This was NOT a bug, but a "feature" that confused some users.)
! Fixed an RGB-to-gray reduction problem that occured under some
specific background colors.
* Added support for builds based on the system-supplied zlib.
(Thanks to Nelson A. de Oliveira for the suggestion.)
* Modified LICENSE. It is now a verbatim spell of the zlib license.
Version 0.4.8 10-may-2005
-------------
+ Upgraded libpng to version 1.0.18-optipng [private]
!! Fixed a palette-to-gray reduction problem that occurred when an
RGB triple had both an alpha below max, and an alpha equal to max.
(Thanks to Nicolas Le Gland for the report.)
+ Packed the Windows executable using UPX.
(Thanks to [Warriant] for the suggestion.)
Version 0.4.7 30-oct-2004
-------------
!! Fixed a palette-to-gray reduction problem that occurred when
having more than one alpha value per RGB triple.
(Thanks to Larry Hastings for the report.)
! Fixed the progress display, when processing very large images.
+ Displayed the image info at the beginning of processing.
++ Reduced the IDAT buffer size, allowing abandoned trials to
terminate earlier in some circumstances.
+ Implemented error recovery, when PLTE is too small, and/or
tRNS is too large.
Version 0.4.6 25-oct-2004
-------------
+ Upgraded zlib to version 1.2.2-optipng [private]
+ Upgraded libpng to version 1.0.17-optipng [private]
This provides safe handling of some ill-formed PNG images.
+ Rewrote makefiles.
+ Added project workspace to build under Visual C++ 6.0,
integrated with memory leak detection.
++ Implemented a premature termination of trials, in the moment
when IDAT grows beyond the smallest size previously achieved.
(Thanks to Larry Hastings for the idea.)
+ Changed the order of trials, to perform the trials that are
more likely to yield a smaller IDAT, at the beginning.
+ Added user option -full to avoid the premature termination of
trials; useful for debugging.
Version 0.4.5 31-may-2004
-------------
+ Upgraded zlib to version 1.2.1.f-cos2 [private]
+ Upgraded libpng to version 1.0.15-cos2 [private]
* Changed user option -nx to -nz.
+ Added user option to preserve file attributes (file mode,
time stamp, etc.) when applicable.
(Thanks to Nehal Mistry for the suggestion.)
! Fixed an incorrect initialization of zlib window bits.
! Displayed an error message when the search space was invalid.
!! Fixed a palette reduction problem for bit depths below 8.
! Eliminated memory leaks.
(Thanks to Niels de Koning for the help.)
Version 0.4.4 20-nov-2003
-------------
+ Upgraded zlib to version 1.2.1
++ Added support for the Z_RLE strategy.
Version 0.4.3 12-aug-2003
-------------
! Fixed a reduction problem that caused an assertion failure.
(Thanks to Dimitri Papadopoulos for the report.)
Version 0.4.2 30-jun-2003
-------------
++ Enhanced the support for palette size reductions:
trailing sterile palette entries are removed even when
the bit depth is below 8.
! Enforced recompression when the new IDAT has the same size,
but other chunks have been reduced.
+ Displayed the IDAT size difference as a percentage.
(Thanks to Nehal Mistry for the suggestion.)
Version 0.4.1 19-may-2003
-------------
! Fixed the removal of trailing sterile palette entries.
Version 0.4 12-may-2003
-----------
++ Added support for palette-to-gray reductions.
++ Added partial support for palette size reductions.
! Fixed the reporting of invalid command-line options.
! Eliminated a spurious warning when the zlib window size
is set to 256.
Version 0.3.2 11-mar-2003
-------------
+ Added support for updating sBIT during reductions.
! Fixed the reduction of the alpha channel.
Version 0.3.1 25-feb-2003
-------------
! Fixed the encoding of interlaced images when they become
larger than the input.
(Thanks to James H. Cloos, Jr. for the report.)
+ Added the HISTORY document (this file).
Version 0.3 24-feb-2003
-----------
This is the first public release of OptiPNG.
++ Added support for iterating through zlib memory levels.
++ Added support for collapsing IDAT, avoiding calls to
png_set_compression_buffer_size().
This reduces the memory requirements.
++ Added support for lossless reduction of the image type:
RGB[A] -> G[A], RGBA -> RGB, GA -> G
+ Added many user options.
+ Added documentation.
Version 0.2 27-dec-2001
-----------
+ Added support for optimization level presets.
+ Added user option for changing the interlacing.
Version 0.1 17-dec-2001
-----------
+ Added support for chunk I/O status annotation.
This improves the speed of OptiPNG significantly.
* Structured exception handling is provided by cexcept.
Version 0.0 10-dec-2001
-----------
This is the very first version of OptiPNG.
It compresses IDAT repeatedly, iterating through zlib compression
and strategy levels, and PNG filters.

View File

@@ -1,677 +0,0 @@
<!-- Creator : groff version 1.19.2 -->
<!-- CreationDate: Sun Mar 14 12:29:16 2010 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
p { margin-top: 0; margin-bottom: 0; }
pre { margin-top: 0; margin-bottom: 0; }
table { margin-top: 0; margin-bottom: 0; }
</style>
<title>OPTIPNG</title>
</head>
<body>
<h1 align=center>OPTIPNG</h1>
<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<p style="margin-left:11%; margin-top: 1em"><b>OptiPNG</b>
&minus; Advanced optimization program for <b>Portable
Network Graphics (PNG)</b></p>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<p style="margin-left:11%; margin-top: 1em"><b>optipng</b>
[<b>&minus;?</b> | <b>&minus;h</b> | <b>&minus;help</b>]
<b><br>
optipng</b> [<i>options...</i>] <i>files...</i></p>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<p style="margin-left:11%; margin-top: 1em">The
<b>OptiPNG</b> program shall attempt to <i>optimize</i> PNG
files, i.e. reduce their size to a minimum, without losing
any information. In addition, this program shall perform a
suite of auxiliary functions like integrity checks, metadata
recovery and pixmap-to-PNG conversion.</p>
<p style="margin-left:11%; margin-top: 1em">The
optimization attempts are not guaranteed to succeed. Valid
PNG files that cannot be optimized by this program are
normally left intact; their size will not grow. The user may
request to override this default behavior.</p>
<a name="FILES"></a>
<h2>FILES</h2>
<p style="margin-left:11%; margin-top: 1em">The input files
are raster image files encoded either in PNG format (the
native format), or in an external format. The currently
supported external formats are GIF, BMP, PNM and TIFF.</p>
<p style="margin-left:11%; margin-top: 1em"><b>OptiPNG</b>
processes each image file given in the command line as
follows:</p>
<p style="margin-left:11%; margin-top: 1em">&minus; If it
is in PNG format:</p>
<p style="margin-left:22%; margin-top: 1em">Attempt to
optimize the given file in-place. If optimization is
successful, or if the option <b>&minus;force</b> is in
effect, replace the original file with its optimized
version. The original file is backed up if the option
<b>&minus;keep</b> is in effect.</p>
<p style="margin-left:11%; margin-top: 1em">&minus; If it
is in an external format:</p>
<p style="margin-left:22%; margin-top: 1em">Create an
optimized PNG version of the given file. The output file
name is composed from the original file name and the
<tt>.png</tt> extension.</p>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<p style="margin-left:11%; margin-top: 1em"><b>General
options <br>
-?</b>, <b>&minus;h</b>, <b>&minus;help</b></p>
<p style="margin-left:22%;">Show a complete summary of
options.</p>
<p style="margin-left:11%;"><b>&minus;o</b>
<i>level</i></p>
<p style="margin-left:22%;">Select the optimization level.
<br>
The optimization level 0 enables a set of optimization
operations that require minimal effort. There will be no
changes to image attributes like bit depth or color type,
and no recompression of existing IDAT datastreams. <br>
The optimization level 1 enables a single IDAT compression
trial. The trial chosen is what <b>OptiPNG</b> <i>thinks</i>
it&rsquo;s probably the most effective. <br>
The optimization levels 2 and higher enable multiple IDAT
compression trials; the higher the level, the more trials.
<br>
The behavior and the default value of this option may change
across different program versions. Use the option
<b>&minus;h</b> to see the details pertaining to your
specific version.</p>
<p style="margin-left:11%;"><b>&minus;dir</b>
<i>directory</i></p>
<p style="margin-left:22%;">Write output file(s) to
<i>directory</i>.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="6%">
<p style="margin-top: 1em" valign="top"><b>&minus;fix</b></p> </td>
<td width="5%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Enable error
recovery. This option has no effect on valid input
files.</p> </td>
</table>
<p style="margin-left:22%;">The program will spend a
reasonable amount of effort to recover as much data as
possible, without increasing the output file size, but the
success cannot be generally guaranteed. The program may even
increase the file size, e.g., by reconstructing missing
critical data. Under this option, integrity shall take
precedence over file size. <br>
When this option is not used, the invalid input files are
left unprocessed.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p style="margin-top: 1em" valign="top"><b>&minus;force</b></p> </td>
<td width="2%"></td>
<td width="56%">
<p style="margin-top: 1em" valign="top">Enforce writing of
a new output file.</p></td>
<td width="22%">
</td>
</table>
<p style="margin-left:22%;">This option overrides the
program&rsquo;s decision not to write such file, e.g. when
the PNG input is digitally signed (using dSIG), or when the
PNG output becomes larger than the PNG input.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="7%">
<p style="margin-top: 1em" valign="top"><b>&minus;keep</b></p> </td>
<td width="4%"></td>
<td width="58%">
<p style="margin-top: 1em" valign="top">Keep a backup of
the modified file(s).</p></td>
<td width="20%">
</td>
</table>
<p style="margin-left:22%;">The files that use the backup
names prior to the program execution are <i>not</i>
overwritten.</p>
<p style="margin-left:11%;"><b>&minus;log</b>
<i>file</i></p>
<p style="margin-left:22%;">Log messages to <i>file</i>.
For safety reasons, <i>file</i> must have the extension
<tt>.log</tt>.</p>
<p style="margin-left:11%;"><b>&minus;out</b>
<i>file</i></p>
<p style="margin-left:22%;">Write output file to
<i>file</i>. The command line must contain exactly one input
file.</p>
<p style="margin-left:11%;"><b>&minus;preserve</b></p>
<p style="margin-left:22%;">Preserve file attributes (time
stamps, file access rights, etc.) where applicable.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p style="margin-top: 1em" valign="top"><b>&minus;quiet</b></p> </td>
<td width="2%"></td>
<td width="27%">
<p style="margin-top: 1em" valign="top">Run in quiet
mode.</p> </td>
<td width="51%">
</td>
</table>
<p style="margin-left:22%;">These messages are still
written to the log file if the option <b>&minus;log</b> is
in effect.</p>
<p style="margin-left:11%;"><b>&minus;simulate</b></p>
<p style="margin-left:22%;">Run in simulation mode: perform
the trials, but do not create output files.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="7%">
<p style="margin-top: 1em" valign="top"><b>&minus;snip</b></p> </td>
<td width="4%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Cut one image out
of multi-image, animation or video file(s).</p></td>
</table>
<p style="margin-left:22%;">Depending on the input format,
this may be either the first or the most relevant (e.g. the
largest) image.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="3%">
<p style="margin-top: 1em" valign="top"><b>&minus;v</b></p> </td>
<td width="8%"></td>
<td width="63%">
<p style="margin-top: 1em" valign="top">Enable the options
<b>&minus;verbose</b> and <b>&minus;version</b>.</p></td>
<td width="15%">
</td>
</table>
<p style="margin-left:11%;"><b>&minus;verbose</b></p>
<p style="margin-left:22%;">Run in verbose mode.</p>
<p style="margin-left:11%;"><b>&minus;version</b></p>
<p style="margin-left:22%;">Show copyright, version and
build info.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="3%">
<p style="margin-top: 1em" valign="top"><b>&minus;&minus;</b></p> </td>
<td width="8%"></td>
<td width="41%">
<p style="margin-top: 1em" valign="top">Stop option switch
parsing.</p> </td>
<td width="37%">
</td>
</table>
<p style="margin-left:11%; margin-top: 1em"><b>PNG encoding
and optimization options <br>
&minus;f</b> <i>filters</i></p>
<p style="margin-left:22%;">Select the PNG delta filters.
<br>
The <i>filters</i> argument is specified as a rangeset (e.g.
<b>&minus;f0&minus;5</b>), and the default <i>filters</i>
value depends on the optimization level set by the option
<b>&minus;o</b>. <br>
The filter values 0, 1, 2, 3 and 4 indicate static
filtering, and correspond to the standard PNG filter codes
(<i>None</i>, <i>Left</i>, <i>Up</i>, <i>Average</i> and
<i>Paeth</i>, respectively). The filter value 5 indicates
adaptive filtering, whose effect is defined by the
<b>libpng</b>(3) library used by <b>OptiPNG</b>.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="7%">
<p style="margin-top: 1em" valign="top"><b>&minus;full</b></p> </td>
<td width="4%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Produce a full
report on IDAT. This option might slow down the trials.</p></td>
</table>
<p style="margin-left:11%;"><b>&minus;i</b> <i>type</i></p>
<p style="margin-left:22%;">Select the interlace type
(0&minus;1). <br>
If the interlace type 0 is selected, the output image shall
be non-interlaced (i.e. progressive-scanned). If the
interlace type 1 is selected, the output image shall be
interlaced using the <i>Adam7</i> method. <br>
By default, the output shall have the same interlace type as
the input.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">
<p style="margin-top: 1em" valign="top"><b>&minus;nb</b></p> </td>
<td width="7%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Do not apply bit
depth reduction.</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">
<p style="margin-top: 1em" valign="top"><b>&minus;nc</b></p> </td>
<td width="7%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Do not apply color
type reduction.</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">
<p style="margin-top: 1em" valign="top"><b>&minus;np</b></p> </td>
<td width="7%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Do not apply
palette reduction.</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">
<p style="margin-top: 1em" valign="top"><b>&minus;nx</b></p> </td>
<td width="7%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Do not apply any
lossless image reduction: enable the options
<b>&minus;nb</b>, <b>&minus;nc</b> and <b>&minus;np</b>.</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">
<p style="margin-top: 1em" valign="top"><b>&minus;nz</b></p> </td>
<td width="7%"></td>
<td width="78%">
<p style="margin-top: 1em" valign="top">Do not recode IDAT
datastreams.</p> </td>
</table>
<p style="margin-left:22%;">The IDAT optimization
operations that do not require recoding (e.g. IDAT chunk
concatenation) are still performed. <br>
This option has effect on PNG input files only.</p>
<p style="margin-left:11%;"><b>&minus;zc</b>
<i>levels</i></p>
<p style="margin-left:22%;">Select the zlib compression
levels used in IDAT compression. <br>
The <i>levels</i> argument is specified as a rangeset (e.g.
<b>&minus;zc6&minus;9</b>), and the default <i>levels</i>
value depends on the optimization level set by the option
<b>&minus;o</b>. <br>
The effect of this option is defined by the <b>zlib</b>(3)
library used by <b>OptiPNG</b>.</p>
<p style="margin-left:11%;"><b>&minus;zm</b>
<i>levels</i></p>
<p style="margin-left:22%;">Select the zlib memory levels
used in IDAT compression. <br>
The <i>levels</i> argument is specified as a rangeset (e.g.
<b>-zm8&minus;9</b>), and the default <i>levels</i> value
depends on the optimization level set by the option
<b>&minus;o</b>. <br>
The effect of this option is defined by the <b>zlib</b>(3)
library used by <b>OptiPNG</b>.</p>
<p style="margin-left:11%;"><b>&minus;zs</b>
<i>strategies</i></p>
<p style="margin-left:22%;">Select the zlib compression
strategies used in IDAT compression. <br>
The <i>strategies</i> argument is specified as a rangeset
(e.g. <b>-zs0&minus;3</b>), and the default
<i>strategies</i> value depends on the optimization level
set by the option <b>&minus;o</b>. <br>
The effect of this option is defined by the <b>zlib</b>(3)
library used by <b>OptiPNG</b>.</p>
<p style="margin-left:11%;"><b>&minus;zw</b>
<i>size</i></p>
<p style="margin-left:22%;">Select the zlib window size
(32k,16k,8k,4k,2k,1k,512,256) used in IDAT compression. <br>
The <i>size</i> argument can be specified either in bytes
(e.g. 16384) or kilobytes (e.g. 16k). The default
<i>size</i> value is set to the lowest window size that
yields an IDAT output as big as if yielded by the value
32768. <br>
The effect of this option is defined by the <b>zlib</b>(3)
library used by <b>OptiPNG</b>.</p>
<p style="margin-left:11%; margin-top: 1em"><b>Notes</b>
<br>
Options may come in any order (except for
<b>&minus;&minus;</b>), before, after, or alternating with
file names. Option names are case-insensitive and may be
abbreviated to their shortest unique prefix.</p>
<p style="margin-left:11%; margin-top: 1em">Some options
may have arguments that follow the option name, separated by
whitespace or the equal sign (&rsquo;<b>=</b>&rsquo;). If
the option argument is a number or a rangeset, the separator
may be omitted. For example:</p>
<p style="margin-left:22%; margin-top: 1em"><b>&minus;out</b>
<tt>newfile.png</tt> &lt;=&gt;
<b>&minus;out=</b><tt>newfile.png</tt> <b><br>
&minus;o3</b> &lt;=&gt; <b>&minus;o&nbsp;3</b> &lt;=&gt;
<b>&minus;o=3 <br>
&minus;f0,3&minus;5</b> &lt;=&gt;
<b>&minus;f&nbsp;0,3&minus;5</b> &lt;=&gt;
<b>&minus;f=0,3&minus;5</b></p>
<p style="margin-left:11%; margin-top: 1em">Rangeset
arguments are cumulative; e.g.</p>
<p style="margin-left:22%; margin-top: 1em"><b>&minus;f0
&minus;f3&minus;5</b> &lt;=&gt; <b>&minus;f0,3&minus;5 <br>
&minus;zs0 &minus;zs1 &minus;zs2&minus;3</b> &lt;=&gt;
<b>&minus;zs0,1,2,3</b> &lt;=&gt;
<b>&minus;zs0&minus;3</b></p>
<a name="EXTENDED DESCRIPTION"></a>
<h2>EXTENDED DESCRIPTION</h2>
<p style="margin-left:11%; margin-top: 1em">The PNG
optimization algorithm consists of the following steps:</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="3%">
<p style="margin-top: 1em" valign="top">1.</p></td>
<td width="3%"></td>
<td width="83%">
<p style="margin-top: 1em" valign="top">Reduce the bit
depth, the color type and the color palette of the image.
This step may reduce the size of the uncompressed image,
which, indirectly, may reduce the size of the compressed
image (i.e. the size of the output PNG file).</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="3%">
<p style="margin-top: 1em" valign="top">2.</p></td>
<td width="3%"></td>
<td width="83%">
<p style="margin-top: 1em" valign="top">Run a suite of
compression methods and strategies and select the
compression parameters that yield the smallest output
file.</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="3%">
<p style="margin-top: 1em" valign="top">3.</p></td>
<td width="3%"></td>
<td width="83%">
<p style="margin-top: 1em" valign="top">Store all IDAT
contents into a single chunk, eliminating the overhead
incurred by repeated IDAT headers and CRCs.</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="3%">
<p style="margin-top: 1em" valign="top">4.</p></td>
<td width="3%"></td>
<td width="83%">
<p style="margin-top: 1em" valign="top">Set the zlib window
size inside IDAT to a mininum that does not affect the
compression ratio, reducing the memory requirements of PNG
decoders.</p> </td>
</table>
<p style="margin-left:11%; margin-top: 1em">Not all of the
above steps need to be executed. The behavior depends on the
actual input files and user options.</p>
<p style="margin-left:11%; margin-top: 1em">Step 1 may be
customized via the no-reduce options <b>&minus;nb</b>,
<b>&minus;nc</b>, <b>&minus;np</b> and <b>&minus;nx</b>.
Step 2 may be customized via the <b>&minus;o</b> option, and
may be fine-tuned via the options <b>&minus;zc</b>,
<b>&minus;zm</b>, <b>&minus;zs</b> and <b>&minus;zw</b>.
Step 3 is always executed. Step 4 is executed only if a new
IDAT is being created, and may be fine-tuned via the option
<b>&minus;zw</b>.</p>
<p style="margin-left:11%; margin-top: 1em">Extremely
exhaustive searches are not generally expected to yield
significant improvements in compression ratio, and are
recommended to advanced users only.</p>
<a name="EXAMPLES"></a>
<h2>EXAMPLES</h2>
<p style="margin-left:11%; margin-top: 1em"><tt>optipng
file1.png file2.gif file3.tif</tt></p>
<p style="margin-left:11%; margin-top: 1em"><tt>optipng
&minus;o5 file1.png file2.gif file3.tif</tt></p>
<p style="margin-left:11%; margin-top: 1em"><tt>optipng
&minus;i1 &minus;o7 &minus;v &minus;full &minus;sim
experiment.png</tt></p>
<a name="BUGS"></a>
<h2>BUGS</h2>
<p style="margin-left:11%; margin-top: 1em">Lossless image
reductions are not completely implemented. (This does NOT
affect the integrity of the output files.) Here are the
missing pieces:</p>
<p style="margin-left:22%; margin-top: 1em">&minus; The
color palette reductions are implemented only partially.
<br>
&minus; The bit depth reductions below 8, for grayscale
images, are not implemented yet.</p>
<p style="margin-left:11%; margin-top: 1em">TIFF support is
limited to uncompressed, PNG-compatible (grayscale, RGB and
RGBA) images.</p>
<p style="margin-left:11%; margin-top: 1em">Metadata is not
imported from the external image formats.</p>
<p style="margin-left:11%; margin-top: 1em">There is no
support for pipes or streams.</p>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<p style="margin-left:11%; margin-top: 1em"><b>png</b>(5),
<b>libpng</b>(3), <b>zlib</b>(3), <b>pngcrush</b>(1),
<b>pngrewrite</b>(1).</p>
<a name="STANDARDS"></a>
<h2>STANDARDS</h2>
<p style="margin-left:11%; margin-top: 1em">The files
produced by <b>OptiPNG</b> are compliant with
<b>PNG&minus;2003</b>: <br>
Glenn Randers-Pehrson et al. <i>Portable Network Graphics
(PNG) Specification, Second Edition</i>. <br>
W3C Recommendation 10 November 2003; ISO/IEC IS 15948:2003
(E). <tt><br>
http://www.w3.org/TR/PNG/</tt></p>
<a name="AUTHOR"></a>
<h2>AUTHOR</h2>
<p style="margin-left:11%; margin-top: 1em"><b>OptiPNG</b>
is written and maintained by Cosmin Truta.</p>
<p style="margin-left:11%; margin-top: 1em">This manual
page was originally written by Nelson A. de Oliveira for the
Debian Project. It was later updated by Cosmin Truta, and is
now part of the <b>OptiPNG</b> distribution.</p>
<hr>
</body>
</html>

View File

@@ -1,280 +0,0 @@
OPTIPNG(1) OPTIPNG(1)
NAME
OptiPNG - Advanced optimization program for Portable Network Graphics
(PNG)
SYNOPSIS
optipng [-? | -h | -help]
optipng [options...] files...
DESCRIPTION
The OptiPNG program shall attempt to optimize PNG files, i.e. reduce
their size to a minimum, without losing any information. In addition,
this program shall perform a suite of auxiliary functions like
integrity checks, metadata recovery and pixmap-to-PNG conversion.
The optimization attempts are not guaranteed to succeed. Valid PNG
files that cannot be optimized by this program are normally left
intact; their size will not grow. The user may request to override this
default behavior.
FILES
The input files are raster image files encoded either in PNG format
(the native format), or in an external format. The currently supported
external formats are GIF, BMP, PNM and TIFF.
OptiPNG processes each image file given in the command line as follows:
- If it is in PNG format:
Attempt to optimize the given file in-place. If optimization is
successful, or if the option -force is in effect, replace the
original file with its optimized version. The original file is
backed up if the option -keep is in effect.
- If it is in an external format:
Create an optimized PNG version of the given file. The output
file name is composed from the original file name and the .png
extension.
OPTIONS
General options
-?, -h, -help
Show a complete summary of options.
-o level
Select the optimization level.
The optimization level 0 enables a set of optimization opera-
tions that require minimal effort. There will be no changes to
image attributes like bit depth or color type, and no recompres-
sion of existing IDAT datastreams.
The optimization level 1 enables a single IDAT compression
trial. The trial chosen is what OptiPNG thinks it's probably the
most effective.
The optimization levels 2 and higher enable multiple IDAT com-
pression trials; the higher the level, the more trials.
The behavior and the default value of this option may change
across different program versions. Use the option -h to see the
details pertaining to your specific version.
-dir directory
Write output file(s) to directory.
-fix Enable error recovery. This option has no effect on valid input
files.
The program will spend a reasonable amount of effort to recover
as much data as possible, without increasing the output file
size, but the success cannot be generally guaranteed. The pro-
gram may even increase the file size, e.g., by reconstructing
missing critical data. Under this option, integrity shall take
precedence over file size.
When this option is not used, the invalid input files are left
unprocessed.
-force Enforce writing of a new output file.
This option overrides the program's decision not to write such
file, e.g. when the PNG input is digitally signed (using dSIG),
or when the PNG output becomes larger than the PNG input.
-keep Keep a backup of the modified file(s).
The files that use the backup names prior to the program execu-
tion are not overwritten.
-log file
Log messages to file. For safety reasons, file must have the
extension .log.
-out file
Write output file to file. The command line must contain
exactly one input file.
-preserve
Preserve file attributes (time stamps, file access rights, etc.)
where applicable.
-quiet Run in quiet mode.
These messages are still written to the log file if the option
-log is in effect.
-simulate
Run in simulation mode: perform the trials, but do not create
output files.
-snip Cut one image out of multi-image, animation or video file(s).
Depending on the input format, this may be either the first or
the most relevant (e.g. the largest) image.
-v Enable the options -verbose and -version.
-verbose
Run in verbose mode.
-version
Show copyright, version and build info.
-- Stop option switch parsing.
PNG encoding and optimization options
-f filters
Select the PNG delta filters.
The filters argument is specified as a rangeset (e.g. -f0-5),
and the default filters value depends on the optimization level
set by the option -o.
The filter values 0, 1, 2, 3 and 4 indicate static filtering,
and correspond to the standard PNG filter codes (None, Left, Up,
Average and Paeth, respectively). The filter value 5 indicates
adaptive filtering, whose effect is defined by the libpng(3)
library used by OptiPNG.
-full Produce a full report on IDAT. This option might slow down the
trials.
-i type
Select the interlace type (0-1).
If the interlace type 0 is selected, the output image shall be
non-interlaced (i.e. progressive-scanned). If the interlace type
1 is selected, the output image shall be interlaced using the
Adam7 method.
By default, the output shall have the same interlace type as the
input.
-nb Do not apply bit depth reduction.
-nc Do not apply color type reduction.
-np Do not apply palette reduction.
-nx Do not apply any lossless image reduction: enable the options
-nb, -nc and -np.
-nz Do not recode IDAT datastreams.
The IDAT optimization operations that do not require recoding
(e.g. IDAT chunk concatenation) are still performed.
This option has effect on PNG input files only.
-zc levels
Select the zlib compression levels used in IDAT compression.
The levels argument is specified as a rangeset (e.g. -zc6-9),
and the default levels value depends on the optimization level
set by the option -o.
The effect of this option is defined by the zlib(3) library used
by OptiPNG.
-zm levels
Select the zlib memory levels used in IDAT compression.
The levels argument is specified as a rangeset (e.g. -zm8-9),
and the default levels value depends on the optimization level
set by the option -o.
The effect of this option is defined by the zlib(3) library used
by OptiPNG.
-zs strategies
Select the zlib compression strategies used in IDAT compression.
The strategies argument is specified as a rangeset (e.g.
-zs0-3), and the default strategies value depends on the opti-
mization level set by the option -o.
The effect of this option is defined by the zlib(3) library used
by OptiPNG.
-zw size
Select the zlib window size (32k,16k,8k,4k,2k,1k,512,256) used
in IDAT compression.
The size argument can be specified either in bytes (e.g. 16384)
or kilobytes (e.g. 16k). The default size value is set to the
lowest window size that yields an IDAT output as big as if
yielded by the value 32768.
The effect of this option is defined by the zlib(3) library used
by OptiPNG.
Notes
Options may come in any order (except for --), before, after, or alter-
nating with file names. Option names are case-insensitive and may be
abbreviated to their shortest unique prefix.
Some options may have arguments that follow the option name, separated
by whitespace or the equal sign ('='). If the option argument is a num-
ber or a rangeset, the separator may be omitted. For example:
-out newfile.png <=> -out=newfile.png
-o3 <=> -o 3 <=> -o=3
-f0,3-5 <=> -f 0,3-5 <=> -f=0,3-5
Rangeset arguments are cumulative; e.g.
-f0 -f3-5 <=> -f0,3-5
-zs0 -zs1 -zs2-3 <=> -zs0,1,2,3 <=> -zs0-3
EXTENDED DESCRIPTION
The PNG optimization algorithm consists of the following steps:
1. Reduce the bit depth, the color type and the color palette of the
image. This step may reduce the size of the uncompressed image,
which, indirectly, may reduce the size of the compressed image
(i.e. the size of the output PNG file).
2. Run a suite of compression methods and strategies and select the
compression parameters that yield the smallest output file.
3. Store all IDAT contents into a single chunk, eliminating the over-
head incurred by repeated IDAT headers and CRCs.
4. Set the zlib window size inside IDAT to a mininum that does not
affect the compression ratio, reducing the memory requirements of
PNG decoders.
Not all of the above steps need to be executed. The behavior depends on
the actual input files and user options.
Step 1 may be customized via the no-reduce options -nb, -nc, -np and
-nx. Step 2 may be customized via the -o option, and may be fine-tuned
via the options -zc, -zm, -zs and -zw. Step 3 is always executed. Step
4 is executed only if a new IDAT is being created, and may be fine-
tuned via the option -zw.
Extremely exhaustive searches are not generally expected to yield sig-
nificant improvements in compression ratio, and are recommended to
advanced users only.
EXAMPLES
optipng file1.png file2.gif file3.tif
optipng -o5 file1.png file2.gif file3.tif
optipng -i1 -o7 -v -full -sim experiment.png
BUGS
Lossless image reductions are not completely implemented. (This does
NOT affect the integrity of the output files.) Here are the missing
pieces:
- The color palette reductions are implemented only partially.
- The bit depth reductions below 8, for grayscale images, are
not implemented yet.
TIFF support is limited to uncompressed, PNG-compatible (grayscale, RGB
and RGBA) images.
Metadata is not imported from the external image formats.
There is no support for pipes or streams.
SEE ALSO
png(5), libpng(3), zlib(3), pngcrush(1), pngrewrite(1).
STANDARDS
The files produced by OptiPNG are compliant with PNG-2003:
Glenn Randers-Pehrson et al. Portable Network Graphics (PNG) Specifi-
cation, Second Edition.
W3C Recommendation 10 November 2003; ISO/IEC IS 15948:2003 (E).
http://www.w3.org/TR/PNG/
AUTHOR
OptiPNG is written and maintained by Cosmin Truta.
This manual page was originally written by Nelson A. de Oliveira for
the Debian Project. It was later updated by Cosmin Truta, and is now
part of the OptiPNG distribution.
OptiPNG version 0.6.4 2010-March-14 OPTIPNG(1)

View File

@@ -1,634 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Author" content="Cosmin Truţa">
<title>A guide to PNG optimization</title>
</head>
<body>
<h2>A guide to PNG optimization</h2>
<h3>1. Background</h3>
<h4>1.1 The PNG file format</h4>
<p>
The <a href="http://www.libpng.org/pub/png/">Portable Network Graphics</a>
(<b><i>PNG</i></b>) is a format for storing compressed raster graphics. The
compression engine is based on the <b><i>Deflate</i></b> method
[<a href="http://www.ietf.org/rfc/rfc1951">RFC1951</a>],
designed by
<a href="http://www.pkware.com/">PKWare</a>
and originally used in <b>PKZIP</b>.
</p>
<p>
The PNG format is defined by the
<a href="http://www.libpng.org/pub/png/spec/">PNG Specification</a>.
This specification was developed by an ad-hoc group named the
<a href="http://www.libpng.org/pub/png/">PNG Development Group</a>, and it is
both an International Standard (published under the formal name
ISO/IEC&nbsp;15948) and a W3C Recommendation.
</p>
<p>
PNG was initially intended as a superior, patent-free replacement of GIF. The
final outcome is a modern, extensible, reliable image format, capable to handle
an impressive number of image types (from 1-bit black-and-white images up to
48-bit RGB images with a full 16-bit alpha channel), and geared by a
significantly stronger lossless compression engine (typically 5-25% better than
GIF).
</p>
<p>
Unlike other lossless compression schemes, PNG compression does not depend
solely on the statistics of the input, but it may vary within wide limits,
depending on the compressor's implementation. A good PNG encoder must be
able to take informed decisions about the factors that affect the size of the
output. The purpose of this article is to provide information about these
factors, and to give advice on implementing efficient PNG encoders.
</p>
<h4>1.2 The PNG compression</h4>
<p>
The PNG compression works in a pipeline manner.
</p>
<p>
In the first stage, the image pixels are passed through a lossless arithmetic
transformation named <b><i>delta filtering</i></b>, or simply
<b><i>filtering</i></b>, and sent further as a (filtered) byte sequence.
Filtering does not compress or otherwise reduce the size of the data, but it
makes the data more compressible.
</p>
<p>
In the second stage, the filtered byte sequence is passed through the
Ziv-Lempel algorithm (LZ77), producing LZ77 codes that are further compressed
by the Huffman algorithm in the third and final stage. The combination of the
last two stages is referred to as the <b><i>Deflate compression</i></b>, a
widely-used, patent-free algorithm for universal, lossless data compression.
The maximum size of the LZ77 sliding window in Deflate is 32768 bytes, and the
LZ77 matches can be between 3 and 258 bytes long.
</p>
<p>
A complete description of the PNG compression is beyond the scope of this
guide. The PNG Specification describes the format completely, and provides
a complete list of references to the underlying technologies.
</p>
<h3>2. Factors that affect the PNG file size</h3>
<div>
Like any other compression scheme, PNG compression depends on the statistics
of the input data. In addition, it depends on the following PNG-specific
parameters:
</div>
<ol>
<li>
The PNG image type
</li>
<li>
The PNG delta filters
</li>
<li>
The strategy of searching LZ77 matches
</li>
<li>
The size of the Huffman buffers inside the Deflate encoder
</li>
</ol>
<p>
Depending on how these parameters are chosen by the implementation, PNG
compression may vary within wide limits. The process of selecting the best
configuration is computationally infeasible, but heuristics to select a
satisfactory configuration are available. The problem of improving these
heuristics constitutes an interesting subject for research.
</p>
<h4>2.1 The PNG image type</h4>
<p>
The type of a PNG image is defined in the <b><code>IHDR</code></b> image
header. The image has a certain bit depth, up to 16 bits per sample, and a
certain color type, from Grayscale to RGB+Alpha. If two PNG files of different
types represent exactly the same image, each file can be regarded as a lossless
transformation of the other. A lossless transformation can reduce the
<i>uncompressed</i> stream, and such a transformation is named <b><i>image
reduction</i></b>. In most cases, image reductions are capable of reducing the
<i>compressed</i> stream (which is, in fact, our interest), as an indirect
effect of reducing the size of the compressor's input.
</p>
<div>
The possible image reductions are:
</div>
<ul>
<li>
<i>Bit depth reduction</i>
<br>
The bit depth can be reduced to a minimum value that is acceptable for all
samples. For example, if all sample values in a 16-bit image have the form
(256+1)*<i>n</i>, (e.g. #0000, #2323, #FFFF), then the bit depth can be
reduced to 8, and the new sample values will become <i>n</i>, (e.g. #00, #23,
#FF).
</li>
<li>
<i>Color type reduction</i>
<br>
- If an RGB image has 256 distinct colors or less, it can be reencoded as a
Palette image.
<br>
- If an RGB or Palette image has only gray pixels, it can be reencoded as
Grayscale.
<br>
A color type reduction can also enable a bit depth reduction.
</li>
<li>
<i>Color palette reduction</i>
<br>
If the color palette contains redundant entries (i.e. duplicate entries that
indicate the same RGB value) or sterile entries (i.e. entries that do not
have a correspondent in the raw pixel data), these entries can be removed.
<br>
A color palette reduction can also enable a bit depth reduction.
</li>
<li>
<i>Alpha channel reduction</i>
<br>
If all pixels in a Grayscale+Alpha or an RGB+Alpha image are fully opaque
(i.e. all alpha components are equal to 2^<sup>bitdepth</sup>-1), or if the
transparency information can be stored entirely in a (much cheaper)
<b><code>tRNS</code></b> chunk, the alpha channel can be stripped.
</li>
</ul>
<p>
There are, however, a few cases when some image type reductions do not
necessarily lead to the reduction of the compressed stream. The
<a href="http://www.cs.toronto.edu/~cosmin/pngtech/">PNG-Tech</a> site contains
experimental analyses of these possibilities; for example, see the article
<a href="8bpp.html">8 bits per pixel in paletted images</a>.
</p>
<p>
Interlacing, useful for a faster, progressive rendering, is another component
of the PNG image type that affects compression. In an interlaced stream, the
samples corresponding to neighboring pixels are stored far away, hence the data
in it is less correlated and less compressible. Unlike JPEG, where interlacing
may improve the compression slightly, the PNG interlacing degrades the
compression significantly.
</p>
<h4>2.2 The PNG delta filters</h4>
<p>
The role of filtering can be illustrated in the following example. Assume the
sequence 2, 3, 4, 5, 6, 7, 8, 9. Although it has much redundancy, the sequence
is not compressible by a Ziv-Lempel compressor, nor by a Huffman compressor.
However, if one makes a simple and reversible transformation, replacing each
value with the numerical difference between it and the value to its left, the
sequence becomes 2, 1, 1, 1, 1, 1, 1, 1, which is highly compressible.
</p>
<p>
The PNG format employs five types of filters: <b><i>None</i></b>,
<b><i>Left</i></b>, <b><i>Up</i></b>, <b><i>Average</i></b>, and
<b><i>Paeth</i></b>. The first filter leaves the original data intact, and the
other four are subtracting from each pixel a value that involves the
neighbor pixels from the left, up, and/or the upper left.
</p>
<p>
A certain filter is assigned to each row, and is applied to all pixels from
that row. Therefore, an image can be delta-filtered in a huge number of
possible configurations (5 ^ <sup><i>height</i></sup>), and each configuration
leads to a different compressed output. Two different filter configurations may
make a difference in the compressed file size by a couple of factors, so a
careful choice of filters is of paramount importance.
</p>
<p>
It is possible to apply a single filter to all rows, or to apply different
filters to different rows. In the former case, the filtering process is
<b><i>fixed</i></b>; in the latter, it is <b><i>adaptive</i></b>.
</p>
<div>
While an exhaustive search is unfeasible, the PNG Specification suggests a
heuristic filtering strategy:
</div>
<ul>
<li>
If the image type is Palette, or the bit depth is smaller than 8, then
do not filter the image (i.e. use fixed filtering, with the filter
<i>None</i>).
</li>
<li>
(The other case) If the image type is Grayscale or RGB (with or without
Alpha), and the bit depth is not smaller than 8, then use adaptive filtering
as follows: <i>independently for each row</i>, apply all five filters and
select the filter that produces the smallest sum of absolute values per row.
</li>
</ul>
<p>
Cases where the above heuristics are less than optimal are shown on the
<a href="http://www.cs.toronto.edu/~cosmin/pngtech/">PNG-Tech</a>
site; for example, see
<a href="better-filtering.html">Brute-force vs. heuristic filtering</a>.
</p>
<h4>2.3 The strategy of searching LZ77 matches</h4>
<p>
The Ziv-Lempel algorithm works under the assumption that contiguous sequences
appear repeatedly in the input stream. If the sequence to be encoded matches
one or more sequences already present in the sliding history window, the
encoder sends a LZ77 pair (<i>distance</i>, <i>length</i>) that points to the
<i>closest</i> match. In most LZ77 incarnations, including Deflate, smaller
distance codes are encoded more concisely.
</p>
<p>
In Deflate, in particular, the regular (non-matched) symbols, and the match
lengths, are sent to the same Huffman coder, while the match distances are sent
to a separate Huffman coder. If the LZ77 matches fall between the accepted
boundaries (i.e. they are not shorter than 3 and not longer than 258), a greedy
strategy will accept them as a replacement for the symbols to which they
correspond.
</p>
<p>
The greedy strategy is preferable when compressing text files, or many types of
binary files, but it may be suboptimal when compressing filtered data, such as
the byte strings that come from a PNG filter. Filtered data consist mostly of
small values with a pseudo-random distribution. Therefore, in certain
situations, it may be desirable to favor the encoding of individual symbols,
even if matches that may replace these symbols exist.
</p>
<p>
The
<a href="http://www.zlib.org/">zlib Reference Library</a>
is a reference implementation of Deflate, which is further used by the
<a href="http://www.libpng.org/pub/png/libpng.html">PNG Reference Library</a>.
By default, <b>zlib</b> selects the greedy strategy, but the user is able to
specify his or her custom preference via the <code>strategy</code> parameter.
This parameter can take one of the following values:
<br>
- <code>Z_DEFAULT_STRATEGY = 0</code>, the default greedy search strategy.
<br>
- <code>Z_FILTERED = 1</code>, a strategy in which the matches are accepted
only if their length is 6 or bigger.
<br>
- <code>Z_HUFFMAN_ONLY = 2</code>, a fast strategy in which the Ziv-Lempel
algorithm is entirely bypassed, and all the symbols from the input are encoded
directly by the Huffman coder.
<br>
- <code>Z_RLE = 3</code> (appeared in the <b>zlib-1.2.x</b> series), a fast
strategy in which the LZ77 algorithm is essentially reduced to the Run-Length
Encoding algorithm. In other words, the matches are accepted only if their
distance is 1. For example, the 10-symbol sequence "<code>aaaaaaaaaa</code>"
can be LZ77-encoded as
['<code>a</code>', (<i>distance</i>=1, <i>length</i>=9)];
by removing <i>distance</i>=1 from the picture, this encoding can be regarded
as a peculiar run-length encoding (which differs from the classic RLE by using
<i>length</i>=9 instead of <i>count</i>=10).
<br>
The <code>strategy</code> parameter affects only the compression ratio. It does
not affect the correctness of the compressed output, even if it is set to an
inappropriate value.
</p>
<p>
It was experimentally observed that the LZ77 search is occasionally capable of
producing smaller PNGs if it is less exhaustive. The reason behind this act
resides in the same category of "strategic searches" discussed here.
Unfortunately, there is no known method of anticipating which search level
(from the fastest and the least exhaustive, to the slowest and the most
exhaustive) is better, other than assuming "the most exhaustive is better in
most cases".
</p>
<p>
Unfortunately, even a "filtered" strategy does not always produce better
results than a "greedy" strategy on filtered input, and the only known method
to obtain the best combination is by multiple trials. Experiments and
measurements can, again, be found on the
<a href="http://www.cs.toronto.edu/~cosmin/pngtech/">PNG-Tech</a>
site; for example, see the original
<a href="z_rle.html">Z_RLE strategy proposal</a>.
</p>
<h4>2.4 The size of Huffman buffers</h4>
<p>
As mentioned earlier, the entropy encoder inside the Deflate method is the
static Huffman algorithm. The output of LZ77 is fed into a buffer which is
occasionally flushed by sending a static Huffman tree followed by all the
Huffman codes, to the output of Deflate. After this, both the buffer and the
Huffman tree are reset, waiting for the subsequent LZ77 codes to come and
refill the buffer.
</p>
<blockquote>
The Deflate specification refers to <i>dynamic Huffman codes</i>. However, this
is a misnomer, in which the term <i>dynamic</i> is used in contrast to the
<i>fixed</i> Huffman codes. The fixed Huffman codes are simply built according
to a predefined Huffman tree, without regard to the actual symbol frequencies.
The dynamic Huffman codes referred to by the Deflate specification are NOT
built by the dynamic Huffman algorithm, as defined, for example, by Faller,
Gallager and Knuth (the FGK algorithm), or by Vitter (the V algorithm).
The predefined Huffman tree was introduced in <b>PKZIP</b> as a fast
compression alternative, but it produces poor results even on text, and it is
almost useless in PNG compression. Still, a PNG stream that contains codes
built by the fixed (predefined) Huffman tree, is a valid stream, and a
compliant PNG reader must decode this stream correctly.
</blockquote>
<p>
It is desirable to establish the buffer boundaries so that sequences conforming
to the same probability model are fit in the same Huffman buffer. Methods for
approaching these boundaries exist, but they are not used in the mainstream
Deflate implementation(s). Instead, the buffers are flushed when a limit
(typically, 16k LZ77 codes) is reached. This is, however, a fast approach, and
the results are satisfactory.
</p>
<p>
The size of Huffman buffers is indirectly determined by the encoder's memory
(usage) level. For this reason, certain memory levels might be good for certain
types of images.
</p>
<h3>3. PNG (lossless) optimization programs</h3>
<p>
The multitude of PNG encoding programs is listed at
<a href="http://www.libpng.org/pub/png/pngapps.html">http://www.libpng.org/pub/png/pngapps.html</a>.
Their performance varies as much as the range of possible compression ratios;
the good encoders are at least applying the filtering heuristics, described
briefly in the PNG Specification, and illustrated above.
<br>
Some programs gain extra compression by discarding some of the data in the
input images (so these programs are <i>lossy</i>!)
</p>
<p>
This section contains the small list of <b><i>PNG optimization programs</i></b>
that show a particular concern towards obtaining a file size as small as
possible. They work by performing repeated compression trials, applying various
parameter sets, and selecting the parameter set that yields the smallest
compressed output.
</p>
<ul>
<li>
<p>
<b>pngrewrite</b> by Jason Summers, available at
<a href="http://www.pobox.com/~jason1/pngrewrite/">http://www.pobox.com/~jason1/pngrewrite</a>,
is an open-source program that performs lossless image reductions.
It works best in conjunction with <b>pngcrush</b> (see below); the user
should run <b>pngcrush</b> <i>after</i> <b>pngrewrite</b>.
</p>
</li>
<li>
<p>
<b>pngcrush</b> by Glenn Randers-Pehrson, available at
<a href="http://pmt.sourceforge.net/pngcrush/">http://pmt.sourceforge.net/pngcrush</a>,
is an open-source program that iterates over PNG filters and zlib (Deflate)
parameters, compresses the image repeatedly using each parameter
configuration, and chooses the configuration that yields the smallest
compressed (IDAT) output.
At the user's option, the program can explore few (below 10) or many (a
brute-force traversal over more than 100) configurations. The method of
selecting the parameters for "few" trials is particularly effective, and the
use of a brute-force traversal is generally not recommended.
</p>
<p>
In addition, <b>pngcrush</b> offers a multitude of extra features, such as
recovery of erroneous PNG files (e.g. files containing bad CRCs), and
chunk-level editing of PNG meta-data.
</p>
</li>
<li>
<p>
<b>OptiPNG</b> by Cosmin Truţa, available at
<a href="http://www.cs.toronto.edu/~cosmin/pngtech/optipng/">http://www.cs.toronto.edu/pngtech/optipng</a>,
is a newer open-source program, inspired from <b>pngcrush</b>, but designed
to be more flexible and to run faster.
Unlike <b>pngcrush</b>, <b>OptiPNG</b> performs the trials entirely in
memory, and writes only the final output file on the disk. Moreover, it
offers multiple optimization presets to the user, who can choose among a
range of options from "very few trials" to "very many trials" (in contrast to
the coarser "smart vs. brute" option offered by <b>pngcrush</b>).
</p>
<p>
It is important to mention that the achieved compression ratio is less and
less likely to improve when higher-level presets (trigerring more trials)
are being used. Even if the program is capable of searching automatically
over more than 200 configurations (and the advanced users have access to more
than 1000 configurations!), a preset that selects around 10 trials should be
satisfactory for most users. Furthermore, a preset that selects between
30-40 trials <i>should</i> be satisfactory for all users, for it is very,
very unlikely to be beaten significantly by any wider search. The rest of the
trial configurations are offered rather as a curiosity (but they were used in
the experimentation from which we concluded they are indeed useless!)
</p>
</li>
<li>
<p>
<b>AdvanceCOMP</b> by Andrea Mazzoleni is a set of tools for optimizing
ZIP/GZIP, PNG and MNG files, based on the powerful <b>7-Zip</b> deflation
engine. The name of the PNG optimization tool is <b>AdvPNG</b>. At the time
of this writing, <b>AdvPNG</b> does not perform image reductions, so the use
of <b>pngrewrite</b> or <b>OptiPNG</b> prior to optimiziation may be
necessary. However, given the effectivenes of <b>7-Zip</b> deflation,
<b>AdvanceCOMP</b> is a powerful contender.
</p>
<p>
The <b>AdvanceCOMP</b> tool set is a part of the <b>AdvanceMAME</b> project,
available at
<a href="http://advancemame.sourceforge.net/">http://advancemame.sourceforge.net</a>.
</p>
</li>
<li>
<p>
<b>PNGOut</b> by Ken Silverman, available at
<a href="http://advsys.net/ken/utils.htm">http://advsys.net/ken/utils.htm</a>,
is a freely-available compiled program (no source code), running on
Windows and Linux. According to our tests, the compression ratio achieved by
<b>PNGOut</b> is comparable to that of <b>AdvPNG</b>.
Unfortunately, due to the lack of information, we cannot say much about this
tool.
</p>
<p>
A nice GUI frontend for <b>PNGOut</b>, named <b>PNGGauntlet</b>, is
available at
<a href="http://www.numbera.com/software/pnggauntlet.aspx">http://www.numbera.com/software/pnggauntlet.aspx</a>.
</p>
</li>
</ul>
<h3>4. An extra note on losslessness</h3>
<p>
What is lossless PNG optimization, after all? This is a straightforward
question, whose answer is intuitive, yet not so straightforward.
</p>
<p>
Losslessness in the strictest sense, where no information whatsoever is lost,
can only be achieved by leaving the original file (<i>any</i> file) intact, or
by transforming it (e.g. compressing it, encrypting it) in such a way that
there is an inverse transformation which recovers it completely, bit by bit.
</p>
<p>
In the case of PNG images, this condition of strict losslessness has little
relevance to the casual graphics user, and is, therefore, too strong.
There are instances where strict losslessness is required; for example, when
handling certified PNG files whose integrity is guaranteed by an external
checksum like <b>MD5</b> or <b>SHA</b>, or by a digital signature such as
<b><code>dSIG</code></b>. Most of the time, however, it is desirable to relax
the notion of PNG losslessness, to the extent of not losing any information
that pertains to the <i>rendered image</i> and to the
<i>semantic value of the metadata</i> that accompanies the image. This allows
the user to concentrate on what is really important when it comes to preserving
the contents of a PNG image, and enables the concept of PNG optimization tools.
</p>
<blockquote>
A <b><i>lossless transform</i></b> of a PNG image file is a transform which
fully preserves the <i>rendered</i> RGB triples (the RGB triples that come
either directly, or from a palette index, or from a gray->RGB expansion), the
<i>rendered</i> transparency (the alpha samples that come either directly, or
from a <b><code>tRNS</code></b> chunk, or the implicit 100% opacity assumed due
to the lack of any explicit transparency information), the <i>order of
rendering</i> (sequential or interlaced), and the semantics contained by the
ancillary chunks.
</blockquote>
<div>
This definition allows the execution of the above-mentioned image reduction
operations, and the recompression of <b><code>IDAT</code></b>. It also allows
the alteration or the elimination of other pieces of information that are
technically valid, but have no influence on any presentation of the image
pixels:
</div>
<ul>
<li>
The information that pertains to <b><i>Deflate</i></b> streams, either inside
<b><code>IDAT</code></b>, or in other compressed chunks like
<b><code>zTXt</code></b>, <b><code>iTXt</code></b> or
<b><code>iCCP</code></b>; e.g. the LZ77 window size, the type and size of
<b><i>Deflate</i></b> blocks, etc. (The only thing that matters is that the
decompressed byte sequence must remain the same.)
</li>
<li>
The order of palette entries inside a <b><code>PLTE</code></b> chunk. (When
changing this order, the information that depends on it, such as the
palette-encoded pixels or the <b><code>tRNS</code></b> information, must be
updated accordingly.)
</li>
<li>
RGB triples that do not correspond to any pixel in the actual image, but are
stored in a <b><code>tRNS</code></b> chunk.
</li>
<li>
Fully opaque <b><code>tRNS</code></b> entries in a palette image.
</li>
<li>
Gamma correction (<b><code>gAMA</code></b>) or significant bit
(<b><code>sBIT</code></b>) information inside an image that consists
exclusively of samples whose intensity is either minimum (0) or maximum
(2^<sup>bitdepth</sup>-1).
</li>
<li>
The fact that a textual comment is stored uncompressed in a
<b><code>tEXt</code></b> chunk, or compressed in a <b><code>zTXt</code></b>
chunk, or with no translation in an <b><code>iTXt</code></b> chunk.
</li>
<li>
Etcetera.
</li>
</ul>
<p>
If any of the discardable information is important in a particular application,
and lossless PNG optimization is still desirable, it is recommended to store
this information in ancillary chunks, rather than hack it inside critical
chunks. For example, if sterile palette entries are necessary (e.g. for later
editing stages), it is recommended to store them inside a suggested palette
(<b><code>sPLT</code></b>) chunk, rather than keeping them inside
<b><code>PLTE</code></b>.
</p>
<h3>5. Selective bibliography</h3>
<p>
Besides the discussed specifications, the references below provide essential
information necessary to comprehend the contents of this article.
</p>
<ul>
<li>
Thomas Boutell, Glenn Randers-Pehrson et al.
<i>Portable Network Graphics (PNG) Specification, Second Edition</i>.
ISO/IEC 15948:2003(E); W3C Recommendation 10 November 2003.
</li>
<li>
David A. Huffman.
A method for the construction of minimum redundancy codes.
In <i>Proceedings of the Institute of Radio Engineers</i>,
vol. 40, no. 9, pp. 1098-1101, September 1952.
</li>
<li>
Jacob Ziv and Abraham Lempel.
A universal algorithm for data compression.
<i>IEEE Transactions on Information Theory</i>,
vol. IT-23, no. 3, pp. 337-343, May 1977.
<br>
<font size="-1">
Due to a historical accident, the famous algorithm is better-known as the
"Lempel-Ziv (LZ) algorithm", even though the "Ziv-Lempel algorithm" is a
more legitimate name.
</font>
</li>
<li>
Greg Roelofs.
<i>PNG: The definitive guide</i>.
O'Reilly and Associates, 1999.
</li>
</ul>
<hr>
<address>
<font size="-1">
Copyright &copy; 2003-2008 Cosmin Truţa. Permission to distribute freely.
<br>
Appeared: 7&nbsp;Apr&nbsp;2003.
<br>
Last updated: 10&nbsp;May&nbsp;2008.
</font>
</address>
</body>
</html>

View File

@@ -1,325 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Author" content="Cosmin Truţa">
<title>Thanks!</title>
</head>
<body>
<h2>Acknowledgements</h2>
<div>
The author is indebted to the following people.
OptiPNG would not exist without their work.
<p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="25%">Mark Adler</td>
<td>for developing the zlib library</td>
</tr>
<tr>
<td width="25%">Thomas Boutell</td>
<td>for the idea of creating the PNG image format (it's all his fault!)</td>
</tr>
<tr>
<td width="25%">Adam M. Costello</td>
<td>for co-developing cexcept, an exception-handling interface for C</td>
</tr>
<tr>
<td width="25%">Jean-loup Gailly</td>
<td>for devising a patent-free deflation algorithm
and for developing the zlib library</td>
</tr>
<tr>
<td width="25%">Phil Katz</td>
<td>for inventing ZIP (PKZip) and the deflation algorithm</td>
</tr>
<tr>
<td width="25%">David Koblas</td>
<td>GIF support is derived from the giftopnm tool</td>
</tr>
<tr>
<td width="25%">Miyasaka Masaru</td>
<td>BMP support is derived from the bmptopng tool</td>
</tr>
<tr>
<td width="25%">David Salomon</td>
<td>for writing the most comprehensive data compression reference book</td>
</tr>
<tr>
<td width="25%">Jason Summers</td>
<td>image reductions are inspired from the pngrewrite tool</td>
</tr>
<tr>
<td width="25%">Glenn Randers-Pehrson</td>
<td>OptiPNG is inspired from the pngcrush tool(!)</td>
</tr>
<tr>
<td width="25%">The PNG Development Group</td>
<td>for developing the PNG format and the libpng library
and also for countless help via the emailing list :-)</td>
</tr>
<tr>
<td width="25%">The Information Theory founders</td>
<td>Shannon, Huffman, Ziv, Lempel et al., you will never be forgotten!</td>
</tr>
</tbody>
</table>
</div>
<p>
<hr>
<p>
<div>
There are also many people who contributed to the OptiPNG project.
The author is grateful to all of them.
<br>
This list is by no means complete. If you made a contribution, but your name is
not listed here, please don't be shy and
<a href="http://sourceforge.net/sendmessage.php?touser=24402">let him know</a>.
<br>
The author is particularly aware of the ever-increasing grup of amazing
volunteers who either create new ports and packages, or take over the
maintenance of the existing ones. They are unsung heroes. Regardless whether
they are on this list or not (yet), a big THANKS goes to them!
<p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="25%">Peter Ahlstrom</td>
<td>for experimenting with the zlib parameters,
and for providing useful test data</td>
</tr>
<tr>
<td width="25%">Emmanuel Andry</td>
<td>for maintaining the Mandriva Linux port</td>
</tr>
<tr>
<td width="25%">Piotr Bandurski</td>
<td>for maintaining the Amiga port,
and for suggesting a feature improvement</td>
</tr>
<tr>
<td width="25%">Fabien Barbier</td>
<td>for fixing a Unicode build issue on Windows</td>
</tr>
<tr>
<td width="25%">Fabrizio Bartoloni</td>
<td>for maintaining the MorphOS port</td>
</tr>
<tr>
<td width="25%">Pascal Bleser</td>
<td>for maintaining the SUSE Linux port</td>
</tr>
<tr>
<td width="25%">Stefan Brüns</td>
<td>for contributing a security fix</td>
</tr>
<tr>
<td width="25%">James Buren</td>
<td>for maintaining the Frugalware Linux port</td>
</tr>
<tr>
<td width="25%">Adam Ciarcinski</td>
<td>for maintaining the pkgsrc package</td>
</tr>
<tr>
<td width="25%">James H. Cloos, Jr.</td>
<td>for being the first user to report a defect</td>
</tr>
<tr>
<td width="25%">Christian Davideck</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Andrew C. E. Dent</td>
<td>for experimenting with various compression parameters,
and for providing useful test data</td>
</tr>
<tr>
<td width="25%">Matthew Fearnley</td>
<td>for reporting several defects and limitations,
and for contributing a reduction improvement</td>
</tr>
<tr>
<td width="25%">Petr Gajdos</td>
<td>for maintaining the SUSE Linux port</td>
</tr>
<tr>
<td width="25%">Nicolas Le Gland</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Tero Grundström</td>
<td>for reporting a build problem</td>
</tr>
<tr>
<td width="25%">Larry Hastings</td>
<td>for suggesting a performance improvement, for reporting a defect,
and for providing useful test data</td>
</tr>
<tr>
<td width="25%">Tristan Heaven</td>
<td>for maintaining the Gentoo Linux port</td>
</tr>
<tr>
<td width="25%">Jukka Heino</td>
<td>for maintaining the Crux Linux port</td>
</tr>
<tr>
<td width="25%">Max Horn</td>
<td>for maintaining the Mac OS X (Fink) port</td>
</tr>
<tr>
<td width="25%">Thomas Hurst</td>
<td>for maintaining the FreeBSD port</td>
</tr>
<tr>
<td width="25%">Joachim Kluge</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Bill Koch</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Niels de Koning</td>
<td>for contributing memory leak fixes</td>
</tr>
<tr>
<td width="25%">Michael Krishtopa</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Vincent Lefevre</td>
<td>for maintaining the Mac OS X DarwinPort,
and for suggesting a feature</td>
</tr>
<tr>
<td width="25%">Vitaly Lipatov</td>
<td>for maintaining the ALT Linux port</td>
</tr>
<tr>
<td width="25%">Alexander Lucas</td>
<td>for suggesting a feature</td>
</tr>
<tr>
<td width="25%">Till Maas</td>
<td>for maintaining the Fedora Linux port,
and for valuable contributions and feedback</td>
</tr>
<tr>
<td width="25%">Brian McQuade</td>
<td>for contributing a security fix</td>
</tr>
<tr>
<td width="25%">Nehal Mistry</td>
<td>for suggesting various features</td>
</tr>
<tr>
<td width="25%">Dirk Mueller</td>
<td>for maintaining the SUSE Linux port</td>
</tr>
<tr>
<td width="25%">Gustavo De Nardin</td>
<td>for maintaining the Mandriva Linux port</td>
</tr>
<tr>
<td width="25%">Nelson A. de Oliveira</td>
<td>for maintaining the Debian Linux port,
and for valuable contributions and feedback</td>
</tr>
<tr>
<td width="25%">Tavis Ormandy</td>
<td>for maintaining the Gentoo Linux port</td>
</tr>
<tr>
<td width="25%">Martin Packman</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Dimitri Papadopoulos</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Aaron Reitz</td>
<td>for reporting a platform-specific build problem</td>
</tr>
<tr>
<td width="25%">Ryan Schenk</td>
<td>for writing PNGpong, a Dashboard widget for Mac OS X</td>
</tr>
<tr>
<td width="25%">Ville Skyttä</td>
<td>for maintaining the Fedora Linux port</td>
</tr>
<tr>
<td width="25%">Roy Tam</td>
<td>for reporting a defect</td>
</tr>
<tr>
<td width="25%">Juhapekka Tolvanen</td>
<td>for suggesting various script improvements</td>
</tr>
<tr>
<td width="25%">Dmitry Vlasko</td>
<td>for writing a configurable Windows shell integration utility</td>
</tr>
<tr>
<td width="25%">Funda Wang</td>
<td>for maintaining the Mandriva Linux port</td>
</tr>
<tr>
<td width="25%">Liang Zhao</td>
<td>for reporting a platform-specific build problem</td>
</tr>
<tr>
<td width="25%">[akJ]</td>
<td>for writing an Eclipse RCP utility</td>
</tr>
<tr>
<td width="25%">[amake]</td>
<td>for writing pngcrusher, a Mac OS X front-end</td>
</tr>
<tr>
<td width="25%">[Baldelario]</td>
<td>for maintaining the Slackware Linux port</td>
</tr>
<tr>
<td width="25%">[I Like Pi]</td>
<td>for writing a configurable Paint.NET plugin</td>
</tr>
<tr>
<td width="25%">[LaughingMan]</td>
<td>for suggesting a feature, and for reporting a defect</td>
</tr>
<tr>
<td width="25%">[warriant]</td>
<td>for suggesting the use of UPX to pack the Windows executable</td>
</tr>
</tbody>
</table>
</div>
<p>
<hr>
<div>
Last updated: 14&nbsp;Mar&nbsp;2010 by Cosmin Truţa.
<br>
<a href="http://optipng.sourceforge.net/">&lt;&lt;&nbsp;<b>OptiPNG Home Page</b></a>
</div>
</body>
</html>

View File

@@ -1,57 +0,0 @@
OptiPNG - TO-DO list
====================
- Compression improvements:
Use zlib's deflateTune().
Use 7zip's powerful deflation engine.
(This is not possible with libpng, so a custom encoder is needed.)
- Speed improvements:
Avoid repeated filtering when trying a filter value more than once.
(This is not possible with libpng, so a custom encoder is needed.)
- Text chunk optimization:
Smart selection between tEXt and zTXt. Similarly for iTXt.
- More file recovery features.
- Input from stdin; output to stdout.
- Optimization of an entire directory, with and without subdirectory
recursion:
optipng dir/
optipng -recurse dir/
Currently it is possible to optimize an entire directory as:
optipng dir/*.png
provided that file globbing works, either at the shell level (Unix)
or in the program (linked with wildargs.obj on Windows).
- Improved support for reading external image formats
(e.g. compressed TIFF or other image formats).
- Support for conversion to a desired bit depth and color type:
optipng -b16 -c6 ...
- Support for handling metadata, e.g.:
optipng -meta set:tEXt=<keyword>,<text> # add/update chunk
optipng -meta set:sRGB=0 # add/update chunk
optipng -meta select:all # keep all chunks
optipng -meta reject:all # delete all chunks
optipng -meta select:std2003 # keep all standard chunks
optipng -meta select:public # keep all public chunks
optipng -meta reject:private # delete all private chunks
optipng -meta reject:hIST,sPLT # delete hIST and sPLT
optipng -meta select:visual # keep gAMA, cHRM, sRGB, ...
optipng -meta reject:visual # delete gAMA, cHRM, sRGB, ...
optipng -meta select:textual # keep tEXt, zTXt, iTXt
optipng -meta reject:textual # delete tEXt, zTXt, iTXt
optipng -meta reject:gif # delete gIFg, gIFt, gIFx
optipng -meta load:<file> # load chunks from file
optipng -meta store:<file> # store chunks in file
- Parallelization on multi-processor/multi-core machines.
- A shared library (e.g. optipng.dll), to facilitate the development of
PNG-optimizing GUI applications and plugins.

Binary file not shown.

View File

@@ -1,15 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
<!-- Most restrictive policy: -->
<site-control permitted-cross-domain-policies="none"/>
<!-- Least restrictive policy: -->
<!--
<site-control permitted-cross-domain-policies="all"/>
@@ -17,9 +17,9 @@
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
-->
<!--
If you host a crossdomain.xml file with allow-access-from domain=“*”
and dont understand all of the points described here, you probably
If you host a crossdomain.xml file with allow-access-from domain="*"
and dont understand all of the points described here, you probably
have a nasty security vulnerability. ~ simon willison
-->
</cross-domain-policy>
</cross-domain-policy>

View File

@@ -1,8 +0,0 @@
* {
float: none; /* Screens are not big enough to account for floats */
background: #fff; /* As much contrast as possible */
color: #000;
}
/* Slightly reducing font size to reduce need to scroll */
body { font-size: 80%; }

View File

@@ -1,283 +1,293 @@
/*
HTML5 Boilerplate
style.css contains a reset, font normalization and some base styles.
credit is left where credit is due.
much inspiration was taken from these projects:
yui.yahooapis.com/2.8.1/build/base/base.css
camendesign.com/design/
praegnanz.de/weblog/htmlcssjs-kickstart
*/
/*
html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
v1.4 2009-07-27 | Authors: Eric Meyer & Richard Clark
html5doctor.com/html-5-reset-stylesheet/
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display:block;
}
nav ul { list-style:none; }
blockquote, q { quotes:none; }
blockquote:before, blockquote:after,
q:before, q:after { content:''; content:none; }
a { margin:0; padding:0; font-size:100%; vertical-align:baseline; background:transparent; }
ins { background-color:#ff9; color:#000; text-decoration:none; }
mark { background-color:#ff9; color:#000; font-style:italic; font-weight:bold; }
del { text-decoration: line-through; }
abbr[title], dfn[title] { border-bottom:1px dotted; cursor:help; }
/* tables still need cellspacing="0" in the markup */
table { border-collapse:collapse; border-spacing:0; }
hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
input, select { vertical-align:middle; }
/* END RESET CSS */
/* fonts.css from the YUI Library: developer.yahoo.com/yui/
Refer to developer.yahoo.com/yui/3/cssfonts/ for font sizing percentages
There are three custom edits:
* remove arial, helvetica from explicit font stack
* we normalize monospace styles ourselves
* table font-size is reset in the HTML5 reset above so there is no need to repeat
*/
body { font:13px/1.231 sans-serif; *font-size:small; } /* hack retained to preserve specificity */
select, input, textarea, button { font:99% sans-serif; }
/* normalize monospace sizing
* en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome
*/
pre, code, kbd, samp { font-family: monospace, sans-serif; }
/*
* minimal base styles
/*
* 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.
*
* Detailed information about this CSS: h5bp.com/css
*
* ==|== normalize ==========================================================
*/
body, select, input, textarea {
/* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */
color: #444;
/* set your base font here, to apply evenly */
/* font-family: Georgia, serif; */
}
/* =============================================================================
HTML5 display definitions
========================================================================== */
/* Headers (h1,h2,etc) have no default font-size or margin,
you'll want to define those yourself. */
h1,h2,h3,h4,h5,h6 { font-weight: bold; }
/* always force a scrollbar in non-IE */
html { overflow-y: scroll; }
/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */
a:hover, a:active { outline: none; }
a, a:active, a:visited { color: #607890; }
a:hover { color: #036; }
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
audio:not([controls]) { display: none; }
[hidden] { display: none; }
ul, ol { margin-left: 1.8em; }
ol { list-style-type: decimal; }
/* =============================================================================
Base
========================================================================== */
/* Remove margins for navigation lists */
nav ul, nav li { margin: 0; }
/*
* 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
* 2. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
*/
html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
html, button, input, select, textarea { font-family: sans-serif; color: #222; }
body { margin: 0; font-size: 1em; line-height: 1.4; }
/*
* Remove text-shadow in selection highlight: h5bp.com/i
* These selection declarations have to be separate
* Also: hot pink! (or customize the background color to match your design)
*/
::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
::selection { background: #fe57a1; color: #fff; text-shadow: none; }
/* =============================================================================
Links
========================================================================== */
a { color: #00e; }
a:visited { color: #551a8b; }
a:hover { color: #06e; }
a:focus { outline: thin dotted; }
/* Improve readability when focused and hovered in all browsers: h5bp.com/h */
a:hover, a:active { outline: 0; }
/* =============================================================================
Typography
========================================================================== */
abbr[title] { border-bottom: 1px dotted; }
b, strong { font-weight: bold; }
blockquote { margin: 1em 40px; }
dfn { font-style: italic; }
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
ins { background: #ff9; color: #000; text-decoration: none; }
mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
/* Redeclare monospace font family: h5bp.com/j */
pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; }
/* Improve readability of pre-formatted text in all browsers */
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
q { quotes: none; }
q:before, q:after { content: ""; content: none; }
small { font-size: 85%; }
strong, th { font-weight: bold; }
td, td img { vertical-align: top; }
sub { vertical-align: sub; font-size: smaller; }
sup { vertical-align: super; font-size: smaller; }
pre {
padding: 15px;
/* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */
white-space: pre; /* CSS2 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
word-wrap: break-word; /* IE */
}
textarea { overflow: auto; } /* thnx ivannikolic! www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ */
.ie6 legend, .ie7 legend { margin-left: -7px; } /* thnx ivannikolic! */
/* align checkboxes, radios, text inputs with their label
by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css */
input[type="radio"] { vertical-align: text-bottom; }
input[type="checkbox"] { vertical-align: bottom; }
.ie7 input[type="checkbox"] { vertical-align: baseline; }
.ie6 input { vertical-align: text-bottom; }
/* hand cursor on clickable input elements */
label, input[type=button], input[type=submit], button { cursor: pointer; }
/* webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea { margin: 0; }
/* colors for form validity */
input:valid, textarea:valid { }
input:invalid, textarea:invalid {
border-radius: 1px;
-moz-box-shadow: 0px 0px 5px red;
-webkit-box-shadow: 0px 0px 5px red;
box-shadow: 0px 0px 5px red;
}
.no-boxshadow input:invalid,
.no-boxshadow textarea:invalid { background-color: #f0dddd; }
/* Position subscript and superscript content without affecting line-height: h5bp.com/k */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
/* These selection declarations have to be separate.
No text-shadow: twitter.com/miketaylr/status/12228805301
Also: hot pink. */
::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; }
::selection { background:#FF5E99; color:#fff; text-shadow: none; }
/* =============================================================================
Lists
========================================================================== */
/* j.mp/webkit-tap-highlight-color */
a:link { -webkit-tap-highlight-color: #FF5E99; }
/* make buttons play nice in IE:
www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */
button { width: auto; overflow: visible; }
/* bicubic resizing for non-native sized IMG:
code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
.ie7 img { -ms-interpolation-mode: bicubic; }
ul, ol { margin: 1em 0; padding: 0 0 0 40px; }
dd { margin: 0 0 0 40px; }
nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }
/* =============================================================================
Embedded content
========================================================================== */
/*
* Non-semantic helper classes
/*
* 1. Improve image quality when scaled in IE7: h5bp.com/d
* 2. Remove the gap between images and borders on image containers: h5bp.com/i/440
*/
/* for image replacement */
.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
/* Hide for both screenreaders and browsers
css-discuss.incutio.com/wiki/Screenreader_Visibility */
.hidden { display: none; visibility: hidden; }
/*
* Correct overflow not hidden in IE9
*/
/* Hide only visually, but have it available for screenreaders
www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden */
.visuallyhidden { position: absolute !important;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px); }
svg:not(:root) { overflow: hidden; }
/* =============================================================================
Figures
========================================================================== */
figure { margin: 0; }
/* =============================================================================
Forms
========================================================================== */
form { margin: 0; }
fieldset { border: 0; margin: 0; padding: 0; }
/* Indicate that 'label' will shift focus to the associated form element */
label { cursor: pointer; }
/*
* 1. Correct color not inheriting in IE6/7/8/9
* 2. Correct alignment displayed oddly in IE6/7
*/
legend { border: 0; *margin-left: -7px; padding: 0; white-space: normal; }
/*
* 1. Correct font-size not inheriting in all browsers
* 2. Remove margins in FF3/4 S5 Chrome
* 3. Define consistent vertical alignment display in all browsers
*/
button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
/*
* 1. Define line-height as normal to match FF3/4 (set using !important in the UA stylesheet)
*/
button, input { line-height: normal; }
/*
* 1. Display hand cursor for clickable form elements
* 2. Allow styling of clickable form elements in iOS
* 3. Correct inner spacing displayed oddly in IE7 (doesn't effect IE6)
*/
button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; }
/*
* Re-set default cursor for disabled elements
*/
button[disabled], input[disabled] { cursor: default; }
/*
* Consistent box sizing and appearance
*/
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *width: 13px; *height: 13px; }
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
/*
* Remove inner padding and border in FF3/4: h5bp.com/l
*/
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
/*
* 1. Remove default vertical scrollbar in IE6/7/8/9
* 2. Allow only vertical resizing
*/
textarea { overflow: auto; vertical-align: top; resize: vertical; }
/* Colors for form validity */
input:valid, textarea:valid { }
input:invalid, textarea:invalid { background-color: #f0dddd; }
/* =============================================================================
Tables
========================================================================== */
table { border-collapse: collapse; border-spacing: 0; }
td { vertical-align: top; }
/* =============================================================================
Chrome Frame Prompt
========================================================================== */
.chromeframe { margin: 0.2em 0; background: #ccc; color: black; padding: 0.2em 0; }
/* ==|== primary styles =====================================================
Author:
========================================================================== */
/* ==|== media queries ======================================================
EXAMPLE Media Query for Responsive Design.
This example overrides the primary ('mobile first') styles
Modify as content requires.
========================================================================== */
@media only screen and (min-width: 35em) {
/* Style adjustments for viewports that meet the condition */
}
/* ==|== non-semantic helper classes ========================================
Please define your styles before this section.
========================================================================== */
/* For image replacement */
.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; *line-height: 0; }
.ir br { display: none; }
/* 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; }
/* >> The Magnificent CLEARFIX: Updated to prevent margin-collapsing on child elements << j.mp/bestclearfix */
.clearfix:before, .clearfix:after {
content: "\0020"; display: block; height: 0; visibility: hidden;
}
/* Contain floats: h5bp.com/q */
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
/* Fix clearfix: blueprintcss.lighthouseapp.com/projects/15318/tickets/5-extra-margin-padding-bottom-of-page */
.clearfix { zoom: 1; }
.clearfix { *zoom: 1; }
/* ==|== print styles =======================================================
Print styles.
Inlined to avoid required HTTP connection: h5bp.com/r
========================================================================== */
/* Primary Styles
Author:
*/
/*
* Media queries for responsive design
* These follow after primary styles so they will successfully override.
*/
@media all and (orientation:portrait) {
/* Style adjustments for portrait mode goes here */
}
@media all and (orientation:landscape) {
/* Style adjustments for landscape mode goes here */
}
/* Grade-A Mobile Browsers (Opera Mobile, iPhone Safari, Android Chrome)
Consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */
@media screen and (max-device-width: 480px) {
/* Uncomment if you don't want iOS and WinMobile to mobile-optimize the text for you
j.mp/textsizeadjust
html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
}
/*
* print styles
* inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/
*/
@media print {
* { background: transparent !important; color: #444 !important; text-shadow: none !important; }
a, a:visited { color: #444 !important; text-decoration: underline; }
a:after { content: " (" attr(href) ")"; }
abbr:after { content: " (" attr(title) ")"; }
.ir a:after { content: ""; } /* Don't show links for images */
* { background: transparent !important; color: black !important; box-shadow:none !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */
a, a:visited { text-decoration: underline; }
a[href]:after { content: " (" attr(href) ")"; }
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
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; }
h2, h3 { page-break-after: avoid; }
}

View File

@@ -1,537 +0,0 @@
<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Element Consistency Tests</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Place favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- CSS : implied media="all" -->
<link rel="stylesheet" href="../css/style.css?v=2">
<!-- Uncomment if you are specifically targeting less enabled mobile browsers
<link rel="stylesheet" media="handheld" href="../css/handheld.css?v=2"> -->
<!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
<script src="../js/libs/modernizr-1.6.min.js"></script>
</head>
<body>
<div id="container">
<header>
</header>
<div id="main">
<!-- demo content lovingly lifted from the azbuka project
http://code.google.com/p/azbuka/
and the bluetrip project
http://bluetrip.org/
and peter beverloo
http://peter.sh/examples/?/html/meter-progress.html
-->
<h1>Title 01 Heading</h1>
<hr />
<h2>Level 02 Heading</h2>
<p>Lorem ipsum <em>emphasised text</em> dolor sit amet, <strong>strong text</strong>
consectetur adipisicing elit, <abbr title="">abbreviated text</abbr> sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut
<q>quoted text</q> enim ad minim veniam, quis nostrud exercitation <a href="/">link text</a>
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
<ins>inserted text</ins> irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat <code>code text</code> cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>
Suspendisse rhoncus, est ac sollicitudin viverra, leo orci sagittis massa, sed condimentum <acronym title="">acronym text</acronym> est tortor a lectus. Curabitur porta feugiat ullamcorper. Integer lacinia mi id odio faucibus eget tincidunt nisl iaculis. Nam adipiscing hendrerit turpis, et porttitor felis sollicitudin et. Donec dictum massa ac neque accumsan tempor. Cras aliquam, ipsum sit amet laoreet hendrerit, purus <del>deleted text</del> sapien convallis dui, et porta leo ipsum ac nunc. Nullam ornare porta dui ac semper. Cras aliquam laoreet hendrerit. Quisque vulputate dolor eget mi porta vel porta nisl pretium. Vivamus non leo magna, quis imperdiet risus. Morbi tempor risus placerat tellus imperdiet fringilla.
</p>
<blockquote>
<p>I am not one who was born in the possession of knowledge; I am one who is fond of antiquity, and earnest in seeking it there.</p>
</blockquote>
<p><cite><a href="/">Confucius, The Confucian Analects</a></cite>, (551 BC - 479 BC)</p>
<h3>Level 03 Heading</h3>
<p>Extended paragraph. <a href="">Lorem ipsum</a> dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<ol>
<li>Unus</li>
<li>Duo</li>
<li>Tres</li>
<li>Quattuor</li>
</ol>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum.</p>
<h3>Header 3</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.</p>
<h4>Unordered lists</h4>
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipisicing elit</li>
<li>Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</li>
<li>Ut enim ad minim veniam</li>
</ul>
<p>Lorem ipsum dolor sit amet,consectetur adipisicing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.</p>
<pre><code>body { font:0.8125em/1.618 Arial, sans-serif;
background-color:#fff;
color:#111;
}</code></pre>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum.</p>
<h4>Header 4</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.</p>
<dl>
<dt>Definition list</dt>
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.</dd>
<dt>Lorem ipsum dolor sit amet</dt>
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.</dd>
</dl>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.</p>
<h4>Ordered list</h4>
<ol>
<li>List item</li>
<li>List item</li>
<li>List item
<ol>
<li>List item level 2</li>
<li>List item level 2
<ol>
<li>List item level 3</li>
<li>List item level 3</li>
</ol>
</li>
</ol>
</li>
</ol>
<h4>Unordered list</h4>
<ul>
<li>List item 01</li>
<li>List item 02</li>
<li>List item 03
<ul>
<li>List item level 2</li>
<li>List item level 2
<ul>
<li>List item level 3</li>
<li>List item level 3</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.</p>
<h4>Tables</h4>
<table summary="Jimi Hendrix albums">
<caption>Jimi Hendrix - albums</caption>
<thead>
<tr>
<th>Album</th>
<th>Year</th>
<th>Price</th>
</tr>
</thead>
<tfoot>
<tr>
<td>Album</td>
<td>Year</td>
<td>Price</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>Are You Experienced </td>
<td>1967</td>
<td>$10.00</td>
</tr>
<tr>
<td>Axis: Bold as Love</td>
<td>1967</td>
<td>$12.00</td>
</tr>
<tr>
<td>Electric Ladyland</td>
<td>1968</td>
<td>$10.00</td>
</tr>
<tr>
<td>Band of Gypsys</td>
<td>1970</td>
<td>$12.00</td>
</tr>
<tbody>
</table>
<p>
I am <a href="http://devkick.com/lab/tripoli/sample.php?abc123">the a tag</a> example<br>
I am <abbr title="test">the abbr tag</abbr> example<br>
I am <acronym>the acronym tag</acronym> example<br>
I am <b>the b tag</b> example<br>
I am <big>the big tag</big> example<br>
I am <cite>the cite tag</cite> example<br>
I am <code>the code tag</code> example<br>
I am <del>the del tag</del> example<br>
I am <dfn>the dfn tag</dfn> example<br>
I am <em>the em tag</em> example<br>
I am <font face="verdana">the font tag</font> example<br>
I am <i>the i tag</i> example<br>
I am <ins>the ins tag</ins> example<br>
I am <kbd>the kbd tag</kbd> example<br>
I am <q>the q tag <q>inside</q> a q tag</q> example<br>
I am <s>the s tag</s> example<br>
I am <samp>the samp tag</samp> example<br>
I am <small>the small tag</small> example<br>
I am <span>the span tag</span> example<br>
I am <strike>the strike tag</strike> example<br>
I am <strong>the strong tag</strong> example<br>
I am <sub>the sub tag</sub> example<br>
I am <sup>the sup tag</sup> example<br>
I am <tt>the tt tag</tt> example<br>
I am <var>the var tag</var> example<br>
I am <u>the u tag</u> example
</p>
<p>This is a &lt;p&gt; with some <code>code</code> inside.</p>
<h3>What is Lorem Ipsum?</h3>
<p><b>Lorem Ipsum</b> is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
<p><strong>This</strong> Lorem Ipsum HTML example is created from the parts of Placeholder Markup with Lorem Ipsum - Jon Tan,
Emastic CSS Framework,
Tripoli CSS Framework and
Baseline CSS Framework .</p>
<address>Address: somewhere, World</address>
<p>
<a href="#">Link</a><br>
<strong>&lt;strong&gt;</strong><br>
<del>&lt;del&gt; deleted</del><br>
<dfn>&lt;dfn&gt; dfn</dfn><br>
<em>&lt;em&gt; emphasis</em>
</p>
<pre>
<code>&lt;html&gt;</code>
<code>&lt;head&gt;</code>
<code>&lt;/head&gt;</code>
<code>&lt;body&gt;</code>
<code>&lt;div class = "main"&gt; &lt;div&gt;</code>
<code>&lt;/body&gt;</code>
<code>&lt;/html&gt; </code>
</pre>
<tt>&lt;tt&gt;
Pellentesque tempor, dui ut ultrices viverra, neque urna blandit nisi, id accumsan dolor est vitae risus.
</tt>
<hr>
<!-- this following markup from http://bluetrip.org/ -->
<dl>
<dt>Description list title 01</dt>
<dd>Description list description 01</dd>
<dt>Description list title 02</dt>
<dd>Description list description 02</dd>
<dd>Description list description 03</dd>
</dl>
<table>
<caption>Table Caption</caption>
<thead>
<tr>
<th>Table head th</th>
<td>Table head td</td>
</tr>
</thead>
<tfoot>
<tr>
<th>Table foot th</th>
<td>Table foot td</td>
</tr>
</tfoot>
<tbody>
<tr>
<th>Table body th</th>
<td>Table body td</td>
</tr>
<tr>
<td>Table body td</td>
<td>Table body td</td>
</tr>
</tbody>
</table>
<hr>
<form action="#">
<fieldset>
<legend>Form legend</legend>
<div><label for="f1">Optional Text input:</label><input type="text" id="f1" value="input text" /></div>
<div><label for="rt1">Required Text input:</label><input type="text" id="rt1" required /></div>
<div><label for="twp1">Text input with pattern requirement and placeholder:</label><input type="text" pattern="\d{5}(-\d{4})?" title="a US Zip code, with or without the +4 exension" placeholder="12345-6789"/></div>
<div><label for="s1">Search input:</label><input type="search" id="s1" /></div>
<div><label for="e1">Email input:</label><input type="email" id="e1" /></div>
<div><label for="u1">URL input:</label><input type="url" id="u1" /></div>
<div><label for="pw">Password input:</label><input type="password" id="pw" value="password" /></div>
<div><label for="f2">Radio input:</label><input type="radio" id="f2" /></div>
<div><label for="f3">Checkbox input:</label><input type="checkbox" id="f3" /></div>
<div><label for="f4">Select field:</label><select id="f4"><option>Option 01</option><option>Option 02</option></select></div>
<div><label for="f5">Textarea:</label><textarea id="f5" cols="30" rows="5" >Textarea text</textarea></div>
<div><label for="f6">Input Button:</label> <input type="button" id="f6" value="button text" /></div>
<div><label for="f7">Submit Button:</label> <input type="submit" id="f7" value="button text" /></div>
</fieldset>
</form>
<!-- thx peter beverloo: http://peter.sh/examples/?/html/meter-progress.html -->
<p id="no-support" style="color: red; margin-bottom: 12px;">
Your browser does not support these elements yet! Consider downloading a <a href="http://tools.peter.sh/download-latest-chromium.php">Chromium Nightly</a>.<br />
</p>
<h3>&lt;progress&gt;</h3>
<p>
The progress element (spec: <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-progress-element">4.10.16</a>) represents the completion progress of a task and can be both indeterminate as determinate.
</p>
<ul class="compact">
<li>
<label>Indeterminate</label>
<progress max="100"></progress>
</li>
<li>
<label>Progress: 0%</label>
<progress max="10" value="0"></progress>
</li>
<li>
<label>Progress: 100%</label>
<progress max="3254" value="3254"></progress>
</li>
<li>
<label>Progress: 57%</label>
<progress max="0.7" value="0.4"></progress>
</li>
<li>
<label>Javascript</label>
<progress id="progress-javascript-example"></progress>
</li>
</ul>
<h3>&lt;meter&gt;</h3>
<p>
Displaying a scalar measurement within a known range, like hard drive usage, can be done using the meter element (spec: <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-meter-element">4.10.17</a>)
</p>
<ul class="compact">
<li>
<label>Meter: empty</label>
<meter value="0"></meter>
</li>
<li>
<label>Meter: full</label>
<meter value="1"></meter>
</li>
<li>
<label>Meter: "a bit"</label>
<meter min=".34" max=".41" value=".36"></meter>
</li>
<li>
<label>Preferred usage</label>
<meter min="50" max="250" low="100" high="200" value="120"></meter>
</li>
<li>
<label>Too much traffic</label>
<meter min="1024" max="10240" low="2048" high="8192" value="9216"></meter>
</li>
<li>
<label>Optimum value</label>
<meter value=".5" optimum=".8"></meter>
</li>
<li>
<label>Javascript</label>
<meter id="meter-javascript-example" value="0"></progress>
</li>
</ul>
<script>
(function () {
if (! ('position' in document.createElement ('progress'))) {
var elements = document.querySelectorAll ('meter, progress');
for (var i = 0, j = elements.length; i < j; i++) {
elements [i].style.border = "1px solid red";
elements [i].style.height = "12px";
elements [i].style.display = "inline-block";
elements [i].style.webkitAppearance = "none";
}
return ;
}
document.getElementById ('no-support').style.display = 'none';
/** Setup the <progress> JavaScript example **/
var progressExample = document.getElementById ('progress-javascript-example');
progressExample.min = 50;
progressExample.max = 122;
setInterval (function ()
{
progressExample.value = progressExample.min + Math.random () * (progressExample.max - progressExample.min);
}, 1000);
/** We'd like some fancy <meter> examples too **/
var meterExample = document.getElementById ('meter-javascript-example');
meterExample.min = 0;
meterExample.max = 100;
meterExample.value = 50;
meterExample.low = 20;
meterExample.high = 80;
meterExample.optimum = 65;
setInterval (function ()
{
meterExample.value = meterExample.min + Math.random () * (meterExample.max - meterExample.min);
meterExample.optimum = 65 + (5 - Math.random () * 10);
}, 1000);
})();
</script>
</div>
<footer>
</footer>
</div> <!--! end of #container -->
<!-- Javascript at the bottom for fast page loading -->
<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="../js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
<!-- scripts concatenated and minified via ant build script-->
<script src="../js/plugins.js"></script>
<script src="../js/script.js"></script>
<!-- end concatenated and minified scripts-->
<!--[if lt IE 7 ]>
<script src="../js/libs/dd_belatedpng.js"></script>
<script> DD_belatedPNG.fix('img, .png_bg'); //fix any <img> or .png_bg background-images </script>
<![endif]-->
<!-- yui profiler and profileviewer - remove for production -->
<script src="../js/profiling/yahoo-profiling.min.js"></script>
<script src="../js/profiling/config.js"></script>
<!-- end profiling code -->
<!-- asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
change the UA-XXXXX-X to be your site's ID -->
<script>
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
(function(d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.async = true;
g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
s.parentNode.insertBefore(g, s);
})(document, 'script');
</script>
</body>
</html>

View File

@@ -1,85 +0,0 @@
/*
style.css contains a reset, font normalization and some base styles.
credit is left where credit is due.
additionally, much inspiration was taken from these projects:
yui.yahooapis.com/2.8.1/build/base/base.css
camendesign.com/design/
praegnanz.de/weblog/htmlcssjs-kickstart
*/
/*
html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
v1.4 2009-07-27 | Authors: Eric Meyer & Richard Clark
html5doctor.com/html-5-reset-stylesheet/
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display:block;
}
nav ul { list-style:none; }
blockquote, q { quotes:none; }
blockquote:before, blockquote:after,
q:before, q:after { content:''; content:none; }
a { margin:0; padding:0; font-size:100%; vertical-align:baseline; background:transparent; }
ins { background-color:#ff9; color:#000; text-decoration:none; }
mark { background-color:#ff9; color:#000; font-style:italic; font-weight:bold; }
del { text-decoration: line-through; }
abbr[title], dfn[title] { border-bottom:1px dotted; cursor:help; }
/* tables still need cellspacing="0" in the markup */
table { border-collapse:collapse; border-spacing:0; }
hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
input, select { vertical-align:middle; }
/* END RESET CSS */
/* fonts.css from the YUI Library: developer.yahoo.com/yui/
Please refer to developer.yahoo.com/yui/fonts/ for font sizing percentages
There are three custom edits:
* remove arial, helvetica from explicit font stack
* we normalize monospace styles ourselves
* table font-size is reset in the HTML5 reset above so there is no need to repeat
*/
body { font:13px/1.231 sans-serif; *font-size:small; } /* hack retained to preserve specificity */
select, input, textarea, button { font:99% sans-serif; }
/* normalize monospace sizing
* en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome
*/
pre, code, kbd, samp { font-family: monospace, sans-serif; }

View File

@@ -1,41 +0,0 @@
body { font:13px/1.231 sans-serif; *font-size:small; } /* hack retained to preserve specificity */
body, select, input, textarea {
/* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */
color: #444;
/* set your base font here, to apply evenly
/* font-family: Georgia, serif; */
}
/* Headers (h1,h2,etc) have no default font-size or margin,
you'll want to define those yourself. */
h1,h2,h3,h4,h5,h6 { font-weight: bold; }
h1 { font-size: 2em; }
select, input, textarea, button { font:99% sans-serif; }
/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */
a:hover, a:active { outline: none; }
.current { background: #ccc; }
header span { padding: 0.2em 0.5em; display: inline-block; }
dd, h1, body, html { margin: 0;}
a, a:active, a:visited { color: #607890; }
a:hover { color: #036; }
.wrapper {width:200px; border:1px solid red;}
dl {margin:0 auto; width:900px;}
dt {background-color:#ccc; margin-bottom:20px; cursor:pointer; cursor:hand; padding:5px; font-weight:bold; }
dd {margin-bottom:30px;}
#clear-demo {width:500px; border:1px solid black;}
#clear-demo-l {width:200px; border:1px solid black; float:left;}
#clear-demo-r {width:200px; border:1px solid black; float:right;}
#clear-demo-b {width:200px; border:1px solid black;}
header {text-align:center;}
.show, .hide {color: #607890; cursor:pointer; cursor:hand;}
body {
padding-bottom: 200px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 674 B

View File

@@ -1,312 +0,0 @@
<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Boilerplate Test Suite</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Place favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- CSS : implied media="all" -->
<link rel="stylesheet" href="../css/style.css?v=2">
<link rel="stylesheet" href="hack2.css">
<!-- Uncomment if you are specifically targeting less enabled mobile browsers
<link rel="stylesheet" media="handheld" href="../css/handheld.css?v=2"> -->
<!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
<script src="../js/libs/modernizr-1.6.min.js"></script>
</head>
<body>
<div id="container">
<header>
<br /><br /><h1>HTML5 Boilerplate CSS Hack Sheet</h1><br /><br />
</header>
<div id="main" style="display:block;">
<dl>
<dt>Hack 01 - Set default color</dt>
<dd>
HTML5 Boilerplate suggests the default color looks better when set to #444 instead of #000.<br />
<span style="color:black;">Web font default color</span>
</dd>
<dt>Hack 02 - Vertical Scroll Bar</dt>
<dd>
Click <a href="#" id="shorten">contract</a> | <a href="#" id="expand">expand</a> to see how Boilerplate forces a scrollbar in non-IE.
</dd>
<dt>Hack 03 - Accessible focus style</dt>
<dd>
Remove dotted outline around 'a' element on hover and on focus in certain browsers
<br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<a href="#" class="preventDefault">Click me</a>
</dd>
<dt>Hack 04 - Pre Wrapping</dt>
<dd>
Default <code>pre</code> doesn't wrap text. Boilerplate forces <code>pre</code> to wrap text.
<br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
with wrapping:<br /><br />
<div style="height:115px;">
<div class="wrapper">
<pre>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</pre>
</div>
</div><br />
without wrapping:<br /><br />
<div class="wrapper">
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</div>
</dd>
<dt>Hack 05 - Remove default textarea scrollbar in IE</dt>
<dd>
IE shows a disabled scrollbar on empty <code>textarea</code>.<br><br>
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<form>
<textarea></textarea>
</form>
</dd>
<dt>Hack 06 - IE6,7 legend margin</dt>
<dd>
Left align form legend to the inner text in IE 6,7.<br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<form>
<fieldset>
<legend>Information:</legend><br />
Name: <input type="text" size="30" /><br />
Email: <input type="text" size="30" /><br />
Date of birth: <input type="text" size="10" />
</fieldset>
</form>
</dd>
<dt>Hack 07 - Vertically align checkboxes, radios, text inputs with their label</dt>
<dd>
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<input type="radio" /> Option A <br /><br />
<input type="checkbox" /> Item B <br /><br />
Name: <input type="text" />
</dd>
<dt>Hack 08 - Hand cursor on clickable input elements</dt>
<dd>
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
Input with type submit <input type="submit" value="submit" />
</dd>
<dt>Hack 09 - Webkit browsers form elements margin</dt>
<dd>
Webkit browsers add a 2px margin outside the chrome of form elements.<br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<form>
<input type="submit" value="submit" /><br /><br />
<button type="button">Click Me!</button><br /><br />
<select><option>Default</option></select>
</form>
</dd>
<dt>Hack 10 - Make buttons width rendered correctly</dt>
<dd>
IE adds extra padding to <code>button</code>. This fixes the issue. <br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<form>
<button type="button">Click Me!</button>
<button type="button">This is a really long button</button>
</form>
</dd>
<dt>Hack 11 - Bicubic resizing for non-native sized IMG</dt>
<dd>
IE7 hack to reduce distortion caused by image resizing <br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<img src="../apple-touch-icon.png" width="27" /><br />
<img src="../apple-touch-icon.png" width="57" /><br />
<img src="../apple-touch-icon.png" width="157" /><br />
</dd>
<dt>Hack 12 - Hide visually</dt>
<dd>
Hide elements visually, but have it available for screen readers.
<br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<div class="visuallyhidden">showing</div>
</dd>
<dt>Hack 13 - Image text replacement</dt>
<dd>
Replace text with images.
<br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<div class="ir" style="background:url('../apple-touch-icon.png'); width:57px; height:57px;">Apple Touch Icon</div>
</dd>
<dt>Hack 14 - Clear Floats</dt>
<dd>
Clear Floated elements without extra markup.
<br /><br />
<span href="#" class="show">With Boilerplate CSS</span> | <span href="#" class="hide">Without Boilerplate CSS</span>
<br /><br />
<div id="clear-demo" class="clearfix">
<div id="clear-demo-l">text floated left</div><div id="clear-demo-r">text floated right</div>
</div>
<div id="clear-demo-b">unfloated text</div>
</dd>
<dt>Hack 15 - PNG fix</dt>
<dd>fix pngs for correct display in IE6
<br /> <br />
<div style="position:relative">
<!-- wassup gradient. -->
<div style="position:absolute; height: 40px; background-color: #444444; background-image: -moz-linear-gradient(top, #444444, #999999); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #444444),color-stop(1, #999999)); filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#444444', EndColorStr='#999999'); ">
<div class="png_bg" style="border:1px solid #ddd; width:100px; padding:10px 10px 10px 50px; display:inline-block; background:url(test_tubes.png) no-repeat 5px center;">
<img src="internet_explorer.png" alt="IE is so awesome" />
</div>
</div>
</dd>
</dl>
</div>
<footer>
</footer>
</div> <!--! end of #container -->
<!-- Javascript at the bottom for fast page loading -->
<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="../js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
<script>
$('#expand').click(function() {
$('#container').css('height','auto').css('overflow','');
return false;
});
$('#shorten').click(function() {
$('#container').css('height','300px').css('overflow','hidden');
return false;
});
$('#atag').click(function() {
return false;
});
$('.show').click(function(){
$('.show').addClass('current')
$('.hide').removeClass('current');
showStyle();
return false;
});
$('.hide').click(function(){
$('.hide').addClass('current')
$('.show').removeClass('current');
// freeze the size of each tests so the page doesnt jump.
$('dd').each(function(){
$(this).height( $(this).height() );
});
hideStyle();
return false;
});
var linkTags = $('link');
function hideStyle() {
// tee hee
$('link[href*=style.css]').attr('media','braille');
}
function showStyle() {
$('link[href*=style.css]').attr('media','all');
}
$('.preventDefault').click(function() {
return false;
});
$(function(){
$('.show').addClass('current');
})
</script>
<!-- scripts concatenated and minified via ant build script-->
<script src="../js/plugins.js"></script>
<script src="../js/script.js"></script>
<!-- end concatenated and minified scripts-->
<!--[if lt IE 7 ]>
<script src="../js/libs/dd_belatedpng.js"></script>
<script> DD_belatedPNG.fix('img, .png_bg'); //fix any <img> or .png_bg background-images </script>
<![endif]-->
<!-- yui profiler and profileviewer - remove for production -->
<script src="../js/profiling/yahoo-profiling.min.js"></script>
<script src="../js/profiling/config.js"></script>
<!-- end profiling code -->
<!-- asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
change the UA-XXXXX-X to be your site's ID -->
<script>
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
(function(d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.async = true;
g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
s.parentNode.insertBefore(g, s);
})(document, 'script');
</script>
</body>
</html>

43
humans.txt Normal file
View File

@@ -0,0 +1,43 @@
/* the humans responsible & colophon */
/* humanstxt.org */
/* TEAM */
<your title>: <your name>
Site:
Twitter:
Location:
/* THANKS */
Names (& URL):
/* SITE */
Standards: HTML5, CSS3
Components: Modernizr, jQuery
Software:
-o/-
+oo//-
:ooo+//:
-ooooo///-
/oooooo//:
:ooooooo+//-
-+oooooooo///-
-://////////////+oooooooooo++////////////::
:+ooooooooooooooooooooooooooooooooooooo+:::-
-/+ooooooooooooooooooooooooooooooo+/::////:-
-:+oooooooooooooooooooooooooooo/::///////:-
--/+ooooooooooooooooooooo+::://////:-
-:+ooooooooooooooooo+:://////:--
/ooooooooooooooooo+//////:-
-ooooooooooooooooooo////-
/ooooooooo+oooooooooo//:
:ooooooo+/::/+oooooooo+//-
-oooooo/::///////+oooooo///-
/ooo+::://////:---:/+oooo//:
-o+/::///////:- -:/+o+//-
:-:///////:- -:/://
-////:- --//:
-- -:

3
images/.gitignore vendored
View File

@@ -1,3 +0,0 @@
*
!.gitignore

0
img/.gitignore vendored Normal file
View File

View File

@@ -1,94 +1,67 @@
<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!-- Consider adding a manifest.appcache: h5bp.com/d/Offline -->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<!-- Use the .htaccess and remove these lines to avoid edge case issues.
More info: h5bp.com/i/378 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Mobile viewport optimized: h5bp.com/viewport -->
<meta name="viewport" content="width=device-width">
<!-- Place favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons -->
<link rel="stylesheet" href="css/style.css">
<!-- CSS : implied media="all" -->
<link rel="stylesheet" href="css/style.css?v=2">
<!-- Uncomment if you are specifically targeting less enabled mobile browsers
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=2"> -->
<!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
<script src="js/libs/modernizr-1.6.min.js"></script>
<!-- More ideas for your <head> here: h5bp.com/d/head-Tips -->
<!-- All JavaScript at the bottom, except this Modernizr build.
Modernizr enables HTML5 elements & feature detects for optimal performance.
Create your own custom Modernizr build: www.modernizr.com/download/ -->
<script src="js/libs/modernizr-2.5.2.min.js"></script>
</head>
<body>
<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you support IE 6.
chromium.org/developers/how-tos/chrome-frame-getting-started -->
<!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em> <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]-->
<header>
<div id="container">
<header>
</header>
<div role="main">
</header>
<div id="main">
</div>
<footer>
</div>
<footer>
</footer>
</div> <!--! end of #container -->
</footer>
<!-- Javascript at the bottom for fast page loading -->
<!-- JavaScript at the bottom for fast page loading -->
<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
<!-- scripts concatenated and minified via ant build script-->
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>
<!-- scripts concatenated and minified via build script -->
<script src="js/plugins.js"></script>
<script src="js/script.js"></script>
<!-- end concatenated and minified scripts-->
<!--[if lt IE 7 ]>
<script src="js/libs/dd_belatedpng.js"></script>
<script> DD_belatedPNG.fix('img, .png_bg'); //fix any <img> or .png_bg background-images </script>
<![endif]-->
<!-- end scripts -->
<!-- yui profiler and profileviewer - remove for production -->
<script src="js/profiling/yahoo-profiling.min.js"></script>
<script src="js/profiling/config.js"></script>
<!-- end profiling code -->
<!-- asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
change the UA-XXXXX-X to be your site's ID -->
<!-- Asynchronous Google Analytics snippet. Change UA-XXXXX-X to be your site's ID.
mathiasbynens.be/notes/async-analytics-snippet -->
<script>
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
(function(d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.async = true;
g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
s.parentNode.insertBefore(g, s);
})(document, 'script');
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

6240
js/libs/jquery-1.4.2.js vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,154 +0,0 @@
/*!
* jQuery JavaScript Library v1.4.2
* http://jquery.com/
*
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Sat Feb 13 22:33:48 2010 -0500
*/
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

9266
js/libs/jquery-1.7.1.js vendored Normal file

File diff suppressed because it is too large Load Diff

4
js/libs/jquery-1.7.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,30 +0,0 @@
/*
* Modernizr v1.6
* http://www.modernizr.com
*
* Developed by:
* - Faruk Ates http://farukat.es/
* - Paul Irish http://paulirish.com/
*
* Copyright (c) 2009-2010
* Dual-licensed under the BSD or MIT licenses.
* http://www.modernizr.com/license/
*/
window.Modernizr=function(i,e,u){function s(a,b){return(""+a).indexOf(b)!==-1}function D(a,b){for(var c in a)if(j[a[c]]!==u&&(!b||b(a[c],E)))return true}function n(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1);c=(a+" "+F.join(c+" ")+c).split(" ");return!!D(c,b)}function S(){f.input=function(a){for(var b=0,c=a.length;b<c;b++)L[a[b]]=!!(a[b]in h);return L}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));f.inputtypes=function(a){for(var b=0,c,k=a.length;b<
k;b++){h.setAttribute("type",a[b]);if(c=h.type!=="text"){h.value=M;if(/^range$/.test(h.type)&&h.style.WebkitAppearance!==u){l.appendChild(h);c=e.defaultView;c=c.getComputedStyle&&c.getComputedStyle(h,null).WebkitAppearance!=="textfield"&&h.offsetHeight!==0;l.removeChild(h)}else/^(search|tel)$/.test(h.type)||(c=/^(url|email)$/.test(h.type)?h.checkValidity&&h.checkValidity()===false:h.value!=M)}N[a[b]]=!!c}return N}("search tel url email datetime date month week time datetime-local number range color".split(" "))}
var f={},l=e.documentElement,E=e.createElement("modernizr"),j=E.style,h=e.createElement("input"),M=":)",O=Object.prototype.toString,q=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),F="Webkit Moz O ms Khtml".split(" "),v={svg:"http://www.w3.org/2000/svg"},d={},N={},L={},P=[],w,Q=function(a){var b=document.createElement("style"),c=e.createElement("div");b.textContent=a+"{#modernizr{height:3px}}";(e.head||e.getElementsByTagName("head")[0]).appendChild(b);c.id="modernizr";l.appendChild(c);a=c.offsetHeight===
3;b.parentNode.removeChild(b);c.parentNode.removeChild(c);return!!a},o=function(){var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return function(b,c){c=c||document.createElement(a[b]||"div");b="on"+b;var k=b in c;if(!k){c.setAttribute||(c=document.createElement("div"));if(c.setAttribute&&c.removeAttribute){c.setAttribute(b,"");k=typeof c[b]=="function";if(typeof c[b]!="undefined")c[b]=u;c.removeAttribute(b)}}return k}}(),G={}.hasOwnProperty,R;R=
typeof G!=="undefined"&&typeof G.call!=="undefined"?function(a,b){return G.call(a,b)}:function(a,b){return b in a&&typeof a.constructor.prototype[b]==="undefined"};d.flexbox=function(){var a=e.createElement("div"),b=e.createElement("div");(function(k,g,r,x){g+=":";k.style.cssText=(g+q.join(r+";"+g)).slice(0,-g.length)+(x||"")})(a,"display","box","width:42px;padding:0;");b.style.cssText=q.join("box-flex:1;")+"width:10px;";a.appendChild(b);l.appendChild(a);var c=b.offsetWidth===42;a.removeChild(b);
l.removeChild(a);return c};d.canvas=function(){var a=e.createElement("canvas");return!!(a.getContext&&a.getContext("2d"))};d.canvastext=function(){return!!(f.canvas&&typeof e.createElement("canvas").getContext("2d").fillText=="function")};d.webgl=function(){var a=e.createElement("canvas");try{if(a.getContext("webgl"))return true}catch(b){}try{if(a.getContext("experimental-webgl"))return true}catch(c){}return false};d.touch=function(){return"ontouchstart"in i||Q("@media ("+q.join("touch-enabled),(")+
"modernizr)")};d.geolocation=function(){return!!navigator.geolocation};d.postmessage=function(){return!!i.postMessage};d.websqldatabase=function(){return!!i.openDatabase};d.indexedDB=function(){for(var a=-1,b=F.length;++a<b;){var c=F[a].toLowerCase();if(i[c+"_indexedDB"]||i[c+"IndexedDB"])return true}return false};d.hashchange=function(){return o("hashchange",i)&&(document.documentMode===u||document.documentMode>7)};d.history=function(){return!!(i.history&&history.pushState)};d.draganddrop=function(){return o("drag")&&
o("dragstart")&&o("dragenter")&&o("dragover")&&o("dragleave")&&o("dragend")&&o("drop")};d.websockets=function(){return"WebSocket"in i};d.rgba=function(){j.cssText="background-color:rgba(150,255,150,.5)";return s(j.backgroundColor,"rgba")};d.hsla=function(){j.cssText="background-color:hsla(120,40%,100%,.5)";return s(j.backgroundColor,"rgba")||s(j.backgroundColor,"hsla")};d.multiplebgs=function(){j.cssText="background:url(//:),url(//:),red url(//:)";return/(url\s*\(.*?){3}/.test(j.background)};d.backgroundsize=
function(){return n("backgroundSize")};d.borderimage=function(){return n("borderImage")};d.borderradius=function(){return n("borderRadius","",function(a){return s(a,"orderRadius")})};d.boxshadow=function(){return n("boxShadow")};d.textshadow=function(){return e.createElement("div").style.textShadow===""};d.opacity=function(){var a=q.join("opacity:.5;")+"";j.cssText=a;return s(j.opacity,"0.5")};d.cssanimations=function(){return n("animationName")};d.csscolumns=function(){return n("columnCount")};d.cssgradients=
function(){var a=("background-image:"+q.join("gradient(linear,left top,right bottom,from(#9f9),to(white));background-image:")+q.join("linear-gradient(left top,#9f9, white);background-image:")).slice(0,-17);j.cssText=a;return s(j.backgroundImage,"gradient")};d.cssreflections=function(){return n("boxReflect")};d.csstransforms=function(){return!!D(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])};d.csstransforms3d=function(){var a=!!D(["perspectiveProperty","WebkitPerspective",
"MozPerspective","OPerspective","msPerspective"]);if(a)a=Q("@media ("+q.join("transform-3d),(")+"modernizr)");return a};d.csstransitions=function(){return n("transitionProperty")};d.fontface=function(){var a,b=e.head||e.getElementsByTagName("head")[0]||l,c=e.createElement("style"),k=e.implementation||{hasFeature:function(){return false}};c.type="text/css";b.insertBefore(c,b.firstChild);a=c.sheet||c.styleSheet;b=k.hasFeature("CSS2","")?function(g){if(!(a&&g))return false;var r=false;try{a.insertRule(g,
0);r=!/unknown/i.test(a.cssRules[0].cssText);a.deleteRule(a.cssRules.length-1)}catch(x){}return r}:function(g){if(!(a&&g))return false;a.cssText=g;return a.cssText.length!==0&&!/unknown/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(g.split(" ")[0])===0};f._fontfaceready=function(g){g(f.fontface)};return b('@font-face { font-family: "font"; src: "font.ttf"; }')};d.video=function(){var a=e.createElement("video"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('video/ogg; codecs="theora"');
b.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"')||a.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');b.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return b};d.audio=function(){var a=e.createElement("audio"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('audio/ogg; codecs="vorbis"');b.mp3=a.canPlayType("audio/mpeg;");b.wav=a.canPlayType('audio/wav; codecs="1"');b.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")}return b};d.localstorage=function(){try{return"localStorage"in
i&&i.localStorage!==null}catch(a){return false}};d.sessionstorage=function(){try{return"sessionStorage"in i&&i.sessionStorage!==null}catch(a){return false}};d.webWorkers=function(){return!!i.Worker};d.applicationcache=function(){return!!i.applicationCache};d.svg=function(){return!!e.createElementNS&&!!e.createElementNS(v.svg,"svg").createSVGRect};d.inlinesvg=function(){var a=document.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==v.svg};d.smil=function(){return!!e.createElementNS&&
/SVG/.test(O.call(e.createElementNS(v.svg,"animate")))};d.svgclippaths=function(){return!!e.createElementNS&&/SVG/.test(O.call(e.createElementNS(v.svg,"clipPath")))};for(var H in d)if(R(d,H)){w=H.toLowerCase();f[w]=d[H]();P.push((f[w]?"":"no-")+w)}f.input||S();f.crosswindowmessaging=f.postmessage;f.historymanagement=f.history;f.addTest=function(a,b){a=a.toLowerCase();if(!f[a]){b=!!b();l.className+=" "+(b?"":"no-")+a;f[a]=b;return f}};j.cssText="";E=h=null;i.attachEvent&&function(){var a=e.createElement("div");
a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function c(p){for(var m=-1;++m<r;)p.createElement(g[m])}function k(p,m){for(var I=p.length,t=-1,y,J=[];++t<I;){y=p[t];m=y.media||m;J.push(k(y.imports,m));J.push(y.cssText)}return J.join("")}var g="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video".split("|"),r=g.length,x=RegExp("<(/*)(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video)",
"gi"),T=RegExp("\\b(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video)\\b(?!.*[;}])","gi"),z=b.createDocumentFragment(),A=b.documentElement,K=A.firstChild,B=b.createElement("style"),C=b.createElement("body");B.media="all";c(b);c(z);a.attachEvent("onbeforeprint",function(){for(var p=-1;++p<r;)for(var m=b.getElementsByTagName(g[p]),I=m.length,t=-1;++t<I;)if(m[t].className.indexOf("iepp_")<0)m[t].className+=" iepp_"+
g[p];K.insertBefore(B,K.firstChild);B.styleSheet.cssText=k(b.styleSheets,"all").replace(T,".iepp_$1");z.appendChild(b.body);A.appendChild(C);C.innerHTML=z.firstChild.innerHTML.replace(x,"<$1bdo")});a.attachEvent("onafterprint",function(){C.innerHTML="";A.removeChild(C);K.removeChild(B);A.appendChild(z.firstChild)})}(this,document);f._enableHTML5=true;f._version="1.6";l.className=l.className.replace(/\bno-js\b/,"")+" js";l.className+=" "+P.join(" ");return f}(this,this.document);

4
js/libs/modernizr-2.5.2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +0,0 @@
*
!.gitignore

View File

@@ -1,40 +1,11 @@
// remap jQuery to $
(function($){
})(this.jQuery);
// usage: log('inside coolFunc',this,arguments);
// usage: log('inside coolFunc', this, arguments);
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function(){
log.history = log.history || []; // store logs to an array for reference
log.history.push(arguments);
if(this.console){
console.log( Array.prototype.slice.call(arguments) );
}
};
window.log = function f(){ log.history = log.history || []; log.history.push(arguments); if(this.console) { var args = arguments, newarr; args.callee = args.callee.caller; newarr = [].slice.call(args); if (typeof console.log === 'object') log.apply.call(console.log, console, newarr); else console.log.apply(console, newarr);}};
// make it safe to use console.log always
(function(a){function b(){}for(var c="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),d;!!(d=c.pop());){a[d]=a[d]||b;}})
(function(){try{console.log();return window.console;}catch(a){return (window.console={});}}());
// catch all document.write() calls
(function(doc){
var write = doc.write;
doc.write = function(q){
log('document.write(): ',arguments);
if (/docwriteregexwhitelist/.test(q)) write.apply(doc,arguments);
};
})(document);
// place any jQuery/helper plugins in here, instead of separate, slower script files.

Binary file not shown.

View File

@@ -1,59 +0,0 @@
// call PROFILE.show() to show the profileViewer
var PROFILE = {
init : function(bool) {
// define what objects, constructors and functions you want to profile
// documentation here: http://developer.yahoo.com/yui/profiler/
YAHOO.tool.Profiler.registerObject("jQuery", jQuery, true);
// the following would profile all methods within constructor's prototype
// YAHOO.tool.Profiler.registerConstructor("Person");
// the following would profile the global function sayHi
// YAHOO.tool.Profiler.registerFunction("sayHi", window);
// if true is passed into init(), F9 will bring up the profiler
if (bool){
$(document).keyup(function(e){
if (e.keyCode === 120){
PROFILE.show();
$(document).unbind('keyup',arguments.callee);
}
})
}
},
//When the showProfile button is clicked, use YUI Loader to get all required
//dependencies and then show the profile:
show : function() {
var s = document.createElement('link');
s.setAttribute('rel','stylesheet');
s.setAttribute('type','text/css');
s.setAttribute('href','js/profiling/yahoo-profiling.css');
document.body.appendChild(s);
YAHOO.util.Dom.addClass(document.body, 'yui-skin-sam');
//instantiate ProfilerViewer with desired options:
var pv = new YAHOO.widget.ProfilerViewer("", {
visible: true, //expand the viewer mmediately after instantiation
showChart: true,
// base:"../../build/",
swfUrl: "js/profiling/charts.swf"
});
}
};
// check some global debug variable to see if we should be profiling..
if (true) { PROFILE.init(true) }

View File

@@ -1,7 +0,0 @@
/*
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.7.0
*/
.yui-skin-sam .yui-pv{background-color:#4a4a4a;font:arial;position:relative;width:99%;z-index:1000;margin-bottom:1em;overflow:hidden;}.yui-skin-sam .yui-pv .hd{background:url(http://yui.yahooapis.com/2.7.0/build/profilerviewer/assets/skins/sam/header_background.png) repeat-x;min-height:30px;overflow:hidden;zoom:1;padding:2px 0;}.yui-skin-sam .yui-pv .hd h4{padding:8px 10px;margin:0;font:bold 14px arial;color:#fff;}.yui-skin-sam .yui-pv .hd a{background:#3f6bc3;font:bold 11px arial;color:#fff;padding:4px;margin:3px 10px 0 0;border:1px solid #3f567d;cursor:pointer;display:block;float:right;}.yui-skin-sam .yui-pv .hd span{display:none;}.yui-skin-sam .yui-pv .hd span.yui-pv-busy{height:18px;width:18px;background:url(http://yui.yahooapis.com/2.7.0/build/profilerviewer/assets/skins/sam/wait.gif) no-repeat;overflow:hidden;display:block;float:right;margin:4px 10px 0 0;}.yui-skin-sam .yui-pv .hd:after,.yui-pv .bd:after,.yui-skin-sam .yui-pv-chartlegend dl:after{content:'.';visibility:hidden;clear:left;height:0;display:block;}.yui-skin-sam .yui-pv .bd{position:relative;zoom:1;overflow-x:auto;overflow-y:hidden;}.yui-skin-sam .yui-pv .yui-pv-table{padding:0 10px;margin:5px 0 10px 0;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-bd td{color:#eeee5c;font:12px arial;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd{background:#929292;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even{background:#58637a;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-desc{background:#384970;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-desc{background:#6F6E6E;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th{background-image:none;background:#2E2D2D;}.yui-skin-sam .yui-pv th.yui-dt-asc .yui-dt-liner{background:transparent url(http://yui.yahooapis.com/2.7.0/build/profilerviewer/assets/skins/sam/asc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv th.yui-dt-desc .yui-dt-liner{background:transparent url(http://yui.yahooapis.com/2.7.0/build/profilerviewer/assets/skins/sam/desc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th a{color:#fff;font:bold 12px arial;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-desc{background:#333;}.yui-skin-sam .yui-pv-chartcontainer{padding:0 10px;}.yui-skin-sam .yui-pv-chart{height:250px;clear:right;margin:5px 0 0 0;color:#fff;}.yui-skin-sam .yui-pv-chartlegend div{float:right;margin:0 0 0 10px;_width:250px;}.yui-skin-sam .yui-pv-chartlegend dl{border:1px solid #999;padding:.2em 0 .2em .5em;zoom:1;margin:5px 0;}.yui-skin-sam .yui-pv-chartlegend dt{float:left;display:block;height:.7em;width:.7em;padding:0;}.yui-skin-sam .yui-pv-chartlegend dd{float:left;display:block;color:#fff;margin:0 1em 0 .5em;padding:0;font:11px arial;}.yui-skin-sam .yui-pv-minimized{height:35px;}.yui-skin-sam .yui-pv-minimized .bd{top:-3000px;}.yui-skin-sam .yui-pv-minimized .hd a.yui-pv-refresh{display:none;}

File diff suppressed because one or more lines are too long

View File

@@ -1,26 +1,8 @@
/* Author:
/* Author:
*/

View File

@@ -1,108 +0,0 @@
# Set another default user than root for security reasons
user www www;
# As a thumb rule: One per CPU. If you are serving a large amount
# of static files, which requires blocking disk reads, you may want
# to increase this from the number of cpu_cores available on your
# system.
#
# The maximum number of connections for Nginx is calculated by:
# max_clients = worker_processes * worker_connections
worker_processes 1;
# Maximum file descriptors that can be opened per process
# This should be > worker_connections
worker_rlimit_nofile 8192;
events {
# When you need > 8000 * cpu_cores connections, you start optimizing
# your OS, and this is probably the point at where you hire people
# who are smarter than you, this is *a lot* of requests.
worker_connections 8000;
# This sets up some smart queueing for accept(2)'ing requests
# Set it to "on" if you have > worker_processes
accept_mutex off;
# These settings are OS specific, by defualt Nginx uses select(2),
# however, for a large number of requests epoll(2) and kqueue(2)
# are generally faster than the default (select(2))
# use epoll; # enable for Linux 2.6+
# use kqueue; # enable for *BSD (FreeBSD, OS X, ..)
}
# Change these paths to somewhere that suits you!
error_log logs/error.log;
pid logs/nginx.pid;
http {
# Set the mime-types
include mime.types;
# And the fallback mime-type
default_type application/octet-stream;
# Format for our log files
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Click tracking!
access_log logs/access.log main;
# ~2 seconds is often enough for HTML/CSS, but connections in
# Nginx are cheap, so generally it's safe to increase it
keepalive_timeout 5;
# You usually want to serve static files with Nginx
sendfile on;
tcp_nopush on; # off may be better for Comet/long-poll stuff
tcp_nodelay off; # on may be better for Comet/long-poll stuff
# Enable Gzip
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_proxied any;
gzip_types text/html text/plain text/xml application/xml application/xml+rss text/css text/javascript application/javascript application/json;
gzip_static on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
server {
# listen 80 default deferred; # for Linux
# listen 80 default accept_filter=httpready; # for FreeBSD
listen 80 default;
# e.g. "localhost" to accept all connections, or "www.example.com"
# to handle the requests for "example.com" (and www.example.com)
server_name _;
# Path for static files
root /sites/example.com/public;
expires 1M;
# Static assets
location ~* ^.+\.(manifest)$ {
expires -1D;
root /sites/example.com/public;
access_log logs/static.log;
}
location ~* ^.+\.(ico|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
# Only set expires max IFF the file is a static file and exists
if (-f $request_filename) {
expires max;
root /sites/example.com/public;
access_log logs/static.log;
}
}
}
}

55
readme.md Normal file
View File

@@ -0,0 +1,55 @@
# [HTML5 Boilerplate](http://html5boilerplate.com)
HTML5 Boilerplate is a professional front-end template that helps you build fast, robust, adaptable, and future-proof websites. Spend more time developing and less time reinventing the wheel.
This project is the product of many years of iterative development and combined community knowledge. It does not impose a specific development philosophy or framework, so you're free to architect your code in the way that you want.
## Quick start
Clone the git repo - `git clone git://github.com/h5bp/html5-boilerplate.git` - or [download it](https://github.com/h5bp/html5-boilerplate/zipball/master)
## Features
* HTML5 ready. Use the new elements with confidence.
* Cross-browser compatible (Chrome, Opera, Safari, Firefox 3.6+, IE6+).
* Designed with progressive enhancement in mind.
* CSS normalizations and common bug fixes.
* IE-specific classes for easier cross-browser control.
* A default print stylesheet, performance optimized.
* Mobile browser optimizations.
* Protection against any stray `console.log` causing JavaScript errors in IE6/7.
* The latest jQuery via CDN, with a local fallback.
* A custom Modernizr build for feature detection.
* An optimized Google Analytics snippet.
* Apache server caching, compression, and other configuration defaults for Grade-A performance.
* Cross-domain Ajax and Flash.
* "Delete-key friendly." Easy to strip out parts you don't need.
* Extensive inline and accompanying documentation.
## Contributing
Anyone and everyone is welcome to [contribute](https://github.com/h5bp/html5-boilerplate/wiki/contribute). Hundreds of developers have helped make the HTML5 Boilerplate what it is today.
## Project information
* Source: http://github.com/h5bp/html5-boilerplate
* Web: http://html5boilerplate.com
* Docs: http://html5boilerplate.com/docs
* Twitter: http://twitter.com/h5bp
## License
### Major components:
* jQuery: MIT/GPL license
* Modernizr: MIT/BSD license
* Normalize.css: Public Domain
### Everything else:
The Unlicense (aka: public domain)

View File

@@ -1,5 +1,4 @@
# www.robotstxt.org/
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
# http://code.google.com/web/controlcrawlindex/
User-agent: *

View File

@@ -1,31 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>QUnit Tests</title>
<link rel="stylesheet" href="qunit/qunit.css" media="screen">
<!-- reference your own javascript files here -->
<script src="../js/modernizr-1.5.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="../js/plugins.js"></script>
<script src="../js/script.js"></script>
<!-- test runner files -->
<script src="qunit/qunit.js"></script>
<script src="tests.js"></script>
</head>
<body class="flora">
<h1 id="qunit-header">QUnit Test Suite</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">test markup</div>
</body>
</html>

View File

@@ -1,148 +0,0 @@
/** Font Family and Sizes */
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
}
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
#qunit-tests { font-size: smaller; }
/** Resets */
#qunit-tests, #qunit-tests li ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
margin: 0;
padding: 0;
}
/** Header */
#qunit-header {
padding: 0.5em 0 0.5em 1em;
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;
background-color: #0d3349;
border-radius: 15px 15px 0 0;
-moz-border-radius: 15px 15px 0 0;
-webkit-border-top-right-radius: 15px;
-webkit-border-top-left-radius: 15px;
}
#qunit-banner {
height: 5px;
}
#qunit-testrunner-toolbar {
padding: 0em 0 0.5em 2em;
}
#qunit-userAgent {
padding: 0.5em 0 0.5em 2.5em;
background-color: #2b81af;
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
}
/** Tests: Pass/Fail */
#qunit-tests {
list-style-position: inside;
}
#qunit-tests li {
padding: 0.4em 0.5em 0.4em 2.5em;
border-bottom: 1px solid #fff;
list-style-position: inside;
}
#qunit-tests li strong {
cursor: pointer;
}
#qunit-tests li ol {
margin-top: 0.5em;
padding: 0.5em;
background-color: #fff;
border-radius: 15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
box-shadow: inset 0px 2px 13px #999;
-moz-box-shadow: inset 0px 2px 13px #999;
-webkit-box-shadow: inset 0px 2px 13px #999;
}
#qunit-tests li li {
margin: 0.5em;
padding: 0.4em 0.5em 0.4em 0.5em;
background-color: #fff;
border-bottom: none;
list-style-position: inside;
}
/*** Passing Styles */
#qunit-tests li li.pass {
color: #5E740B;
background-color: #fff;
border-left: 26px solid #C6E746;
}
#qunit-tests li.pass { color: #528CE0; background-color: #D2E0E6; }
#qunit-tests li.pass span.test-name { color: #366097; }
#qunit-tests li li.pass span.test-actual,
#qunit-tests li li.pass span.test-expected { color: #999999; }
strong b.pass { color: #5E740B; }
#qunit-banner.qunit-pass { background-color: #C6E746; }
/*** Failing Styles */
#qunit-tests li li.fail {
color: #710909;
background-color: #fff;
border-left: 26px solid #EE5757;
}
#qunit-tests li.fail { color: #000000; background-color: #EE5757; }
#qunit-tests li.fail span.test-name,
#qunit-tests li.fail span.module-name { color: #000000; }
#qunit-tests li li.fail span.test-actual { color: #EE5757; }
#qunit-tests li li.fail span.test-expected { color: green; }
strong b.fail { color: #710909; }
#qunit-banner.qunit-fail,
#qunit-testrunner-toolbar { background-color: #EE5757; }
/** Footer */
#qunit-testresult {
padding: 0.5em 0.5em 0.5em 2.5em;
color: #2b81af;
background-color: #D2E0E6;
border-radius: 0 0 15px 15px;
-moz-border-radius: 0 0 15px 15px;
-webkit-border-bottom-right-radius: 15px;
-webkit-border-bottom-left-radius: 15px;
}
/** Fixture */
#qunit-fixture {
position: absolute;
top: -10000px;
left: -10000px;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,204 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- web.config contributed to html5boilerplate by Velir : velir.com -->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings />
<connectionStrings />
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="false">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
</compilation>
<authentication mode="Windows" />
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="404" redirect="404.html" />
</customErrors>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5" />
<providerOption name="WarnAsError" value="false" />
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5" />
<providerOption name="OptionInfer" value="true" />
<providerOption name="WarnAsError" value="false" />
</compiler>
</compilers>
</system.codedom>
<system.webServer>
<!--
GZip static file content. Overrides the server default which only compresses static files over 2700 bytes
-->
<httpCompression directory="%SystemDrive%\websites\_compressed" minFileSizeForComp="1024">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
<urlCompression doStaticCompression="true" />
<staticContent>
<!-- Set expire headers to 30 days for static content-->
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
<!-- use utf-8 encoding for anything served text/plain or text/html -->
<remove fileExtension=".css" />
<mimeMap fileExtension=".css" mimeType="text/css; charset=UTF-8" />
<remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="text/javascript; charset=UTF-8" />
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" />
<remove fileExtension=".rss" />
<mimeMap fileExtension=".rss" mimeType="application/rss+xml; charset=UTF-8" />
<remove fileExtension=".html" />
<mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8" />
<remove fileExtension=".xml" />
<mimeMap fileExtension=".xml" mimeType="application/xml; charset=UTF-8" />
<!-- HTML5 Video mime types-->
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
<mimeMap fileExtension=".ogg" mimeType="video/ogg" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg" />
<mimeMap fileExtension=".webm" mimeType="video/webm" />
<!-- Proper svg serving. Required for svg webfonts on iPad -->
<mimeMap fileExtension=".svg" mimeType="images/svg+xml" />
<mimeMap fileExtension=".svgz" mimeType="images/svg+xml" />
<!-- HTML4 Web font mime types -->
<!-- Remove default IIS mime type for .eot which is application/octet-stream -->
<remove fileExtension=".eot" />
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
<mimeMap fileExtension=".otf" mimeType="font/otf" />
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
</staticContent>
<httpProtocol>
<customHeaders>
<!--
http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
Uncomment to serve cross-domain ajax requests
<add name="Access-Control-Allow-Origin" value="*" />
-->
<!--
Force the latest IE version, in various cases when it may fall back to IE7 mode
github.com/rails/rails/commit/123eb25#commitcomment-118920
Use ChromeFrame if it's installed for a better experience for the poor IE folk
-->
<add name="X-UA-Compatible" value="IE=Edge,chrome=1" />
<!--
Allow cookies to be set from iframes (for IE only)
If needed, uncomment and specify a path or regex in the Location directive
<add name="P3P" value="policyref=&quot;/w3c/p3p.xml&quot;, CP=&quot;IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT&quot;" />
-->
</customHeaders>
</httpProtocol>
<!--
Remove the WWW from the URL.
Requires IIS Rewrite module http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/
Configuration lifted from http://nayyeri.net/remove-www-prefix-from-urls-with-url-rewrite-module-for-iis-7-0
<rewrite>
<rules>
<rule name="Remove WWW" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="http://nayyeri.net{PATH_INFO}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
-->
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>