html5-boilerplate 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +4 -2
- data/VERSION +1 -1
- data/lib/app/helpers/html5_boilerplate_helper.rb +1 -1
- data/stylesheets/html5-boilerplate/_helpers.scss +1 -2
- data/stylesheets/html5-boilerplate/_media.scss +7 -16
- data/stylesheets/html5-boilerplate/_reset.scss +2 -2
- data/stylesheets/html5-boilerplate/_styles.scss +8 -1
- data/templates/project/_head.html.haml +8 -3
- data/templates/project/_javascripts.html.haml +3 -4
- data/templates/project/files/crossdomain.xml +21 -12
- data/templates/project/files/htaccess +48 -21
- data/templates/project/files/lighttpd.conf +149 -0
- data/templates/project/files/mime.types +80 -0
- data/templates/project/files/nginx.conf +63 -23
- data/templates/project/files/web.config +3 -0
- data/templates/project/index.html.haml +8 -3
- data/templates/project/javascripts/modernizr-1.6.min.js +30 -0
- data/templates/project/manifest.rb +4 -2
- data/templates/project/partials/_example.scss +2 -0
- metadata +6 -4
- data/templates/project/javascripts/modernizr-1.5.min.js +0 -28
data/README.md
CHANGED
@@ -41,7 +41,7 @@ Rails Installation
|
|
41
41
|
|
42
42
|
public/javascripts/dd_belatedpng.js
|
43
43
|
public/javascripts/jquery-1.4.2.min.js
|
44
|
-
public/javascripts/modernizr-1.
|
44
|
+
public/javascripts/modernizr-1.6.min.js
|
45
45
|
public/javascripts/plugins.js
|
46
46
|
public/javascripts/rails.js
|
47
47
|
public/javascripts/profiling/charts.swf
|
@@ -53,6 +53,7 @@ Rails Installation
|
|
53
53
|
config/initializers/compass.rb
|
54
54
|
config/google.yml
|
55
55
|
config/nginx.conf
|
56
|
+
config/mime.types
|
56
57
|
|
57
58
|
The Scss files above will automatically get compiled to your Sass compilation directory:
|
58
59
|
|
@@ -105,7 +106,7 @@ If you omit them, be sure to edit your javascript and style tags accordingly in
|
|
105
106
|
|
106
107
|
js/dd_belatedpng.js
|
107
108
|
js/jquery-1.4.2.min.js
|
108
|
-
js/modernizr-1.
|
109
|
+
js/modernizr-1.6.min.js
|
109
110
|
js/plugins.js
|
110
111
|
js/profiling/charts.swf
|
111
112
|
js/profiling/config.js
|
@@ -115,6 +116,7 @@ If you omit them, be sure to edit your javascript and style tags accordingly in
|
|
115
116
|
.htaccess
|
116
117
|
config.rb
|
117
118
|
nginx.conf
|
119
|
+
mime.types
|
118
120
|
web.config
|
119
121
|
|
120
122
|
Run `compass watch my_project` and the SCSS files above will automatically
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.5
|
@@ -7,7 +7,7 @@ module Html5BoilerplateHelper
|
|
7
7
|
haml_concat("<!--[if IE 7 ]> #{ tag(name, add_class('ie7', attrs), true) } <![endif]-->".html_safe)
|
8
8
|
haml_concat("<!--[if IE 8 ]> #{ tag(name, add_class('ie8', attrs), true) } <![endif]-->".html_safe)
|
9
9
|
haml_concat("<!--[if IE 9 ]> #{ tag(name, add_class('ie9', attrs), true) } <![endif]-->".html_safe)
|
10
|
-
haml_concat("<!--[if (
|
10
|
+
haml_concat("<!--[if (gte IE 9)|!(IE)]><!-->".html_safe)
|
11
11
|
haml_tag name, attrs do
|
12
12
|
haml_concat("<!--<![endif]-->".html_safe)
|
13
13
|
block.call
|
@@ -42,8 +42,7 @@
|
|
42
42
|
}
|
43
43
|
|
44
44
|
// Hide only visually, but have it available for screenreaders
|
45
|
-
// www.webaim.org/techniques/css/invisiblecontent/
|
46
|
-
// Solution from: j.mp/visuallyhidden - Thanks Jonathan Neal!
|
45
|
+
// www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden
|
47
46
|
@mixin visually-hidden {
|
48
47
|
position: absolute !important;
|
49
48
|
clip: rect(1px 1px 1px 1px); // IE6, IE7
|
@@ -18,35 +18,26 @@
|
|
18
18
|
|
19
19
|
//
|
20
20
|
// print styles
|
21
|
-
// inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/
|
21
|
+
// inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/
|
22
22
|
|
23
23
|
@mixin media-print {
|
24
|
-
* { background: transparent !important; color:
|
25
|
-
|
24
|
+
* { background: transparent !important; color: black !important; text-shadow: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
|
26
25
|
a, a:visited { color: #444 !important; text-decoration: underline; }
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
abbr:after { content: " (" attr(title) ")"; }
|
31
|
-
|
32
|
-
.ir a:after { content: ""; } // Don't show links for images
|
33
|
-
|
26
|
+
a[href]:after { content: " (" attr(href) ")"; }
|
27
|
+
abbr[title]:after { content: " (" attr(title) ")"; }
|
28
|
+
.ir a:after { content: ""; } /* Don't show links for images */
|
34
29
|
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
|
35
|
-
|
36
|
-
thead { display: table-header-group; } // css-discuss.incutio.com/wiki/Printing_Tables
|
37
|
-
|
30
|
+
thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
|
38
31
|
tr, img { page-break-inside: avoid; }
|
39
|
-
|
40
32
|
@page { margin: 0.5cm; }
|
41
|
-
|
42
33
|
p, h2, h3 { orphans: 3; widows: 3; }
|
43
|
-
|
44
34
|
h2, h3{ page-break-after: avoid; }
|
45
35
|
}
|
46
36
|
|
47
37
|
|
48
38
|
//
|
49
39
|
// Media queries for responsive design
|
40
|
+
// These follow after primary styles so they will successfully override.
|
50
41
|
//
|
51
42
|
|
52
43
|
@mixin media-orientation-portrait {
|
@@ -2,13 +2,13 @@
|
|
2
2
|
// style.css contains a reset, font normalization and some base styles.
|
3
3
|
//
|
4
4
|
// credit is left where credit is due.
|
5
|
-
//
|
5
|
+
// much inspiration was taken from these projects:
|
6
6
|
// yui.yahooapis.com/2.8.1/build/base/base.css
|
7
7
|
// camendesign.com/design/
|
8
8
|
// praegnanz.de/weblog/htmlcssjs-kickstart
|
9
9
|
//
|
10
10
|
// html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
|
11
|
-
// v1.
|
11
|
+
// v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
|
12
12
|
// html5doctor.com/html-5-reset-stylesheet/
|
13
13
|
//
|
14
14
|
|
@@ -45,6 +45,8 @@ $list-left-margin: 1.8em !default;
|
|
45
45
|
@include webkit-tap-highlight;
|
46
46
|
|
47
47
|
@include ie-hacks;
|
48
|
+
|
49
|
+
@include no-nav-margins;
|
48
50
|
}
|
49
51
|
|
50
52
|
@mixin sub{
|
@@ -82,7 +84,7 @@ $list-left-margin: 1.8em !default;
|
|
82
84
|
|
83
85
|
// hand cursor on clickable input elements
|
84
86
|
@mixin hand-cursor-inputs {
|
85
|
-
label, input[type=button], input[type=submit], button { cursor: pointer; }
|
87
|
+
label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
|
86
88
|
}
|
87
89
|
|
88
90
|
// webkit browsers add a 2px margin outside the chrome of form elements
|
@@ -119,3 +121,8 @@ $list-left-margin: 1.8em !default;
|
|
119
121
|
|
120
122
|
.ie6 legend, .ie7 legend { margin-left: -7px; } // thnx ivannikolic!
|
121
123
|
}
|
124
|
+
|
125
|
+
@mixin no-nav-margins {
|
126
|
+
// Remove margins for navigation lists
|
127
|
+
nav ul, nav li { margin: 0; }
|
128
|
+
}
|
@@ -6,14 +6,19 @@
|
|
6
6
|
Remove this if you use the .htaccess
|
7
7
|
%meta{ :content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible" }/
|
8
8
|
|
9
|
+
-# encoding must be specified within the first 512 bytes www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset
|
10
|
+
|
11
|
+
-# meta element for compatibility mode needs to be before all elements except title & meta msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx
|
12
|
+
-# Chrome Frame is only invoked if meta element for compatibility mode is within the first 1K bytes code.google.com/p/chromium/issues/detail?id=23003
|
13
|
+
|
9
14
|
%title
|
10
15
|
== #{ controller.controller_name.titleize } - #{ controller.action_name.titleize }
|
11
|
-
|
16
|
+
|
12
17
|
%meta{ :content => "", :name => "description" }/
|
13
18
|
%meta{ :content => "", :name => "author" }/
|
14
19
|
|
15
20
|
-# Mobile viewport optimized: j.mp/bplateviewport
|
16
|
-
%meta{ :content => "width=device-width
|
21
|
+
%meta{ :content => "width=device-width, initial-scale=1.0", :name => "viewport" }/
|
17
22
|
|
18
23
|
-# Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references
|
19
24
|
-# %link{ :href => "/favicon.ico", :rel => "shortcut icon" }/
|
@@ -22,6 +27,6 @@
|
|
22
27
|
= render :partial => 'layouts/stylesheets'
|
23
28
|
|
24
29
|
-# All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects
|
25
|
-
= javascript_include_tag 'modernizr-1.
|
30
|
+
= javascript_include_tag 'modernizr-1.6.min'
|
26
31
|
|
27
32
|
= csrf_meta_tag
|
@@ -1,11 +1,11 @@
|
|
1
1
|
-# Grab Google CDN's jQuery
|
2
2
|
-# Looks for google_api_key first in ENV['GOOGLE_API_KEY'] then in config/google.yml
|
3
3
|
- if !google_api_key.blank?
|
4
|
-
= javascript_include_tag "
|
4
|
+
= javascript_include_tag "//www.google.com/jsapi?key=#{google_api_key}"
|
5
5
|
:javascript
|
6
6
|
google.load("jquery", "1.4.2");
|
7
7
|
- else
|
8
|
-
= javascript_include_tag "
|
8
|
+
= javascript_include_tag "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
|
9
9
|
|
10
10
|
-# fall back to local jQuery if necessary
|
11
11
|
:javascript
|
@@ -14,9 +14,8 @@
|
|
14
14
|
= javascript_include_tag 'rails', 'plugins', 'application'
|
15
15
|
|
16
16
|
/[if lt IE 7 ]
|
17
|
-
= javascript_include_tag 'dd_belatedpng'
|
18
17
|
:javascript
|
19
|
-
DD_belatedPNG.fix('img, .png_bg');
|
18
|
+
$.getScript("/javascripts/dd_belatedpng.js",function(){ DD_belatedPNG.fix('img, .png_bg'); });
|
20
19
|
|
21
20
|
-# Append your own using content_for :javascripts
|
22
21
|
= yield :javascripts
|
@@ -1,16 +1,25 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
|
-
<!DOCTYPE cross-domain-policy SYSTEM "http://www.
|
2
|
+
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
|
3
3
|
<cross-domain-policy>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
have a nasty security vulnerability. ~ simon willison
|
8
|
-
|
9
|
-
Please read: www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html
|
10
|
-
|
11
|
-
<allow-access-from domain="*" to-ports="*" />
|
12
|
-
|
13
|
-
-->
|
14
|
-
</cross-domain-policy>
|
4
|
+
|
5
|
+
|
6
|
+
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
|
15
7
|
|
8
|
+
<!-- Most restrictive policy: -->
|
9
|
+
<site-control permitted-cross-domain-policies="none"/>
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<!-- Least restrictive policy: -->
|
14
|
+
<!--
|
15
|
+
<site-control permitted-cross-domain-policies="all"/>
|
16
|
+
<allow-access-from domain="*" to-ports="*" secure="false"/>
|
17
|
+
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
|
18
|
+
-->
|
19
|
+
<!--
|
20
|
+
If you host a crossdomain.xml file with allow-access-from domain=“*”
|
21
|
+
and don’t understand all of the points described here, you probably
|
22
|
+
have a nasty security vulnerability. ~ simon willison
|
23
|
+
-->
|
16
24
|
|
25
|
+
</cross-domain-policy>
|
@@ -1,6 +1,9 @@
|
|
1
1
|
# Apache configuration file
|
2
2
|
# httpd.apache.org/docs/2.2/mod/quickreference.html
|
3
3
|
|
4
|
+
# Note .htaccess files are an overhead, this logic should be in your Apache config if possible
|
5
|
+
# httpd.apache.org/docs/2.2/howto/htaccess.html
|
6
|
+
|
4
7
|
# Techniques in here adapted from all over, including:
|
5
8
|
# Kroc Camen: camendesign.com/.htaccess
|
6
9
|
# perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/
|
@@ -23,11 +26,12 @@
|
|
23
26
|
# Cache control is set only if mod_headers is enabled, so that's unncessary to declare
|
24
27
|
</IfModule>
|
25
28
|
|
26
|
-
#
|
27
|
-
#
|
28
|
-
|
29
|
-
#
|
30
|
-
|
29
|
+
# Serve cross-domain ajax requests, disabled.
|
30
|
+
# enable-cors.org
|
31
|
+
# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
|
32
|
+
# <IfModule mod_headers.c>
|
33
|
+
# Header set Access-Control-Allow-Origin "*"
|
34
|
+
# </IfModule>
|
31
35
|
|
32
36
|
|
33
37
|
|
@@ -43,30 +47,40 @@
|
|
43
47
|
</FilesMatch>
|
44
48
|
|
45
49
|
|
50
|
+
# audio
|
51
|
+
AddType audio/ogg oga ogg
|
52
|
+
|
46
53
|
# video
|
47
|
-
AddType video/ogg
|
48
|
-
AddType video/mp4
|
49
|
-
AddType video/webm
|
54
|
+
AddType video/ogg ogv
|
55
|
+
AddType video/mp4 mp4
|
56
|
+
AddType video/webm webm
|
50
57
|
|
51
58
|
# Proper svg serving. Required for svg webfonts on iPad
|
52
59
|
# twitter.com/FontSquirrel/status/14855840545
|
53
|
-
AddType image/svg+xml
|
54
|
-
AddEncoding gzip
|
55
|
-
|
56
|
-
# webfonts
|
57
|
-
AddType application/vnd.ms-fontobject
|
58
|
-
AddType font/truetype
|
59
|
-
AddType font/opentype
|
60
|
-
AddType font/woff
|
60
|
+
AddType image/svg+xml svg svgz
|
61
|
+
AddEncoding gzip svgz
|
62
|
+
|
63
|
+
# webfonts
|
64
|
+
AddType application/vnd.ms-fontobject eot
|
65
|
+
AddType font/truetype ttf
|
66
|
+
AddType font/opentype otf
|
67
|
+
AddType font/woff woff
|
68
|
+
|
69
|
+
# assorted types
|
70
|
+
AddType image/vnd.microsoft.icon ico
|
71
|
+
AddType image/webp webp
|
72
|
+
AddType text/cache-manifest manifest
|
73
|
+
AddType text/x-component htc
|
74
|
+
AddType application/x-chrome-extension crx
|
75
|
+
AddType application/x-xpinstall xpi
|
76
|
+
AddType application/octet-stream safariextz
|
61
77
|
|
62
|
-
AddType text/cache-manifest manifest
|
63
|
-
AddType text/x-component htc
|
64
78
|
|
65
79
|
|
66
80
|
# allow concatenation from within specific js and css files
|
67
81
|
|
68
82
|
# e.g. Inside of script.combined.js you could have
|
69
|
-
# <!--#include file="jquery-1.4.
|
83
|
+
# <!--#include file="jquery-1.4.4.js" -->
|
70
84
|
# <!--#include file="jquery.idletimer.js" -->
|
71
85
|
# and they would be included into this single file
|
72
86
|
|
@@ -88,8 +102,20 @@ AddType text/x-component htc
|
|
88
102
|
<IfModule mod_deflate.c>
|
89
103
|
|
90
104
|
# html, txt, css, js, json, xml, htc:
|
91
|
-
|
105
|
+
<IfModule filter_module>
|
106
|
+
FilterDeclare COMPRESS
|
107
|
+
FilterProvider COMPRESS DEFLATE resp=Content-Type /text/(html|css|javascript|plain|x(ml|-component))/
|
108
|
+
FilterProvider COMPRESS DEFLATE resp=Content-Type /application/(javascript|json|xml|x-javascript)/
|
109
|
+
FilterChain COMPRESS
|
110
|
+
FilterProtocol COMPRESS change=yes;byteranges=no
|
111
|
+
</IfModule>
|
112
|
+
|
113
|
+
<IfModule !mod_filter.c>
|
114
|
+
# Legacy versions of Apache
|
115
|
+
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
|
116
|
+
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
|
92
117
|
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
|
118
|
+
</IfModule>
|
93
119
|
|
94
120
|
# webfonts and svg:
|
95
121
|
<FilesMatch "\.(ttf|otf|eot|svg)$" >
|
@@ -109,7 +135,6 @@ AddType text/x-component htc
|
|
109
135
|
# "access plus 1 week" or so
|
110
136
|
|
111
137
|
<IfModule mod_expires.c>
|
112
|
-
Header set Cache-Control "public"
|
113
138
|
ExpiresActive on
|
114
139
|
|
115
140
|
# Perhaps better to whitelist expires rules? Perhaps.
|
@@ -154,6 +179,8 @@ AddType text/x-component htc
|
|
154
179
|
ExpiresByType text/css "access plus 1 month"
|
155
180
|
ExpiresByType application/javascript "access plus 1 month"
|
156
181
|
ExpiresByType text/javascript "access plus 1 month"
|
182
|
+
|
183
|
+
Header append Cache-Control "public"
|
157
184
|
</IfModule>
|
158
185
|
|
159
186
|
|
@@ -0,0 +1,149 @@
|
|
1
|
+
############ Options you really have to take care of ####################
|
2
|
+
|
3
|
+
## Run as an unpriveleged user
|
4
|
+
server.username = "www"
|
5
|
+
server.groupname = "www"
|
6
|
+
|
7
|
+
## to help the rc.scripts
|
8
|
+
server.pid-file = "/var/run/lighttpd/lighttpd.pid"
|
9
|
+
|
10
|
+
## A static document-root. For virtual hosting take a look at the
|
11
|
+
## mod_simple_vhost module.
|
12
|
+
server.document-root = "/var/www/sites/go/here/"
|
13
|
+
|
14
|
+
## modules to load
|
15
|
+
# at least mod_access and mod_accesslog should be loaded
|
16
|
+
server.modules = (
|
17
|
+
"mod_access",
|
18
|
+
"mod_accesslog",
|
19
|
+
"mod_redirect",
|
20
|
+
"mod_compress",
|
21
|
+
"mod_expire"
|
22
|
+
)
|
23
|
+
|
24
|
+
### File uploads
|
25
|
+
# Make sure this folder exists and is writable to server.username
|
26
|
+
server.upload-dirs = ( "/tmp/lighttpd/uploads" )
|
27
|
+
|
28
|
+
## where to send error-messages to
|
29
|
+
server.errorlog = "/var/log/lighttpd/error.log"
|
30
|
+
|
31
|
+
#### accesslog module
|
32
|
+
accesslog.filename = "/var/log/lighttpd/access.log"
|
33
|
+
|
34
|
+
### compress module
|
35
|
+
# Make sure this folder exists and is writable to server.username
|
36
|
+
compress.cache-dir = "/tmp/lighttpd/compress/"
|
37
|
+
compress.filetype = (
|
38
|
+
"text/plain",
|
39
|
+
"text/html",
|
40
|
+
"text/css",
|
41
|
+
"application/json",
|
42
|
+
"text/javascript",
|
43
|
+
"application/javascript",
|
44
|
+
"application/x-javascript",
|
45
|
+
"text/xml",
|
46
|
+
"application/xml",
|
47
|
+
"application/xml-rss",
|
48
|
+
"text/x-component",
|
49
|
+
)
|
50
|
+
|
51
|
+
# files to check for if .../ is requested
|
52
|
+
index-file.names = (
|
53
|
+
"index.html",
|
54
|
+
"index.htm",
|
55
|
+
)
|
56
|
+
|
57
|
+
## set the event-handler (read the performance section in the manual)
|
58
|
+
# server.event-handler = "freebsd-kqueue" # needed on OS X
|
59
|
+
|
60
|
+
# mimetype mapping
|
61
|
+
mimetype.assign = (
|
62
|
+
".pdf" => "application/pdf",
|
63
|
+
".sig" => "application/pgp-signature",
|
64
|
+
".spl" => "application/futuresplash",
|
65
|
+
".class" => "application/octet-stream",
|
66
|
+
".safariextz" => "application/octet-stream",
|
67
|
+
".ps" => "application/postscript",
|
68
|
+
".torrent" => "application/x-bittorrent",
|
69
|
+
".crx" => "application/x-chrome-extension",
|
70
|
+
".dvi" => "application/x-dvi",
|
71
|
+
".gz" => "application/x-gzip",
|
72
|
+
".pac" => "application/x-ns-proxy-autoconfig",
|
73
|
+
".swf" => "application/x-shockwave-flash",
|
74
|
+
".tar.gz" => "application/x-tgz",
|
75
|
+
".tgz" => "application/x-tgz",
|
76
|
+
".tar" => "application/x-tar",
|
77
|
+
".xpi" => "application/x-xpinstall",
|
78
|
+
".zip" => "application/zip",
|
79
|
+
".mp3" => "audio/mpeg",
|
80
|
+
".m3u" => "audio/x-mpegurl",
|
81
|
+
".wma" => "audio/x-ms-wma",
|
82
|
+
".wax" => "audio/x-ms-wax",
|
83
|
+
".ogg" => "application/ogg",
|
84
|
+
".wav" => "audio/x-wav",
|
85
|
+
".gif" => "image/gif",
|
86
|
+
".jar" => "application/x-java-archive",
|
87
|
+
".jpg" => "image/jpeg",
|
88
|
+
".jpeg" => "image/jpeg",
|
89
|
+
".png" => "image/png",
|
90
|
+
".xbm" => "image/x-xbitmap",
|
91
|
+
".xpm" => "image/x-xpixmap",
|
92
|
+
".xwd" => "image/x-xwindowdump",
|
93
|
+
".css" => "text/css",
|
94
|
+
".html" => "text/html",
|
95
|
+
".htm" => "text/html",
|
96
|
+
".js" => "text/javascript",
|
97
|
+
".json" => "text/javascript",
|
98
|
+
".asc" => "text/plain",
|
99
|
+
".c" => "text/plain",
|
100
|
+
".cpp" => "text/plain",
|
101
|
+
".log" => "text/plain",
|
102
|
+
".conf" => "text/plain",
|
103
|
+
".text" => "text/plain",
|
104
|
+
".txt" => "text/plain",
|
105
|
+
".dtd" => "text/xml",
|
106
|
+
".xml" => "text/xml",
|
107
|
+
".mpeg" => "video/mpeg",
|
108
|
+
".mpg" => "video/mpeg",
|
109
|
+
".mov" => "video/quicktime",
|
110
|
+
".qt" => "video/quicktime",
|
111
|
+
".avi" => "video/x-msvideo",
|
112
|
+
".asf" => "video/x-ms-asf",
|
113
|
+
".asx" => "video/x-ms-asf",
|
114
|
+
".wmv" => "video/x-ms-wmv",
|
115
|
+
".bz2" => "application/x-bzip",
|
116
|
+
".tbz" => "application/x-bzip-compressed-tar",
|
117
|
+
".tar.bz2" => "application/x-bzip-compressed-tar",
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
# default mime type
|
122
|
+
"" => "application/octet-stream",
|
123
|
+
)
|
124
|
+
|
125
|
+
## deny access the file-extensions
|
126
|
+
#
|
127
|
+
# ~ is for backupfiles from vi, emacs, joe, ...
|
128
|
+
# .inc is often used for code includes which should in general not be part
|
129
|
+
# of the document-root
|
130
|
+
url.access-deny = ( "~", ".inc" )
|
131
|
+
|
132
|
+
$HTTP["url"] =~ "\.pdf$" {
|
133
|
+
server.range-requests = "disable"
|
134
|
+
}
|
135
|
+
|
136
|
+
##
|
137
|
+
# which extensions should not be handle via static-file transfer
|
138
|
+
#
|
139
|
+
# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
|
140
|
+
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
|
141
|
+
|
142
|
+
## bind to all ips, or change to a specific ip
|
143
|
+
server.bind = "0.0.0.0"
|
144
|
+
|
145
|
+
# If its an asset, expires in a month from now
|
146
|
+
expire.url = (
|
147
|
+
"\.(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)" => "access plus 10 years",
|
148
|
+
".*" => "access plus 1 month"
|
149
|
+
)
|
@@ -0,0 +1,80 @@
|
|
1
|
+
types {
|
2
|
+
text/html html htm shtml;
|
3
|
+
text/css css;
|
4
|
+
text/xml xml rss;
|
5
|
+
image/gif gif;
|
6
|
+
image/jpeg jpeg jpg;
|
7
|
+
application/x-javascript js;
|
8
|
+
application/atom+xml atom;
|
9
|
+
|
10
|
+
text/cache-manifest manifest;
|
11
|
+
text/mathml mml;
|
12
|
+
text/plain txt;
|
13
|
+
text/vnd.sun.j2me.app-descriptor jad;
|
14
|
+
text/vnd.wap.wml wml;
|
15
|
+
text/x-component htc;
|
16
|
+
|
17
|
+
image/png png;
|
18
|
+
image/svg+xml svg svgz;
|
19
|
+
image/tiff tif tiff;
|
20
|
+
image/vnd.wap.wbmp wbmp;
|
21
|
+
image/webp webp;
|
22
|
+
image/vnd.microsoft.icon ico;
|
23
|
+
image/x-jng jng;
|
24
|
+
image/x-ms-bmp bmp;
|
25
|
+
|
26
|
+
application/java-archive jar war ear;
|
27
|
+
application/mac-binhex40 hqx;
|
28
|
+
application/msword doc;
|
29
|
+
application/pdf pdf;
|
30
|
+
application/postscript ps eps ai;
|
31
|
+
application/rtf rtf;
|
32
|
+
application/vnd.ms-excel xls;
|
33
|
+
application/vnd.ms-powerpoint ppt;
|
34
|
+
application/vnd.wap.wmlc wmlc;
|
35
|
+
application/vnd.wap.xhtml+xml xhtml;
|
36
|
+
application/x-chrome-extension crx;
|
37
|
+
application/x-cocoa cco;
|
38
|
+
application/x-java-archive-diff jardiff;
|
39
|
+
application/x-java-jnlp-file jnlp;
|
40
|
+
application/x-makeself run;
|
41
|
+
application/x-perl pl pm;
|
42
|
+
application/x-pilot prc pdb;
|
43
|
+
application/x-rar-compressed rar;
|
44
|
+
application/x-redhat-package-manager rpm;
|
45
|
+
application/x-sea sea;
|
46
|
+
application/x-shockwave-flash swf;
|
47
|
+
application/x-stuffit sit;
|
48
|
+
application/x-tcl tcl tk;
|
49
|
+
application/x-x509-ca-cert der pem crt;
|
50
|
+
application/x-xpinstall xpi;
|
51
|
+
application/zip zip;
|
52
|
+
|
53
|
+
application/octet-stream bin exe dll;
|
54
|
+
application/octet-stream deb;
|
55
|
+
application/octet-stream dmg;
|
56
|
+
application/octet-stream iso img;
|
57
|
+
application/octet-stream msi msp msm;
|
58
|
+
application/octet-stream safariextz
|
59
|
+
|
60
|
+
audio/midi mid midi kar;
|
61
|
+
audio/mpeg mp3;
|
62
|
+
audio/x-realaudio ra;
|
63
|
+
audio/ogg oga ogg;
|
64
|
+
|
65
|
+
video/3gpp 3gpp 3gp;
|
66
|
+
video/mpeg mpeg mpg;
|
67
|
+
video/ogg ogv;
|
68
|
+
video/quicktime mov;
|
69
|
+
video/webm webm;
|
70
|
+
video/x-flv flv;
|
71
|
+
video/x-mng mng;
|
72
|
+
video/x-ms-asf asx asf;
|
73
|
+
video/x-ms-wmv wmv;
|
74
|
+
video/x-msvideo avi;
|
75
|
+
|
76
|
+
application/vnd.ms-fontobject eot;
|
77
|
+
font/truetype ttf;
|
78
|
+
font/opentype otf;
|
79
|
+
font/woff woff;
|
80
|
+
}
|
@@ -1,68 +1,108 @@
|
|
1
|
+
# Set another default user than root for security reasons
|
1
2
|
user www www;
|
2
|
-
|
3
|
-
|
4
|
-
|
3
|
+
|
4
|
+
# As a thumb rule: One per CPU. If you are serving a large amount
|
5
|
+
# of static files, which requires blocking disk reads, you may want
|
6
|
+
# to increase this from the number of cpu_cores available on your
|
7
|
+
# system.
|
8
|
+
#
|
9
|
+
# The maximum number of connections for Nginx is calculated by:
|
10
|
+
# max_clients = worker_processes * worker_connections
|
11
|
+
worker_processes 1;
|
12
|
+
|
13
|
+
# Maximum file descriptors that can be opened per process
|
14
|
+
# This should be > worker_connections
|
5
15
|
worker_rlimit_nofile 8192;
|
6
16
|
|
7
17
|
events {
|
8
|
-
|
18
|
+
# When you need > 8000 * cpu_cores connections, you start optimizing
|
19
|
+
# your OS, and this is probably the point at where you hire people
|
20
|
+
# who are smarter than you, this is *a lot* of requests.
|
21
|
+
worker_connections 8000;
|
22
|
+
|
23
|
+
# This sets up some smart queueing for accept(2)'ing requests
|
24
|
+
# Set it to "on" if you have > worker_processes
|
25
|
+
accept_mutex off;
|
26
|
+
|
27
|
+
# These settings are OS specific, by defualt Nginx uses select(2),
|
28
|
+
# however, for a large number of requests epoll(2) and kqueue(2)
|
29
|
+
# are generally faster than the default (select(2))
|
30
|
+
# use epoll; # enable for Linux 2.6+
|
31
|
+
# use kqueue; # enable for *BSD (FreeBSD, OS X, ..)
|
9
32
|
}
|
10
33
|
|
34
|
+
# Change these paths to somewhere that suits you!
|
35
|
+
error_log logs/error.log;
|
36
|
+
pid logs/nginx.pid;
|
37
|
+
|
11
38
|
http {
|
39
|
+
# Set the mime-types
|
12
40
|
include mime.types;
|
41
|
+
|
42
|
+
# And the fallback mime-type
|
13
43
|
default_type application/octet-stream;
|
44
|
+
|
45
|
+
# Format for our log files
|
14
46
|
log_format main '$remote_addr - $remote_user [$time_local] $status '
|
15
47
|
'"$request" $body_bytes_sent "$http_referer" '
|
16
48
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
49
|
+
|
50
|
+
# Click tracking!
|
17
51
|
access_log logs/access.log main;
|
18
52
|
|
19
|
-
|
53
|
+
# ~2 seconds is often enough for HTML/CSS, but connections in
|
54
|
+
# Nginx are cheap, so generally it's safe to increase it
|
55
|
+
keepalive_timeout 5;
|
20
56
|
|
57
|
+
# You usually want to serve static files with Nginx
|
21
58
|
sendfile on;
|
22
|
-
tcp_nopush on;
|
23
|
-
tcp_nodelay off;
|
24
59
|
|
60
|
+
tcp_nopush on; # off may be better for Comet/long-poll stuff
|
61
|
+
tcp_nodelay off; # on may be better for Comet/long-poll stuff
|
62
|
+
|
63
|
+
# Enable Gzip
|
25
64
|
gzip on;
|
26
65
|
gzip_http_version 1.0;
|
27
66
|
gzip_comp_level 2;
|
28
67
|
gzip_min_length 1100;
|
29
68
|
gzip_buffers 4 8k;
|
30
69
|
gzip_proxied any;
|
31
|
-
gzip_types text/
|
70
|
+
gzip_types text/plain text/xml application/xml application/xml+rss text/css text/javascript application/javascript application/json;
|
32
71
|
|
33
72
|
gzip_static on;
|
34
|
-
|
73
|
+
|
35
74
|
gzip_proxied expired no-cache no-store private auth;
|
36
75
|
gzip_disable "MSIE [1-6]\.";
|
37
76
|
gzip_vary on;
|
38
77
|
|
39
78
|
server {
|
40
|
-
listen 80 default deferred;
|
41
|
-
|
42
|
-
|
79
|
+
# listen 80 default deferred; # for Linux
|
80
|
+
# listen 80 default accept_filter=httpready; # for FreeBSD
|
81
|
+
listen 80 default;
|
43
82
|
|
83
|
+
# e.g. "localhost" to accept all connections, or "www.example.com"
|
84
|
+
# to handle the requests for "example.com" (and www.example.com)
|
85
|
+
server_name _;
|
86
|
+
|
87
|
+
# Path for static files
|
44
88
|
root /sites/example.com/public;
|
45
89
|
|
46
|
-
|
47
|
-
|
48
|
-
|
90
|
+
expires 1M;
|
91
|
+
|
92
|
+
# Static assets
|
93
|
+
location ~* ^.+\.(manifest)$ {
|
94
|
+
expires -1;
|
49
95
|
root /sites/example.com/public;
|
50
96
|
access_log logs/static.log;
|
51
97
|
}
|
98
|
+
|
52
99
|
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)$ {
|
53
|
-
#
|
100
|
+
# Only set expires max IFF the file is a static file and exists
|
54
101
|
if (-f $request_filename) {
|
55
102
|
expires max;
|
56
103
|
root /sites/example.com/public;
|
57
104
|
access_log logs/static.log;
|
58
105
|
}
|
59
106
|
}
|
60
|
-
|
61
|
-
}
|
62
|
-
server {
|
63
|
-
server_name www.example.com;
|
64
|
-
rewrite ^(.*) http://example.com$1 permanent;
|
65
107
|
}
|
66
|
-
|
67
108
|
}
|
68
|
-
|
@@ -144,6 +144,9 @@
|
|
144
144
|
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
|
145
145
|
<mimeMap fileExtension=".otf" mimeType="font/otf" />
|
146
146
|
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
|
147
|
+
<mimeMap fileExtension=".crx" mimeType="application/x-chrome-extension" />
|
148
|
+
<mimeMap fileExtension=".xpi" mimeType="application/x-xpinstall" />
|
149
|
+
<mimeMap fileExtension=".safariextz" mimeType="application/octet-stream" />
|
147
150
|
|
148
151
|
</staticContent>
|
149
152
|
<httpProtocol>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
|
5
5
|
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
|
6
6
|
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
|
7
|
-
<!--[if (
|
7
|
+
<!--[if (gte IE 9)|!(IE)]><!-->
|
8
8
|
%html.no-js{ :lang => "en" }
|
9
9
|
<!--<![endif]-->
|
10
10
|
%head
|
@@ -15,12 +15,17 @@
|
|
15
15
|
Remove this if you use the .htaccess
|
16
16
|
%meta{ :content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible" }/
|
17
17
|
|
18
|
+
-# encoding must be specified within the first 512 bytes www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset
|
19
|
+
|
20
|
+
-# meta element for compatibility mode needs to be before all elements except title & meta msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx
|
21
|
+
-# Chrome Frame is only invoked if meta element for compatibility mode is within the first 1K bytes code.google.com/p/chromium/issues/detail?id=23003
|
22
|
+
|
18
23
|
%title
|
19
24
|
%meta{ :content => "", :name => "description" }/
|
20
25
|
%meta{ :content => "", :name => "author" }/
|
21
26
|
|
22
27
|
-# Mobile viewport optimized: j.mp/bplateviewport
|
23
|
-
%meta{ :content => "width=device-width
|
28
|
+
%meta{ :content => "width=device-width, initial-scale=1.0", :name => "viewport" }/
|
24
29
|
|
25
30
|
-# Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references
|
26
31
|
-# %link{ :href => "/favicon.ico", :rel => "shortcut icon" }/
|
@@ -33,7 +38,7 @@
|
|
33
38
|
-# %link{ :href => "css/handheld.css?v=1", :media => "handheld", :rel => "stylesheet" }/
|
34
39
|
|
35
40
|
-# All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects
|
36
|
-
%script{ :src => "js/modernizr-1.
|
41
|
+
%script{ :src => "js/modernizr-1.6.min.js" }
|
37
42
|
|
38
43
|
%body
|
39
44
|
#container
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/*
|
2
|
+
* Modernizr v1.6
|
3
|
+
* http://www.modernizr.com
|
4
|
+
*
|
5
|
+
* Developed by:
|
6
|
+
* - Faruk Ates http://farukat.es/
|
7
|
+
* - Paul Irish http://paulirish.com/
|
8
|
+
*
|
9
|
+
* Copyright (c) 2009-2010
|
10
|
+
* Dual-licensed under the BSD or MIT licenses.
|
11
|
+
* http://www.modernizr.com/license/
|
12
|
+
*/
|
13
|
+
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<
|
14
|
+
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(" "))}
|
15
|
+
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===
|
16
|
+
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=
|
17
|
+
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);
|
18
|
+
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),(")+
|
19
|
+
"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")&&
|
20
|
+
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=
|
21
|
+
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=
|
22
|
+
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",
|
23
|
+
"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,
|
24
|
+
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"');
|
25
|
+
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
|
26
|
+
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&&
|
27
|
+
/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");
|
28
|
+
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)",
|
29
|
+
"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_"+
|
30
|
+
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);
|
@@ -16,9 +16,10 @@ if Compass.configuration.project_type == :rails
|
|
16
16
|
file '_stylesheets.html.haml', :to => 'app/views/layouts/_stylesheets.html.haml'
|
17
17
|
file 'files/google.yml', :to => 'config/google.yml'
|
18
18
|
file 'files/nginx.conf', :to => 'config/nginx.conf'
|
19
|
+
file 'files/mime.types', :to => 'config/mime.types'
|
19
20
|
javascript 'javascripts/dd_belatedpng.js', :to => 'dd_belatedpng.js'
|
20
21
|
javascript 'javascripts/jquery-1.4.2.min.js', :to => 'jquery-1.4.2.min.js'
|
21
|
-
javascript 'javascripts/modernizr-1.
|
22
|
+
javascript 'javascripts/modernizr-1.6.min.js', :to => 'modernizr-1.6.min.js'
|
22
23
|
javascript 'javascripts/plugins.js', :to => 'plugins.js'
|
23
24
|
javascript 'javascripts/rails.js', :to => 'rails.js'
|
24
25
|
javascript 'javascripts/profiling/charts.swf', :to => 'profiling/charts.swf'
|
@@ -28,10 +29,11 @@ if Compass.configuration.project_type == :rails
|
|
28
29
|
else
|
29
30
|
html 'index.html.haml'
|
30
31
|
file 'files/nginx.conf', :to => 'nginx.conf'
|
32
|
+
file 'files/mime.types', :to => 'mime.types'
|
31
33
|
file 'files/web.config', :to => 'web.config'
|
32
34
|
javascript 'javascripts/dd_belatedpng.js', :to => 'dd_belatedpng.js'
|
33
35
|
javascript 'javascripts/jquery-1.4.2.min.js', :to => 'jquery-1.4.2.min.js'
|
34
|
-
javascript 'javascripts/modernizr-1.
|
36
|
+
javascript 'javascripts/modernizr-1.6.min.js', :to => 'modernizr-1.6.min.js'
|
35
37
|
javascript 'javascripts/plugins.js', :to => 'plugins.js'
|
36
38
|
javascript 'javascripts/profiling/charts.swf', :to => 'profiling/charts.swf'
|
37
39
|
javascript 'javascripts/profiling/config.js', :to => 'profiling/config.js'
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 5
|
9
|
+
version: 0.2.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Peter Gumeson
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-11-19 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -66,6 +66,8 @@ files:
|
|
66
66
|
- templates/project/files/crossdomain.xml
|
67
67
|
- templates/project/files/favicon.ico
|
68
68
|
- templates/project/files/google.yml
|
69
|
+
- templates/project/files/lighttpd.conf
|
70
|
+
- templates/project/files/mime.types
|
69
71
|
- templates/project/files/nginx.conf
|
70
72
|
- templates/project/files/robots.txt
|
71
73
|
- templates/project/files/web.config
|
@@ -73,7 +75,7 @@ files:
|
|
73
75
|
- templates/project/index.html.haml
|
74
76
|
- templates/project/javascripts/dd_belatedpng.js
|
75
77
|
- templates/project/javascripts/jquery-1.4.2.min.js
|
76
|
-
- templates/project/javascripts/modernizr-1.
|
78
|
+
- templates/project/javascripts/modernizr-1.6.min.js
|
77
79
|
- templates/project/javascripts/plugins.js
|
78
80
|
- templates/project/javascripts/profiling/charts.swf
|
79
81
|
- templates/project/javascripts/profiling/config.js
|
@@ -1,28 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Modernizr JavaScript library 1.5
|
3
|
-
* http://www.modernizr.com/
|
4
|
-
*
|
5
|
-
* Copyright (c) 2009-2010 Faruk Ates - http://farukat.es/
|
6
|
-
* Dual-licensed under the BSD and MIT licenses.
|
7
|
-
* http://www.modernizr.com/license/
|
8
|
-
*
|
9
|
-
* Featuring major contributions by
|
10
|
-
* Paul Irish - http://paulirish.com
|
11
|
-
*/
|
12
|
-
window.Modernizr=function(i,e,I){function C(a,b){for(var c in a)if(m[a[c]]!==I&&(!b||b(a[c],D)))return true}function r(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1);return!!C([a,"Webkit"+c,"Moz"+c,"O"+c,"ms"+c,"Khtml"+c],b)}function P(){j[E]=function(a){for(var b=0,c=a.length;b<c;b++)J[a[b]]=!!(a[b]in n);return J}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));j[Q]=function(a){for(var b=0,c,h=a.length;b<h;b++){n.setAttribute("type",a[b]);if(c=n.type!==
|
13
|
-
"text"){n.value=K;/tel|search/.test(n.type)||(c=/url|email/.test(n.type)?n.checkValidity&&n.checkValidity()===false:n.value!=K)}L[a[b]]=!!c}return L}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var j={},s=e.documentElement,D=e.createElement("modernizr"),m=D.style,n=e.createElement("input"),E="input",Q=E+"types",K=":)",M=Object.prototype.toString,y=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),d={},L={},J={},N=[],u=function(){var a={select:"input",
|
14
|
-
change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"},b={};return function(c,h){var t=arguments.length==1;if(t&&b[c])return b[c];h=h||document.createElement(a[c]||"div");c="on"+c;var g=c in h;if(!g&&h.setAttribute){h.setAttribute(c,"return;");g=typeof h[c]=="function"}h=null;return t?(b[c]=g):g}}(),F={}.hasOwnProperty,O;O=typeof F!=="undefined"&&typeof F.call!=="undefined"?function(a,b){return F.call(a,b)}:function(a,b){return b in a&&typeof a.constructor.prototype[b]==="undefined"};
|
15
|
-
d.canvas=function(){return!!e.createElement("canvas").getContext};d.canvastext=function(){return!!(d.canvas()&&typeof e.createElement("canvas").getContext("2d").fillText=="function")};d.geolocation=function(){return!!navigator.geolocation};d.crosswindowmessaging=function(){return!!i.postMessage};d.websqldatabase=function(){var a=!!i.openDatabase;if(a)try{a=!!openDatabase("testdb","1.0","html5 test db",2E5)}catch(b){a=false}return a};d.indexedDB=function(){return!!i.indexedDB};d.hashchange=function(){return u("hashchange",
|
16
|
-
i)&&(document.documentMode===I||document.documentMode>7)};d.historymanagement=function(){return!!(i.history&&history.pushState)};d.draganddrop=function(){return u("drag")&&u("dragstart")&&u("dragenter")&&u("dragover")&&u("dragleave")&&u("dragend")&&u("drop")};d.websockets=function(){return"WebSocket"in i};d.rgba=function(){m.cssText="background-color:rgba(150,255,150,.5)";return(""+m.backgroundColor).indexOf("rgba")!==-1};d.hsla=function(){m.cssText="background-color:hsla(120,40%,100%,.5)";return(""+
|
17
|
-
m.backgroundColor).indexOf("rgba")!==-1};d.multiplebgs=function(){m.cssText="background:url(//:),url(//:),red url(//:)";return/(url\s*\(.*?){3}/.test(m.background)};d.backgroundsize=function(){return r("backgroundSize")};d.borderimage=function(){return r("borderImage")};d.borderradius=function(){return r("borderRadius","",function(a){return(""+a).indexOf("orderRadius")!==-1})};d.boxshadow=function(){return r("boxShadow")};d.opacity=function(){var a=y.join("opacity:.5;")+"";m.cssText=a;return(""+m.opacity).indexOf("0.5")!==
|
18
|
-
-1};d.cssanimations=function(){return r("animationName")};d.csscolumns=function(){return r("columnCount")};d.cssgradients=function(){var a=("background-image:"+y.join("gradient(linear,left top,right bottom,from(#9f9),to(white));background-image:")+y.join("linear-gradient(left top,#9f9, white);background-image:")).slice(0,-17);m.cssText=a;return(""+m.backgroundImage).indexOf("gradient")!==-1};d.cssreflections=function(){return r("boxReflect")};d.csstransforms=function(){return!!C(["transformProperty",
|
19
|
-
"WebkitTransform","MozTransform","OTransform","msTransform"])};d.csstransforms3d=function(){var a=!!C(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);if(a){var b=document.createElement("style"),c=e.createElement("div");b.textContent="@media ("+y.join("transform-3d),(")+"modernizr){#modernizr{height:3px}}";e.getElementsByTagName("head")[0].appendChild(b);c.id="modernizr";s.appendChild(c);a=c.offsetHeight===3;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}return a};
|
20
|
-
d.csstransitions=function(){return r("transitionProperty")};d.fontface=function(){var a;if(/*@cc_on@if(@_jscript_version>=5)!@end@*/0)a=true;else{var b=e.createElement("style"),c=e.createElement("span"),h,t=false,g=e.body,o,w;b.textContent="@font-face{font-family:testfont;src:url('data:font/ttf;base64,AAEAAAAMAIAAAwBAT1MvMliohmwAAADMAAAAVmNtYXCp5qrBAAABJAAAANhjdnQgACICiAAAAfwAAAAEZ2FzcP//AAMAAAIAAAAACGdseWYv5OZoAAACCAAAANxoZWFk69bnvwAAAuQAAAA2aGhlYQUJAt8AAAMcAAAAJGhtdHgGDgC4AAADQAAAABRsb2NhAIQAwgAAA1QAAAAMbWF4cABVANgAAANgAAAAIG5hbWUgXduAAAADgAAABPVwb3N03NkzmgAACHgAAAA4AAECBAEsAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAACAAMDAAAAAAAAgAACbwAAAAoAAAAAAAAAAFBmRWQAAAAgqS8DM/8zAFwDMwDNAAAABQAAAAAAAAAAAAMAAAADAAAAHAABAAAAAABGAAMAAQAAAK4ABAAqAAAABgAEAAEAAgAuqQD//wAAAC6pAP///9ZXAwAAAAAAAAACAAAABgBoAAAAAAAvAAEAAAAAAAAAAAAAAAAAAAABAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEACoAAAAGAAQAAQACAC6pAP//AAAALqkA////1lcDAAAAAAAAAAIAAAAiAogAAAAB//8AAgACACIAAAEyAqoAAwAHAC6xAQAvPLIHBADtMrEGBdw8sgMCAO0yALEDAC88sgUEAO0ysgcGAfw8sgECAO0yMxEhESczESMiARDuzMwCqv1WIgJmAAACAFUAAAIRAc0ADwAfAAATFRQWOwEyNj0BNCYrASIGARQGKwEiJj0BNDY7ATIWFX8aIvAiGhoi8CIaAZIoN/43KCg3/jcoAWD0JB4eJPQkHh7++EY2NkbVRjY2RgAAAAABAEH/+QCdAEEACQAANjQ2MzIWFAYjIkEeEA8fHw8QDxwWFhwWAAAAAQAAAAIAAIuYbWpfDzz1AAsEAAAAAADFn9IuAAAAAMWf0i797/8zA4gDMwAAAAgAAgAAAAAAAAABAAADM/8zAFwDx/3v/98DiAABAAAAAAAAAAAAAAAAAAAABQF2ACIAAAAAAVUAAAJmAFUA3QBBAAAAKgAqACoAWgBuAAEAAAAFAFAABwBUAAQAAgAAAAEAAQAAAEAALgADAAMAAAAQAMYAAQAAAAAAAACLAAAAAQAAAAAAAQAhAIsAAQAAAAAAAgAFAKwAAQAAAAAAAwBDALEAAQAAAAAABAAnAPQAAQAAAAAABQAKARsAAQAAAAAABgAmASUAAQAAAAAADgAaAUsAAwABBAkAAAEWAWUAAwABBAkAAQBCAnsAAwABBAkAAgAKAr0AAwABBAkAAwCGAscAAwABBAkABABOA00AAwABBAkABQAUA5sAAwABBAkABgBMA68AAwABBAkADgA0A/tDb3B5cmlnaHQgMjAwOSBieSBEYW5pZWwgSm9obnNvbi4gIFJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgT3BlbiBGb250IExpY2Vuc2UuIEtheWFoIExpIGdseXBocyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEdQTCB2ZXJzaW9uIDMuYmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhTGlnaHRiYWVjMmE5MmJmZmU1MDMyIC0gc3Vic2V0IG9mIEZvbnRGb3JnZSAyLjAgOiBKdXJhIExpZ2h0IDogMjMtMS0yMDA5YmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhIExpZ2h0VmVyc2lvbiAyIGJhZWMyYTkyYmZmZTUwMzIgLSBzdWJzZXQgb2YgSnVyYUxpZ2h0aHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMAA5ACAAYgB5ACAARABhAG4AaQBlAGwAIABKAG8AaABuAHMAbwBuAC4AIAAgAFIAZQBsAGUAYQBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAdABoAGUAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUALgAgAEsAYQB5AGEAaAAgAEwAaQAgAGcAbAB5AHAAaABzACAAYQByAGUAIAByAGUAbABlAGEAcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEcAUABMACAAdgBlAHIAcwBpAG8AbgAgADMALgBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQBMAGkAZwBoAHQAYgBhAGUAYwAyAGEAOQAyAGIAZgBmAGUANQAwADMAMgAgAC0AIABzAHUAYgBzAGUAdAAgAG8AZgAgAEYAbwBuAHQARgBvAHIAZwBlACAAMgAuADAAIAA6ACAASgB1AHIAYQAgAEwAaQBnAGgAdAAgADoAIAAyADMALQAxAC0AMgAwADAAOQBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQAgAEwAaQBnAGgAdABWAGUAcgBzAGkAbwBuACAAMgAgAGIAYQBlAGMAMgBhADkAMgBiAGYAZgBlADUAMAAzADIAIAAtACAAcwB1AGIAcwBlAHQAIABvAGYAIABKAHUAcgBhAEwAaQBnAGgAdABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAAAAAAgAAAAAAAP+BADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQACAQIAEQt6ZXJva2F5YWhsaQ==')}";
|
21
|
-
e.getElementsByTagName("head")[0].appendChild(b);c.setAttribute("style","font:99px _,arial,helvetica;position:absolute;visibility:hidden");if(!g){g=s.appendChild(e.createElement("fontface"));t=true}c.innerHTML="........";c.id="fonttest";g.appendChild(c);h=c.offsetWidth*c.offsetHeight;c.style.font="99px testfont,_,arial,helvetica";a=h!==c.offsetWidth*c.offsetHeight;var v=function(){if(g.parentNode){a=j.fontface=h!==c.offsetWidth*c.offsetHeight;s.className=s.className.replace(/(no-)?fontface\b/,"")+
|
22
|
-
(a?" ":" no-")+"fontface"}};setTimeout(v,75);setTimeout(v,150);addEventListener("load",function(){v();(w=true)&&o&&o(a);setTimeout(function(){t||(g=c);g.parentNode.removeChild(g);b.parentNode.removeChild(b)},50)},false)}j._fontfaceready=function(p){w||a?p(a):(o=p)};return a||h!==c.offsetWidth};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"');b.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return b};
|
23
|
-
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(){return"localStorage"in i&&i.localStorage!==null};d.sessionStorage=function(){try{return"sessionStorage"in i&&i.sessionStorage!==null}catch(a){return false}};d.webworkers=function(){return!!i.Worker};
|
24
|
-
d.applicationCache=function(){var a=i.applicationCache;return!!(a&&typeof a.status!="undefined"&&typeof a.update=="function"&&typeof a.swapCache=="function")};d.svg=function(){return!!e.createElementNS&&!!e.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect};d.smil=function(){return!!e.createElementNS&&/SVG/.test(M.call(e.createElementNS("http://www.w3.org/2000/svg","animate")))};d.svgclippaths=function(){return!!e.createElementNS&&/SVG/.test(M.call(e.createElementNS("http://www.w3.org/2000/svg",
|
25
|
-
"clipPath")))};for(var z in d)if(O(d,z))N.push(((j[z.toLowerCase()]=d[z]())?"":"no-")+z.toLowerCase());j[E]||P();j.addTest=function(a,b){a=a.toLowerCase();if(!j[a]){b=!!b();s.className+=" "+(b?"":"no-")+a;j[a]=b;return j}};m.cssText="";D=n=null;(function(){var a=e.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1})()&&function(a,b){function c(f,k){if(o[f])o[f].styleSheet.cssText+=k;else{var l=t[G],q=b[A]("style");q.media=f;l.insertBefore(q,l[G]);o[f]=q;c(f,k)}}function h(f,
|
26
|
-
k){for(var l=new RegExp("\\b("+w+")\\b(?!.*[;}])","gi"),q=function(B){return".iepp_"+B},x=-1;++x<f.length;){k=f[x].media||k;h(f[x].imports,k);c(k,f[x].cssText.replace(l,q))}}for(var t=b.documentElement,g=b.createDocumentFragment(),o={},w="abbr|article|aside|audio|canvas|command|datalist|details|figure|figcaption|footer|header|hgroup|keygen|mark|meter|nav|output|progress|section|source|summary|time|video",v=w.split("|"),p=[],H=-1,G="firstChild",A="createElement";++H<v.length;){b[A](v[H]);g[A](v[H])}g=
|
27
|
-
g.appendChild(b[A]("div"));a.attachEvent("onbeforeprint",function(){for(var f,k=b.getElementsByTagName("*"),l,q,x=new RegExp("^"+w+"$","i"),B=-1;++B<k.length;)if((f=k[B])&&(q=f.nodeName.match(x))){l=new RegExp("^\\s*<"+q+"(.*)\\/"+q+">\\s*$","i");g.innerHTML=f.outerHTML.replace(/\r|\n/g," ").replace(l,f.currentStyle.display=="block"?"<div$1/div>":"<span$1/span>");l=g.childNodes[0];l.className+=" iepp_"+q;l=p[p.length]=[f,l];f.parentNode.replaceChild(l[1],l[0])}h(b.styleSheets,"all")});a.attachEvent("onafterprint",
|
28
|
-
function(){for(var f=-1,k;++f<p.length;)p[f][1].parentNode.replaceChild(p[f][0],p[f][1]);for(k in o)t[G].removeChild(o[k]);o={};p=[]})}(this,e);j._enableHTML5=true;j._version="1.5";s.className=s.className.replace(/\bno-js\b/,"")+" js";s.className+=" "+N.join(" ");return j}(this,this.document);
|